`
kim
  • 浏览: 154499 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java合成jpeg图像 压缩问题 resize问题

    博客分类:
  • java
阅读更多

在网上找到的java输出图像的例子里面一般都没有对jpeg图像输出的压缩比进行设置,而默认的都是有损压缩,输出的图片就会比原图片质量变低。

下面是一段给图片加上网站logo的代码,注意第12,13,14行设置了图片的压缩比。本例为不压缩原图片。

java 代码
  1. BufferedImage image = ImageIO.read(new FileInputStream("c:\\base.jpg"));   
  2. //读取图标   
  3. BufferedImage image_biao = ImageIO.read(new FileInputStream(   
  4.     "c:\\logo.gif"));   
  5. Graphics2D g = image.createGraphics();   
  6. g.drawImage(image_biao, 1010, image_biao.getWidth(null),   
  7.             image_biao.getHeight(null), null);   
  8. g.dispose();   
  9. FileOutputStream out = new FileOutputStream("c:\\out.jpg");   
  10.   
  11. JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);   
  12. JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(image);   
  13. param.setQuality(1f, false);   
  14. encoder.setJPEGEncodeParam(param);   
  15. encoder.encode(image);   
  16. out.close();  

 

setQuality

public void setQuality(float quality,
                       boolean forceBaseline)
quality取值在 1.0 到 0.0 之间
Some guidelines: 0.75 high quality
                 0.5  medium quality
                 0.25 low quality
 
 
另外要得到一张指定高度和宽度的图片的话可以用以下代码:(接上面代码)
java 代码
  1. BufferedImage tag = new BufferedImage(500300,image.getType());   
  2. tag.getGraphics().drawImage(image, 00500300null); //绘制缩小后的图   
  3.   
  4. FileOutputStream out2 = new FileOutputStream("c:\\out2.jpg");   
  5.   
  6. JPEGImageEncoder encoder2 = JPEGCodec.createJPEGEncoder(out2);   
  7. JPEGEncodeParam param2 = encoder.getDefaultJPEGEncodeParam(tag);   
  8. param2.setQuality(1f, false);   
  9. encoder2.setJPEGEncodeParam(param2);   
  10. encoder2.encode(tag);   
  11. out2.close();  
 
注意第一行新建 BufferedImage 的时候要使用原图片的type,这样可以保证输出与原图片相同质量的图片。
 
 
 
 
 
 
 
 
 
分享到:
评论

相关推荐

    java对图片进行压缩和resize缩放的方法

    Java 图片压缩和resize 缩放方法 Java 是一门广泛应用于 Web 开发的编程语言,而图片压缩和resize 缩放是 Web 开发中的一项重要技术。今天,我们将讨论 Java 中图片压缩和resize 缩放的方法,这些方法可以帮助...

    JPEG图像压缩实现

    此外,项目中还有其他辅助函数,如`ReSize.m`用于图像尺寸调整,`JPEG_S.m`可能是JPEG压缩的简化版本,`iJPEG.m`可能是解码的另一种实现,`DCT_Quant.m`和`iDCT_Quant.m`分别对应正向和逆向的DCT和量化过程。...

    java各种方式压缩图片

    在Java编程环境中,图片压缩是一项常见的任务,尤其在处理用户上传的图像时,为了节省存储空间、优化网页加载速度或符合服务器对文件大小的限制,往往需要对图片进行压缩。以下是一些Java实现图片压缩的方法: 1. *...

    java图片压缩处理 支持gif

    首先,Java标准库提供了`javax.imageio`包,它包含`ImageIO`类,可以用来读取、写入和处理各种图像格式,包括JPEG、PNG和GIF。对于GIF的处理,我们需要使用`javax.imageio.ImageReader`和`javax.imageio.ImageWriter...

    JPG.rar_delphi jpg_delphi resize jpg_delphi 图片压缩_resize_图片压缩

    标题中的“JPG.rar_delphi jpg_delphi resize jpg_delphi 图片压缩_resize_图片压缩”表明这是一个关于使用Delphi编程语言处理JPG图片,特别是进行无损压缩和大小调整的项目。描述中提到的“一个比较好的无损压缩...

    Go-resize-纯golang实现的图像大小调整库

    - **质量控制**:支持设置JPEG和PNG的压缩质量,以控制输出文件的大小和质量。 3. **使用示例** - **基本缩放**: ```go import "github.com/nfnt/resize" img, _ := imaging.Open("input.jpg") resized := ...

    利用opencl,读取并resize一张raw图(NV12格式),指定quality的JPEG压缩,输出jpg图像,并统计耗时

    本资源采用opencl的C++绑定。 首先,读取一张raw图(NV12格式), 其次,利用gpiu对其进行resize并以指定quality对其进行JPEG压缩, 最后,输出一张jpg图像到本地。

    利用python对图片进行无损压缩

    在Python编程语言中,处理图像是一项常见的任务,其中包括图片的读取、编辑、保存以及压缩。本篇文章将探讨如何利用Python进行图片的无损压缩,这对于处理大量图像数据或者优化存储空间至关重要。我们将主要关注...

    图像resize程序.rar

    注意,resize操作可能会改变图像的比例,可能导致拉伸或压缩,所以通常还需要添加保持原图宽高比的选项,例如使用`cv2.INTER_AREA`插值方法。 在实际应用中,你可能需要根据具体需求调整代码,比如处理不同的文件...

    Android图片压缩结合多种压缩方式.zip

    本压缩包"Android图片压缩结合多种压缩方式.zip"提供了一种综合解决方案,它结合了尺寸压缩、质量压缩以及JNI(Java Native Interface)调用libjpeg库进行的压缩,旨在在保证图片清晰度的同时,将图片内存大小控制在...

    java图片压缩

    在Java编程环境中,图片压缩是一项常见的任务,尤其在处理大量图像数据或优化网站加载速度时。本篇文章将深入探讨如何利用Java实现图片的等比例和非等比例压缩,以及引入`metadata-extractor-2.3.1.jar`库的原因。 ...

    PHP 按一定比例压缩图片,保持清晰度

    然而,压缩过程中经常遇到的问题是图片质量的下降,导致图像模糊。为了实现按比例压缩图片的同时保持清晰度,我们需要采用一些特殊的技术和策略。以下将详细介绍如何在PHP中实现这一目标。 1. 图片压缩原理: 图片...

    图像压缩及解压

    例如,如果图像使用JPEG压缩,那么解压时也需要使用JPEG解码器。 2. C#编程实现:在C#中,可以使用System.Drawing命名空间下的类来处理图像,例如Image类用于表示图像对象,Bitmap类用于创建和操作位图。可以使用...

    C# 图片压缩 多文件压缩

    通过调整图片质量、分辨率或使用有损压缩算法(如JPEG)可以实现图片压缩。 首先,我们先讨论图片压缩。在C#中,可以使用ImageSharp创建一个Image对象,然后加载待压缩的图片。接着,可以通过设置其QualityProfile...

    java压缩图片

    在Java编程中,压缩图片是一项常见的任务,尤其在处理大量图像数据或优化网站加载速度时。这个场景中提到的"java压缩图片"可能涉及到一个名为`ImageZipUtil.java`的类,它很可能提供了图片压缩和打包成ZIP文件的功能...

    对图像 Resize 批量处理并保存到指定文件夹

    批量Resize图像并保存到指定文件夹是一种常见的图像处理需求,通过理解基本的图像处理概念和运用适当的编程工具,我们可以高效地完成这项任务。这个过程不仅提高了工作效率,也为后续的图像分析、展示或上传提供了...

    java高清处理图片

    ImageMagick是一款强大的跨平台图像处理工具,它支持多种格式的图片文件,可以用来创建、编辑、合成或转换位图图像。该工具集不仅可以在命令行界面中直接使用,还提供了多种编程语言的接口,其中包括Java接口——...

    Java中上传图片压缩处理的方法示例

    最后,`resize`方法负责将图片按照指定的新宽度和高度进行压缩,并使用`JPEGImageEncoder`进行JPEG编码。 这个处理流程可以概括为:读取图片 -> 根据新尺寸等比例缩放 -> 输出压缩后的图片文件。图片压缩操作通常...

    java对图片进行操作.rar_java 图片剪裁_java图片_图片

    本资源“java对图片进行操作.rar”提供了一种用Java进行图像操作的工具类,特别关注于图片的剪裁、重置大小以及按比例缩小等功能。以下是关于这些功能的详细解释和实现方法。 首先,图片剪裁是调整图像大小并提取其...

    JPEGResizer2.1.zip

    总的来说,JPEGResizer2.1是一款小巧实用的图片压缩工具,适合需要频繁处理JPEG图像的用户,如摄影师、网页设计师或者日常用户。通过合理使用,用户可以在保持图像质量可接受的前提下,显著减小图片文件的大小,从而...

Global site tag (gtag.js) - Google Analytics