gpt4 book ai didi

Java JPG转PNG

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:01:34 26 4
gpt4 key购买 nike

我在整个应用程序中使用通用格式作为 png 图像。上传的任何 jpg 图像仍然使用下面的代码保存为 png。

java.awt.image.BufferedImage bufferedImage = ImageIO.read(jpgImagePAth);

if(!IsExtensionPng(jpgImagePath)){
ImageIO.write(bufferedImage, "png", new File(pptFolder, justNamePng));
}

但这会保留 alpha,即使它不存在于 jpg 中,因此使 2MB 图像变为 7MB 和 6MB 变为 16MB。有没有办法在不维护 alpha 的情况下保存 png ?

我需要转换为 PNG 的原因是,稍后当我在图像上添加文本时,它会失去实际分辨率。我已经尝试过无损 JPEG,但没有修复它。

最佳答案

导致文件大小增长的不是 alpha channel ,而是文件类型。 JPG 使用有损压缩; PNG是无损压缩。换句话说,JPG 正在丢弃一些数据以减小文件的大小。这就是为什么您在保存为 JPG 时需要选择“质量”级别的原因 - 这决定了丢弃多少。

你怎么知道你得到的是 alpha channel ?如果您仍然想要 PNG 并希望确保您正在删除 alpha channel ,请将图像类型设置为 BufferedImage.TYPE_RGB,例如

BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_RGB);

您必须获取与新 BufferedImage 关联的图形对象并将 jpg 复制到它上面,然后将其写出。 This question与您的不完全相同,但包含您可能会觉得有用的示例代码。

保罗

关于Java JPG转PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6048559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com