设为首页 加入收藏

TOP

Java 设置输出的图片质量
2014-11-24 07:32:32 来源: 作者: 【 】 浏览:1
Tags:Java 设置 输出 图片 质量

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.Random;


import javax.imageio.*;
import javax.imageio.stream.ImageOutputStream;


public class ImageIOTest {
public static void main(String[] args) throws IOException {
int width = 800;
int height = 800;


BufferedImage image = new BufferedImage(
width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = image.createGraphics();
g2d.setColor(Color.white);
g2d.fillRect(0, 0, width, height);
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
Random random = new Random();
for (int i = 0; i < 500; i++) {
g2d.setColor(new Color(random.nextInt(256),
random.nextInt(256), random.nextInt(256)));
g2d.setStroke(new BasicStroke(random.nextFloat() * 5));


int r = random.nextInt(width / 2);
g2d.drawArc(random.nextInt(width), random.nextInt(height),
r, r, 0, 360);
}
g2d.dispose();



ImageWriter writer = null;
ImageTypeSpecifier type =
ImageTypeSpecifier.createFromRenderedImage(image);
Iterator iter = ImageIO.getImageWriters(type, "jpg");
if (iter.hasNext()) {
writer = (ImageWriter)iter.next();
}
if (writer == null) {
return;
}
IIOImage iioImage = new IIOImage(image, null, null);
ImageWriteParam param = writer.getDefaultWriteParam();


param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
for (int i = 0; i < 10; i++) {
param.setCompressionQuality((float) ((i+1) / 10.0));
ImageOutputStream outputStream =
ImageIO.createImageOutputStream(new File("C:/test" + (i+1) + ".jpg"));
writer.setOutput(outputStream);
writer.write(null, iioImage, param);
}
}
}



输出文件部分,可以换成OutputStream例如直接网页输出


OutputStream ros = response.getOutputStream();


ImageOutputStream outputStream =
ImageIO.createImageOutputStream(ros);


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇介绍一个好用的Java图形处理滤镜 下一篇Java获取Linux下Top命令的执行结果

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Java 并发工具类:提 (2025-12-25 20:25:44)
·Java面试技巧:如何 (2025-12-25 20:25:41)
·Java并发编程中的线 (2025-12-25 20:25:38)
·C 语言 - cppreferen (2025-12-25 19:50:27)
·《C 语言入门教程》 (2025-12-25 19:50:23)