1

我正在使用这种方法来更改图像大小:

private File resize(double scale, File file) throws IOException {
    double scaledSize = targetSize * scale;
    BufferedImage scaledImage = Scalr.resize(sourceImage, (int) scaledSize);

    Iterator<ImageWriter> iter = ImageIO.getImageWritersByFormatName(fileExt);
    ImageWriter writer = iter.next();
    ImageWriteParam iwp = writer.getDefaultWriteParam();
    iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
    iwp.setCompressionQuality(1);

    FileImageOutputStream output = new FileImageOutputStream(file);
    writer.setOutput(output);
    IIOImage image = new IIOImage(scaledImage, null, null);
    writer.write(null, image, iwp);
    writer.dispose();
    return file;
}

似乎图像失去了颜色深度。如何设置与源图像相同的颜色深度?

4

0 回答 0