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