在网上找到的java输出图像的例子里面一般都没有对jpeg图像输出的压缩比进行设置,而默认的都是有损压缩,输出的图片就会比原图片质量变低。
下面是一段给图片加上网站logo的代码,注意第12,13,14行设置了图片的压缩比。本例为不压缩原图片。
java 代码
- BufferedImage image = ImageIO.read(new FileInputStream("c:\\base.jpg"));
-
- BufferedImage image_biao = ImageIO.read(new FileInputStream(
- "c:\\logo.gif"));
- Graphics2D g = image.createGraphics();
- g.drawImage(image_biao, 10, 10, image_biao.getWidth(null),
- image_biao.getHeight(null), null);
- g.dispose();
- FileOutputStream out = new FileOutputStream("c:\\out.jpg");
-
- JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
- JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(image);
- param.setQuality(1f, false);
- encoder.setJPEGEncodeParam(param);
- encoder.encode(image);
- 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 代码
- BufferedImage tag = new BufferedImage(500, 300,image.getType());
- tag.getGraphics().drawImage(image, 0, 0, 500, 300, null);
-
- FileOutputStream out2 = new FileOutputStream("c:\\out2.jpg");
-
- JPEGImageEncoder encoder2 = JPEGCodec.createJPEGEncoder(out2);
- JPEGEncodeParam param2 = encoder.getDefaultJPEGEncodeParam(tag);
- param2.setQuality(1f, false);
- encoder2.setJPEGEncodeParam(param2);
- encoder2.encode(tag);
- out2.close();
注意第一行新建 BufferedImage 的时候要使用原图片的type,这样可以保证输出与原图片相同质量的图片。
分享到:
相关推荐
Java 图片压缩和resize 缩放方法 Java 是一门广泛应用于 Web 开发的编程语言,而图片压缩和resize 缩放是 Web 开发中的一项重要技术。今天,我们将讨论 Java 中图片压缩和resize 缩放的方法,这些方法可以帮助...
此外,项目中还有其他辅助函数,如`ReSize.m`用于图像尺寸调整,`JPEG_S.m`可能是JPEG压缩的简化版本,`iJPEG.m`可能是解码的另一种实现,`DCT_Quant.m`和`iDCT_Quant.m`分别对应正向和逆向的DCT和量化过程。...
在Java编程环境中,图片压缩是一项常见的任务,尤其在处理用户上传的图像时,为了节省存储空间、优化网页加载速度或符合服务器对文件大小的限制,往往需要对图片进行压缩。以下是一些Java实现图片压缩的方法: 1. *...
首先,Java标准库提供了`javax.imageio`包,它包含`ImageIO`类,可以用来读取、写入和处理各种图像格式,包括JPEG、PNG和GIF。对于GIF的处理,我们需要使用`javax.imageio.ImageReader`和`javax.imageio.ImageWriter...
标题中的“JPG.rar_delphi jpg_delphi resize jpg_delphi 图片压缩_resize_图片压缩”表明这是一个关于使用Delphi编程语言处理JPG图片,特别是进行无损压缩和大小调整的项目。描述中提到的“一个比较好的无损压缩...
- **质量控制**:支持设置JPEG和PNG的压缩质量,以控制输出文件的大小和质量。 3. **使用示例** - **基本缩放**: ```go import "github.com/nfnt/resize" img, _ := imaging.Open("input.jpg") resized := ...
本资源采用opencl的C++绑定。 首先,读取一张raw图(NV12格式), 其次,利用gpiu对其进行resize并以指定quality对其进行JPEG压缩, 最后,输出一张jpg图像到本地。
在Python编程语言中,处理图像是一项常见的任务,其中包括图片的读取、编辑、保存以及压缩。本篇文章将探讨如何利用Python进行图片的无损压缩,这对于处理大量图像数据或者优化存储空间至关重要。我们将主要关注...
注意,resize操作可能会改变图像的比例,可能导致拉伸或压缩,所以通常还需要添加保持原图宽高比的选项,例如使用`cv2.INTER_AREA`插值方法。 在实际应用中,你可能需要根据具体需求调整代码,比如处理不同的文件...
本压缩包"Android图片压缩结合多种压缩方式.zip"提供了一种综合解决方案,它结合了尺寸压缩、质量压缩以及JNI(Java Native Interface)调用libjpeg库进行的压缩,旨在在保证图片清晰度的同时,将图片内存大小控制在...
在Java编程环境中,图片压缩是一项常见的任务,尤其在处理大量图像数据或优化网站加载速度时。本篇文章将深入探讨如何利用Java实现图片的等比例和非等比例压缩,以及引入`metadata-extractor-2.3.1.jar`库的原因。 ...
然而,压缩过程中经常遇到的问题是图片质量的下降,导致图像模糊。为了实现按比例压缩图片的同时保持清晰度,我们需要采用一些特殊的技术和策略。以下将详细介绍如何在PHP中实现这一目标。 1. 图片压缩原理: 图片...
例如,如果图像使用JPEG压缩,那么解压时也需要使用JPEG解码器。 2. C#编程实现:在C#中,可以使用System.Drawing命名空间下的类来处理图像,例如Image类用于表示图像对象,Bitmap类用于创建和操作位图。可以使用...
通过调整图片质量、分辨率或使用有损压缩算法(如JPEG)可以实现图片压缩。 首先,我们先讨论图片压缩。在C#中,可以使用ImageSharp创建一个Image对象,然后加载待压缩的图片。接着,可以通过设置其QualityProfile...
在Java编程中,压缩图片是一项常见的任务,尤其在处理大量图像数据或优化网站加载速度时。这个场景中提到的"java压缩图片"可能涉及到一个名为`ImageZipUtil.java`的类,它很可能提供了图片压缩和打包成ZIP文件的功能...
批量Resize图像并保存到指定文件夹是一种常见的图像处理需求,通过理解基本的图像处理概念和运用适当的编程工具,我们可以高效地完成这项任务。这个过程不仅提高了工作效率,也为后续的图像分析、展示或上传提供了...
ImageMagick是一款强大的跨平台图像处理工具,它支持多种格式的图片文件,可以用来创建、编辑、合成或转换位图图像。该工具集不仅可以在命令行界面中直接使用,还提供了多种编程语言的接口,其中包括Java接口——...
最后,`resize`方法负责将图片按照指定的新宽度和高度进行压缩,并使用`JPEGImageEncoder`进行JPEG编码。 这个处理流程可以概括为:读取图片 -> 根据新尺寸等比例缩放 -> 输出压缩后的图片文件。图片压缩操作通常...
本资源“java对图片进行操作.rar”提供了一种用Java进行图像操作的工具类,特别关注于图片的剪裁、重置大小以及按比例缩小等功能。以下是关于这些功能的详细解释和实现方法。 首先,图片剪裁是调整图像大小并提取其...
总的来说,JPEGResizer2.1是一款小巧实用的图片压缩工具,适合需要频繁处理JPEG图像的用户,如摄影师、网页设计师或者日常用户。通过合理使用,用户可以在保持图像质量可接受的前提下,显著减小图片文件的大小,从而...