【问题标题】:How to convert PNG<->JPEG<->TIFF images如何转换 PNG<->JPEG<->TIFF 图像
【发布时间】:2018-06-02 05:23:43
【问题描述】:

有什么方法可以在 Java 中转换 PNGJPEGTIFF 图像? 我有 String i/p 将参数(PNG 或 JPEG 转换为 []byte 转换为 String)传递给 ConvertImage(String xyz) 方法。

字符串转换图像(字符串 xyz)

所以我正在寻找从单一方法的以下转换并返回字节数组或字符串,然后最后我想存储在数据库中。

1.如果 i/p 是 PNG 转换 o/p 是 JPEG

2.如果i/p是JPEG转换o/p是PNG

3.如果i/p是PNG或JPEG转换的o/p是TIFF

我现在正在使用 JAI 进行此转换(在我的上一篇文章中,我没有提及所有这些细节,对此感到抱歉),但现在不想使用 JAI。

如果您对所有这 3 种类型有任何快速解决方案,请告诉我?

提前非常感谢您!!!

【问题讨论】:

标签: java java-io


【解决方案1】:

大多数图像类型都可以通过对ImageIO.read的简单调用读入内存:

import javax.imageio.ImageIO;
import java.io.File;

public class ImageTest {
    public static void main(String[] args) {
        BufferedImage image = ImageIO.read(new File("image.png"));//Or image.jpg or image.tiff, etc.
    }
}

然后可以通过将RenderedImageBufferedImage 是其实现)传递给ImageIO.write 来完成写入图像:

import javax.imageio.ImageIO;
import java.io.File;

public class ImageTest {
    public static void main(String[] args) {
        BufferedImage image = ImageIO.read(new File("image.png"));//Or image.jpg or image.tiff, etc.
        String[] formatNames = ImageIO.getWriterFormatNames();
        //A robust use would validate whatever format you're intending to use against 
        //the canonical list of format names retrieved by that call
        ImageIO.write(image, "tiff", new File("image.tiff"));
    }
}

【讨论】:

猜你喜欢
  • 2011-03-21
  • 1970-01-01
  • 2013-03-03
  • 1970-01-01
  • 1970-01-01
  • 2013-10-31
  • 2010-11-19
  • 1970-01-01
  • 2015-02-10
相关资源
最近更新 更多