如何转换PNG< - > JPEG< - > TIFF图片

时间:2018-06-01 21:10:45

标签: java java-io

有什么方法可以用Java转换PNG< - > JPEG< - > TIFF图像? 我有String i / p传递参数(PNG或JPEG转换为[]字节转换为String)转换为ConvertImage(String xyz)方法。

String ConvertImage(String xyz)

所以我正在寻找以下单个方法转换并返回字节数组或字符串,最后我想存储在DB中。

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种类型有任何快速解决方案,请告诉我们?

非常感谢你提前!!!

1 个答案:

答案 0 :(得分:3)

通过简单调用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"));
    }
}