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

本文介绍了如何使用Java代码调整JPEG图像的压缩比例和尺寸,包括读取图像、添加水印、设置不同的压缩质量以及调整图像大小的具体实现。

关键字: java jpeg 图像 压缩

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

java 代码
  1. BufferedImage image = ImageIO.read(new FileInputStream("~/Pictures/base.jpg"));   
  2. //读取图标   
  3. BufferedImage image_biao = ImageIO.read(new FileInputStream("~/Pictures/logo.gif"));   
  4. Graphics2D g = image.createGraphics();   
  5. g.drawImage(image_biao, 1010, image_biao.getWidth(null),   
  6.             image_biao.getHeight(null), null);   
  7. g.dispose();   
  8. FileOutputStream out = new FileOutputStream("~/Pictures/out.jpg");   
  9.   
  10. JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);   
  11. JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(image);   
  12. param.setQuality(1f, false);   
  13. encoder.setJPEGEncodeParam(param);   
  14. encoder.encode(image);   
  15. 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("~/Picutures/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,这样可以保证输出与原图片相同质量的图片。

<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值