繁体   English   中英

Java JPG To Png

[英]Java JPG To Png

我正在使用一种常见的格式应用程序将图像作为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通道,而是文件类型。 JPG使用有损压缩; PNG是无损压缩。 换句话说,JPG会抛出一些数据来减小文件的大小。 这就是为什么你在保存到JPG时选择“质量”级别的原因 - 这决定了抛出多少钱。

你怎么知道你正在获得alpha通道? 如果你仍然想要PNG并且想要确定你正在删除alpha通道,请将图像类型设置为BufferedImage.TYPE_RGB,例如

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

您必须获取与新BufferedImage关联的图形对象并将jpg复制到其上,然后将其写出来。 这个问题与您的问题并不完全相同,但您可能会发现有用的示例代码。

保罗

我不知道你到底是什么情况。 但我应该保留JPEG JPEG。 将JPEG转换为PNG的唯一优势是浪费硬盘空间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM