• 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");
    		}
    	}
    
    }
    

      

  • 相关阅读:
    django之认证权限和接口
    序列化组件
    django中cbv源码和restful规范
    AjaxControlToolKit--TabContainer控件的介绍收藏[摘录]
    sublime text 3 激活
    sublime 2激活和解决中文乱码
    sublime text2 保存文件时候名字后缀.dump问题解决
    选项卡 刷新回原来页面的处理方法:
    关于C#自定义控件【摘录】
    比较好的GridView固定问题(链接)
  • 原文地址:https://www.cnblogs.com/umasuo/p/java_image_inOut.html
Copyright © 2020-2023  润新知