`

等比例图片压缩算法

阅读更多
图片不失真的等比例压缩算法:
算法思想:根据压缩基数和压缩比来压缩原图,生产一张图片效果最接近原图的缩略图。
算法讲解:
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,可等比例宽高不失真压缩,也可直接指定压缩后的宽高

    Java压缩图片util,可等比例宽高不失真压缩,也可直接指定压缩后的宽高,只能用炫酷来形容,感兴趣就下载看看吧

    HTML5 base64图片压缩上传程序.zip

    HTML5 PHP base64图片压缩上传程序,现在像很多WEB上传程序包括微信、QQ等在发送一些图片的时候,会自动压缩(衰减)图片,这样可有效保证速度,节省用户流量,这个例子采用base64图片压缩算法,将图片按比例压缩,...

    JPEG Imager 图片压缩(汉化版)

    此软件能将 BMP、JPG、PNG、GIF 等图形文件压缩,使文件变的更小,可自设压缩比例、大小、明暗度等等,它采用了一种新压缩算法:“智能过滤(smart filtration)”不仅可以改善图像的观感质量,而且还可为输出的图片...

    基于Luban图片压缩算法在即时聊天APP中的应用

    文中的即时通讯应用系统基于中小型APP中即时聊天功能的...并且减少其使用的流量,达到轻量级的应用要求,通过大量的实验数据对比得出,使用开源的Luban(鲁班)图片压缩框架以后,结合图片的压缩比例和效果性能最佳。

    HTML5 PHP base64图片压缩程序源码 v1.0

    现在像很多WEB上传程序包括微信、QQ等在发送一些图片的时候,会自动压缩(衰减)图片,这样可有效保证速度,节省用户流量,这个例子采用base64图片压缩算法,将图片按比例压缩,压缩比率可以自己调整。本代码可扩展...

    BMP、JPG、PNG、GIF imanger无损图片压缩器

    新压缩算法:“智能过滤(smart filtration)”不仅可以改善图 像的观感质量,而且还可为输出的图片“减肥”,允许压缩后的 图形文件不失真。还可以建立类似于渐变 GIF 效果的渐变式 JPEG 图像,这种形式的 JPEG 图像...

    java-for-image-compression.zip_java 图像压缩_java 图片压缩

    java实现图像压缩,图片不失真的等比例压缩算法

    自制java图片压缩桌面软件,使用谷歌Thumbnails 算法实现

    windows系统图片压缩桌面软件,解压后直接打开exe执行文件,无需安装,自带JDK环境,压缩比例大,图片质量高

    java实现图片压缩功能源码

    java上传图片功能,图片太大,等比例压缩算法(原尺寸压缩)

    C#实现的图像压缩,大小压缩+质量压缩,可实现MB压缩到KB

    使用C#完成的图像压缩,实现质量压缩,大小压缩,批量压缩。可选择读取图像输出到另一图像,可实现从界面中读取图像输出到图像,附全部代码+注释+开发过程。

    Android图片压缩上传之基础篇

    在android程序开发中我们经常见到需要上传图片的场景,在这里有个技术点,需要把图片压缩处理,然后再进行上传。这样可以减少流量的消耗,提高图片的上传速度等问题。 关于android如何压缩,网上的资料也是很多,但...

    拼图游戏算法及证明.zip

    此文档还包括图片压缩主流的两个算法——比例压缩和质量压缩。本文档为“Android拼图游戏设计(包括游戏算法及数据库设计)”(原文链接 https://blog.csdn.net/qq_36477513/article/details/94337951)的补充文档

    java实现图片压缩的思路与代码

    主要为大家详细介绍了java实现图片压缩的思路与代码,将较大的图片按照指定的宽高,以宽为基准,或高为基准按照等比例压缩图片,感兴趣的小伙伴们可以参考一下

    HTML5 PHP base64图片压缩程序源代码

    现在像很多WEB上传程序包括微信、QQ等在发送一些图片的时候,会自动压缩(衰减)图片,这样可有效保证速度,节省用户流量,这个例子采用base64图片压缩算法,将图片按比例压缩,压缩比率可以自己调整。本代码可扩展...

    JPG压缩软件JPEG Imager

    比例、大小、明暗度等等,它采用了一种新压缩算法:“智能过滤(smart filtration)” 不仅可以改善图像的观感质量,而且还可为输出的图片“减肥”,允许压缩后的图形文 件不失真。还可以建立类似于渐变 GIF 效果的渐变...

    用Python批量压缩图片.zip

    例如,用户可以选择不同的压缩算法,调整压缩比例,设置输出图片的分辨率等。这些选项使得该脚本包更加灵活,适用于各种不同的场景。总之,Python批量压缩图片.zip是一个功能强大且易于使用的Python脚本包,可以帮助...

    JPEG Imager 图像压缩软件

    BMP、JPG、PNG、GIF 等格式的图形文件进行压缩,使文件变得更小,可自设压缩比例、大小、明暗度等等,它采用了一种新压缩算法:“智能过滤(smart filtration)”不仅可以改善图像的观感质量,而且还可为输出的图片...

    基于python实现K-均值算法与高斯混合模型及对应简单应用源码+项目说明+详细注释.zip

    2.使用 K-Means 聚类对指定图片(lena.png)实现压缩,并通过选取不同的聚类中心数来调整压缩的比例,得到了一系列的压缩图片。 (K-均值算法与高斯混合模型) 1.采用两分量的高斯混合模型建模一组观测数据的分布,...

    Quick_Image_Resizer_2.7.3.2(破解版)

    DzSoft Quick Image Resizer是一款图片压缩软件,软件提供了一个独创性的方法,程序可以自动为每个图像选择JPEG质量/压缩级别,以最适合您选择的文件大小。此外,可以为图像添加自定义水印。有需要的朋友欢迎下载! ...

    基于MATLAB的混沌数字图像加密技术研究与仿真实现.zip

    此算法可将灰度图像根据实际需要进行不同比例的压缩并加密,使得图像在传输过程中既能提高效率,又能保护数据。在压缩率较低的情况下,接收端进行解密还原后的图像与原始图像差别很小。 详细介绍参考:...

Global site tag (gtag.js) - Google Analytics