图片不失真的等比例压缩算法:
算法思想:根据压缩基数和压缩比来压缩原图,生产一张图片效果最接近原图的缩略图。
算法讲解:
public void saveMinPhoto(String srcURL,String deskURL,double comBase,double scale){
/*srcURl 原图地址;deskURL 缩略图地址;comBase 压缩基数;scale 压缩限制(宽/高)比例*/
java.io.File srcFile = new java.io.File(srcURL);
Image src = new javax.imageio.ImageIO.read(srcFile);
int srcHeight = src.getHeight(null);
int srcWidth = src.getWidth(null);
int deskHeight = 0;//缩略图高
int deskWidth = 0;//缩略图宽
double srcScale = (double)srcHeight/srcWidth;
if((double)srcHeight>comBase || (double)srcWidth>comBase){
if(srcScale>=scale || 1/srcScale>scale){
if(srcScale>=scale){
deskHeight = (int)comBase;
deskWidth = srcWidth*deskHeight/srcHeight;
}else{
deskWidth = (int)comBase ;
deskHeight = srcHeight*deskWidth/srcWidth;
}
} else {
if((double)srcHeight>comBase){
deskHeight = (int)comBase;
deskWidth = srcWidth*deskHeight/srcHeight;
} else{
deskWidth = (int)comBase ;
deskHeight = srcHeight*deskWidth/srcWidth;
}
}
}else {
deskHeight = srcHeight;
deskWidth = srcWidth;
}
BufferedImage tag = new BufferedImage(deskWidth, deskHeight,
BufferedImage.TYPE_3BYTE_BGR);
tag.getGraphics().drawImage(src, 0, 0, deskWidth, deskHeighth, null); //绘制缩小后的图
FileOutputStream deskImage = new FileOutputStream(deskURL); //输出到文件流
JPEGImageEncoder encoder = JPEGCodec
.createJPEGEncoder(deskImage);
encoder.encode(tag); //近JPEG编码
deskImage.close();
}
分享到:
相关推荐
Java压缩图片util,可等比例宽高不失真压缩,也可直接指定压缩后的宽高,只能用炫酷来形容,感兴趣就下载看看吧
HTML5 PHP base64图片压缩上传程序,现在像很多WEB上传程序包括微信、QQ等在发送一些图片的时候,会自动压缩(衰减)图片,这样可有效保证速度,节省用户流量,这个例子采用base64图片压缩算法,将图片按比例压缩,...
此软件能将 BMP、JPG、PNG、GIF 等图形文件压缩,使文件变的更小,可自设压缩比例、大小、明暗度等等,它采用了一种新压缩算法:“智能过滤(smart filtration)”不仅可以改善图像的观感质量,而且还可为输出的图片...
文中的即时通讯应用系统基于中小型APP中即时聊天功能的...并且减少其使用的流量,达到轻量级的应用要求,通过大量的实验数据对比得出,使用开源的Luban(鲁班)图片压缩框架以后,结合图片的压缩比例和效果性能最佳。
现在像很多WEB上传程序包括微信、QQ等在发送一些图片的时候,会自动压缩(衰减)图片,这样可有效保证速度,节省用户流量,这个例子采用base64图片压缩算法,将图片按比例压缩,压缩比率可以自己调整。本代码可扩展...
新压缩算法:“智能过滤(smart filtration)”不仅可以改善图 像的观感质量,而且还可为输出的图片“减肥”,允许压缩后的 图形文件不失真。还可以建立类似于渐变 GIF 效果的渐变式 JPEG 图像,这种形式的 JPEG 图像...
java实现图像压缩,图片不失真的等比例压缩算法
windows系统图片压缩桌面软件,解压后直接打开exe执行文件,无需安装,自带JDK环境,压缩比例大,图片质量高
java上传图片功能,图片太大,等比例压缩算法(原尺寸压缩)
使用C#完成的图像压缩,实现质量压缩,大小压缩,批量压缩。可选择读取图像输出到另一图像,可实现从界面中读取图像输出到图像,附全部代码+注释+开发过程。
在android程序开发中我们经常见到需要上传图片的场景,在这里有个技术点,需要把图片压缩处理,然后再进行上传。这样可以减少流量的消耗,提高图片的上传速度等问题。 关于android如何压缩,网上的资料也是很多,但...
此文档还包括图片压缩主流的两个算法——比例压缩和质量压缩。本文档为“Android拼图游戏设计(包括游戏算法及数据库设计)”(原文链接 https://blog.csdn.net/qq_36477513/article/details/94337951)的补充文档
主要为大家详细介绍了java实现图片压缩的思路与代码,将较大的图片按照指定的宽高,以宽为基准,或高为基准按照等比例压缩图片,感兴趣的小伙伴们可以参考一下
现在像很多WEB上传程序包括微信、QQ等在发送一些图片的时候,会自动压缩(衰减)图片,这样可有效保证速度,节省用户流量,这个例子采用base64图片压缩算法,将图片按比例压缩,压缩比率可以自己调整。本代码可扩展...
比例、大小、明暗度等等,它采用了一种新压缩算法:“智能过滤(smart filtration)” 不仅可以改善图像的观感质量,而且还可为输出的图片“减肥”,允许压缩后的图形文 件不失真。还可以建立类似于渐变 GIF 效果的渐变...
例如,用户可以选择不同的压缩算法,调整压缩比例,设置输出图片的分辨率等。这些选项使得该脚本包更加灵活,适用于各种不同的场景。总之,Python批量压缩图片.zip是一个功能强大且易于使用的Python脚本包,可以帮助...
BMP、JPG、PNG、GIF 等格式的图形文件进行压缩,使文件变得更小,可自设压缩比例、大小、明暗度等等,它采用了一种新压缩算法:“智能过滤(smart filtration)”不仅可以改善图像的观感质量,而且还可为输出的图片...
2.使用 K-Means 聚类对指定图片(lena.png)实现压缩,并通过选取不同的聚类中心数来调整压缩的比例,得到了一系列的压缩图片。 (K-均值算法与高斯混合模型) 1.采用两分量的高斯混合模型建模一组观测数据的分布,...
DzSoft Quick Image Resizer是一款图片压缩软件,软件提供了一个独创性的方法,程序可以自动为每个图像选择JPEG质量/压缩级别,以最适合您选择的文件大小。此外,可以为图像添加自定义水印。有需要的朋友欢迎下载! ...
此算法可将灰度图像根据实际需要进行不同比例的压缩并加密,使得图像在传输过程中既能提高效率,又能保护数据。在压缩率较低的情况下,接收端进行解密还原后的图像与原始图像差别很小。 详细介绍参考:...