java图片高质量压缩

/**

* 根据宽高编辑图片

*

* @param outPath

*            输出文件路径

* @param width

*            输出文件宽

* @param height

*            输出文件高

* @throws Exception

*/

public static void dealImage(String filePath, String outPath, Integer width,

Integer height) throws Exception {

// 读取本地文件:

InputStream is = new FileInputStream(filePath);

//判断图片大小   0---500k 进行4倍压缩       500----1024k   进行6倍压缩     1024以上进行8倍压缩

File picture = new File(filePath);

int cutMultiple = 2;

if (picture.exists()){

//int picsize =Integer.parseInt(new DecimalFormat("0").format(picture.length()/1024.0));//四舍五入

try {

int picsize = (int) (picture.length()/1024.0);//非四舍五入

if(picsize<=512){

cutMultiple=4;

}else if(picsize>512 && picsize<=1024){

cutMultiple=6;

}else if(picsize>1024){

cutMultiple=8;

}

} catch (Exception e) {//假容错处理

cutMultiple=2;

}

}

Image image = ImageIO.read(is);

float tagsize = 200;

int old_w = image.getWidth(null);

int old_h = image.getHeight(null);

int tempsize;

BufferedImage tag = new BufferedImage(old_w/cutMultiple, old_h/cutMultiple, BufferedImage.TYPE_INT_RGB);

tag.getGraphics().drawImage(image, 0, 0, old_w/cutMultiple, old_h/cutMultiple, null);

FileOutputStream newimage = new FileOutputStream(outPath);

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);

encoder.encode(tag);

newimage.close();

}

时间: 2024-10-15 07:12:39

java图片高质量压缩的相关文章

java图片高清压缩(1)

import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import javax.imageio.ImageIO; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGEncodeParam; import com.sun.image.codec.jpeg.JPEGI

c# 无损高质量压缩图片代码

最近,项目上涉及到了图像压缩,发现原有的图像压缩功能,虽然保证了图像的大小300K以内,但是压缩后的图像看的不在清晰,并且,限定了图片的Height或者是Width. 在CSDN上看到了一个压缩算法:http://blog.csdn.net/qq_16542775/article/details/51792149 进过测试这个算法,发现,将原始图像的大小进行对半处理,然后迭代跳转压缩质量参数,可以得到不错的效果. 修改后的算法如下: /// <summary> /// 无损压缩图片 /// &

c#无损高质量压缩图片

这几天在做同城交友网www.niyuewo.com时遇到的一个问题,如何将会员的头像压缩,在网上搜索整理如下:在此也感谢医药精(www.yiyaojing.com)站长的帮忙 /// <summary> /// 无损压缩图片 /// </summary> /// <param name="sFile">原图片</param> /// <param name="dFile">压缩后保存位置</param

Java图片上传压缩处理

所需要的jar包在:\jdk1.7.0_25\jre\lib\rt.jar里面 package util; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import javax.ima

Java 图片处理——如何生成高清晰度而占有磁盘小的缩略图

现在的web项目,图片越来越多,图片大小也越来越大,随便就能达到1M,2M,甚至更大.用户上传的图片,一般是无法直接使用的.一般要生成两三 种对应的缩略图,分别适配不同的终端,不同的场景.比如PC,手机,平板等等不同的终端:在比如图片列表和图片详情,肯定一个要使用缩略图,一个要使用高 清图. 一般图片优化的第一步,就是在适当的地方使用缩略图,尽量不要在web端使用CSS缩放高清原始图片.下面分析了Java中如何生成不同的缩略图的技术. 常见的图片格式有: ".*\\.(?i)(jpg|jpeg|

Android图片压缩(质量压缩和尺寸压缩)

在网上调查了图片压缩的方法并实装后,大致上可以认为有两类压缩:质量压缩(不改变图片的尺寸)和尺寸压缩(相当于是像素上的压缩):质量压缩一般可用于上传大图前的处理,这样就可以节省一定的流量,毕竟现在的手机拍照都能达到3M左右了,尺寸压缩一般可用于生成缩略图.两种方法都实装在了我的项目中,结果却发现在质量压缩的模块中,本来1.9M的图片压缩后反而变成3M多了,很是奇怪,再做了进一步调查终于知道原因了.下面这个博客说的比较清晰: android图片压缩总结 总结来看,图片有三种存在形式:硬盘上时是fi

java图片压缩策略说明

使用java原生或者使用第三方的jar来生成. 存在的问题: 原生效率慢,并且和代码耦合性太高,支持格式少,其他没太多尝试 使用thumbnailator.jar 第三方.效率不高,压缩完的图片质量太低.支持格式少,如果原本图片的后缀为.jpg的改成.png之后,无法支持操作..png的图片保存时为透明时候,压缩出来的图片会出现颜色严重失调的问题.和代码的耦合性太高 以上这两个和代码的耦合性太高,因此如何存在项目群时,图片的处理会变的和无力. 2.因此我推荐使用以下的解决方案:由nginx来处理

[Java]图片压缩

Java中内置的压缩图片有两种方式: 通过Image的getScaledInstance方法将图片尺寸进行压缩,它的压缩策略有: SCALE_DEFAULT 默认图像缩放算法 SCALE_FAST 缩放速度优先 SCALE_SMOOTH 图像平滑度优先 它的优点是可以在尽量不影响图像质量的情况下对图片进行一定的压缩,缺点是压缩的效果有局限性. 使用ImageWriteParam的setCompressionQuality方法设置ImageWrite输出图片时生成的图片质量,它的优点是可以在不改变

ImageMagick +Im4java 处理上传的图片,截图,缩略图,保证高质量

ImageMagick 在windows下是不存在的,linux一般都有(最后也请确认下,可以参考官网,不过也可以简单的运行convert 命令判断). 软件官网:im4java.sourceforge.net ps 请翻墙. ImageMagick官网: http://www.imagemagick.org/ 简单操作操作: /** *@author 孙月江 */ import java.io.File; import org.im4java.core.ConvertCmd; import o