java 等比例 改变图片的质量(等大小压缩图片)

转载 2016年06月01日 16:37:06
 /**
     * @param originalFile  原文件
     * @param resizedFile  压缩目标文件
     * @param quality  压缩质量(越高质量越好)
     * @param scale  缩放比例;  1等大.
     * @throws IOException
     */
    public static void resize(File originalFile, File resizedFile,double scale, float quality) throws IOException {  
        ImageIcon ii = new ImageIcon(originalFile.getCanonicalPath());  
        Image i = ii.getImage();  
        int iWidth = (int) (i.getWidth(null)*scale);  
        int iHeight = (int) (i.getHeight(null)*scale); 
        //在这你可以自定义 返回图片的大小 iWidth iHeight
        Image resizedImage = i.getScaledInstance(iWidth,iHeight, Image.SCALE_SMOOTH);  
        // 获取图片中的所有像素
        Image temp = new ImageIcon(resizedImage).getImage();  
        // 创建缓冲
        BufferedImage bufferedImage = new BufferedImage(temp.getWidth(null),  
                temp.getHeight(null), BufferedImage.TYPE_INT_RGB);  
        // 复制图片到缓冲流中
        Graphics g = bufferedImage.createGraphics();  
        // 清除背景并开始画图
        g.setColor(Color.white);  
        g.fillRect(0, 0, temp.getWidth(null), temp.getHeight(null));  
        g.drawImage(temp, 0, 0, null);  
        g.dispose();
        // 柔和图片.  
        float softenFactor =0.05f;  
        float[] softenArray = { 0, softenFactor, 0, softenFactor,  
                1 - (softenFactor * 4), softenFactor, 0, softenFactor, 0 };  
        Kernel kernel = new Kernel(3, 3, softenArray);  
        ConvolveOp cOp = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null);  
        bufferedImage = cOp.filter(bufferedImage, null);  
        FileOutputStream out = new FileOutputStream(resizedFile);  
        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);  
        JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bufferedImage);  
        param.setQuality(quality, true);  
        encoder.setJPEGEncodeParam(param);  
        encoder.encode(bufferedImage);
        bufferedImage.flush();
        out.close();
    } 

java 图片像素质量压缩与图片长宽缩放

今天找到的这个方法比以前项目用到的方法更好,这里记录下,方便日后使用! /** * 缩放图片(压缩图片质量,改变图片尺寸) * 若原图宽度小于新宽度,则宽度不变! * ...
  • liuhuanchao
  • liuhuanchao
  • 2016年01月16日 13:37
  • 3543

Java高清晰高品质 图片压缩

网上搜索了很多,压缩出来的效果实在不能令人满意,研究了一些代码,自己写了一个,压缩出来的效果很好。但是有一个缺点,可能也是java的缺点吧,呵呵。 在jdk1.6以下的版本环境下,压缩部分图片会...
  • lzujiangge
  • lzujiangge
  • 2013年03月25日 20:32
  • 5577

java后台图片大小压缩

现在像素越来越高,图片越来越大,但是有时我们保存到服务器上的图片并不需要这么大.占用服务器资源不说,每回调阅查看时还浪费流量,所以就需要在存照片进服务器的时候进行下图片的压缩.         废话...
  • yubin2009m
  • yubin2009m
  • 2016年02月17日 15:50
  • 1855

java压缩图片文件大小

  • 2014年05月14日 11:10
  • 13KB
  • 下载

java中压缩图片方法

  • 2017年09月30日 15:07
  • 5KB
  • 下载

java指定宽度等比例压缩图片

最近做项目需要用到图片压缩技术,在这里整理下做个分享。 需要注意的是如果要压缩的图片太大,就需要修改JDK的默认内存了。废话不多说,直接上代码。 import java.aw...
  • u012500848
  • u012500848
  • 2016年03月31日 14:33
  • 897

Java图片高优化压缩

Java进行图片压缩,能够等比压缩和同等图片大小压缩 现在我要去项目合并使用了,自己看源代码吧 private File file = null; // 文件对象 private St...
  • u011310399
  • u011310399
  • 2015年03月06日 10:32
  • 1218

Java压缩图片util,可等比例宽高不失真压缩,也可直接指定压缩后的宽高

package com.yipai.util; import java.awt.Image; import java.awt.image.BufferedImage; import java.io....
  • xiaoxiansweety
  • xiaoxiansweety
  • 2015年09月23日 23:15
  • 2364

java图片高保真缩放

java图片高保真缩放,图片缩放不失真,高清图片缩放
  • a673341766
  • a673341766
  • 2013年11月19日 17:21
  • 27935

Java 对图片进行大小转换

1、实际项目中要将“图片档案”生成缩略图(将图片大小变成 160*160),参考网上代码写了Demo。 2、工具类。 Java代码   /*   * @(#) Imag...
  • tbdp6411
  • tbdp6411
  • 2015年01月19日 13:13
  • 924
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java 等比例 改变图片的质量(等大小压缩图片)
举报原因:
原因补充:

(最多只允许输入30个字)