1. 程式人生 > >自定義高度寬度縮小圖片

自定義高度寬度縮小圖片

path java clas thumbnail getparent pos 比例 縮放 subst

直接上代碼:

package com.henu.test;

import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class ImgTest {

    public static void createImgThumbnail(String imgSrc, int thumbWidth,
            int thumbHeight, String outFilePath) throws
InterruptedException, IOException { File imageFile = new File(imgSrc); BufferedImage image = ImageIO.read(imageFile); Integer width = image.getWidth(); Integer height = image.getHeight(); double i = (double) width / (double) height; double j = (double
) thumbWidth / (double) thumbHeight; int[] d = new int[2]; int x = 0; int y = 0; if (i > j) { d[1] = thumbHeight; d[0] = (int) (thumbHeight * i); y = 0; x = (d[0] - thumbWidth) / 2; } else { d[0] = thumbWidth; d[
1] = (int) (thumbWidth / i); x = 0; y = (d[1] - thumbHeight) / 2; } File outFile = new File(outFilePath); if (!outFile.getParentFile().exists()) { outFile.getParentFile().mkdirs(); } /* 等比例縮放 */ BufferedImage newImage = new BufferedImage(d[0], d[1], image.getType()); Graphics g = newImage.getGraphics(); g.drawImage(image, 0, 0, d[0], d[1], null); g.dispose(); /* 居中剪裁 */ newImage = newImage.getSubimage(x, y, thumbWidth, thumbHeight); ImageIO.write( newImage, imageFile.getName().substring( imageFile.getName().lastIndexOf(".") + 1), outFile); } public static void main(String[] args) throws Exception { ImgTest.createImgThumbnail("D:/test/2.jpg", 510, 288, "D:/test/test_2.jpg"); } }

自定義高度寬度縮小圖片