降低Java中的图像分辨率
我需要使用Java程序减小图像的大小(而不是宽度和高度)。他们为此提供了任何好的API吗?
我需要将大小从1MB减少到大约50kb-100 kb。当然,分辨率会降低,但这并不重要。
回答:
这是工作代码
public class ImageCompressor { public void compress() throws IOException {
File infile = new File("Y:\\img\\star.jpg");
File outfile = new File("Y:\\img\\star_compressed.jpg");
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
infile));
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(outfile));
SeekableStream s = SeekableStream.wrapInputStream(bis, true);
RenderedOp image = JAI.create("stream", s);
((OpImage) image.getRendering()).setTileCache(null);
RenderingHints qualityHints = new RenderingHints(
RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
RenderedOp resizedImage = JAI.create("SubsampleAverage", image, 0.9,
0.9, qualityHints);
JAI.create("encode", resizedImage, bos, "JPEG", null);
}
public static void main(String[] args) throws IOException {
new ImageCompressor().compress();
}
}
这段代码对我来说很棒。如果需要调整图像大小,则可以在此处更改x和y比例JAI.create("SubsampleAverage", image, xscale,yscale, qualityHints)
;
以上是 降低Java中的图像分辨率 的全部内容, 来源链接: utcz.com/qa/415480.html