java 圖片縮放 實現


剛因需要,弄了一個對圖片的縮放類,貼貼代碼:

public class ImageUtils {

	/**
	 * 對圖片進行放大
	 * @param originalImage	原始圖片
	 * @param times	放大倍數
	 * @return
	 */
	public static BufferedImage  zoomInImage(BufferedImage  originalImage, Integer times){
		int width = originalImage.getWidth()*times;
		int height = originalImage.getHeight()*times;
		BufferedImage newImage = new BufferedImage(width,height,originalImage.getType());
		Graphics g = newImage.getGraphics();
		g.drawImage(originalImage, 0,0,width,height,null);
		g.dispose();
		return newImage;
	}
	/**
	 * 對圖片進行放大
	 * @param srcPath 原始圖片路徑(絕對路徑)
	 * @param newPath 放大后圖片路徑(絕對路徑)
	 * @param times 放大倍數
	 * @return 是否放大成功
	 */
	public static boolean zoomInImage(String srcPath,String newPath,Integer times){
		BufferedImage bufferedImage = null;
		try {
			File of = new File(srcPath);
			if(of.canRead()){
				bufferedImage =  ImageIO.read(of);
			}
		} catch (IOException e) {
			//TODO: 打印日志
			return false;
		}
		if(bufferedImage != null){
			bufferedImage = zoomInImage(bufferedImage,times);
			try {
				//TODO: 這個保存路徑需要配置下子好一點
				ImageIO.write(bufferedImage, "JPG", new File(newPath)); //保存修改后的圖像,全部保存為JPG格式
			} catch (IOException e) {
				// TODO 打印錯誤信息
				return false;
			}
		}
		return true;
	}
	/**
	 * 對圖片進行縮小
	 * @param originalImage	原始圖片
	 * @param times 縮小倍數
	 * @return 縮小后的Image
	 */
	public static BufferedImage  zoomOutImage(BufferedImage  originalImage, Integer times){
		int width = originalImage.getWidth()/times;
		int height = originalImage.getHeight()/times;
		BufferedImage newImage = new BufferedImage(width,height,originalImage.getType());
		Graphics g = newImage.getGraphics();
		g.drawImage(originalImage, 0,0,width,height,null);
		g.dispose();
		return newImage;
	}
	/**
	 * 對圖片進行縮小
	 * @param srcPath 源圖片路徑(絕對路徑)
	 * @param newPath 新圖片路徑(絕對路徑)
	 * @param times 縮小倍數
	 * @return 保存是否成功
	 */
	public static boolean zoomOutImage(String srcPath,String newPath,Integer times){
		BufferedImage bufferedImage = null;
		try {
			File of = new File(srcPath);
			if(of.canRead()){
				bufferedImage =  ImageIO.read(of);
			}
		} catch (IOException e) {
			//TODO: 打印日志
			return false;
		}
		if(bufferedImage != null){
			bufferedImage = zoomOutImage(bufferedImage,times);
			try {
				//TODO: 這個保存路徑需要配置下子好一點
				ImageIO.write(bufferedImage, "JPG", new File(newPath)); //保存修改后的圖像,全部保存為JPG格式
			} catch (IOException e) {
				// TODO 打印錯誤信息
				return false;
			}
		}
		return true;
	}
	public static void main(String[] args) {
		boolean testIn = zoomInImage("E:/11.jpg","E:\\in.jpg",4);
		if(testIn){
			System.out.println("in ok");
		}
		boolean testOut = zoomOutImage("E:/11.jpg","E:\\out.jpg",4);
		if(testOut){
			System.out.println("out ok");
		}
	}

}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM