降低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

回到顶部