Java:BufferedImage转换为位图格式

问题描述 投票:11回答:4

我有一个程序,其中使用代码捕获屏幕:

robot = new Robot();
BufferedImage img = robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));

现在,我想将此BufferedImage转换为Bitmap格式,并通过其他需要的函数返回它,而不是将其保存在文件中。有任何帮助吗?

java bitmap bufferedimage
4个回答
8
投票

您需要看一下ImageIO.write

  • ImageIO.write

如果要以The Java Tutorials: Writing/Saving an Image数组的形式显示结果,则应使用byte[]

ByteArrayOutputStream

2
投票

[当您说成“位图格式”时,您是指数据(如字节数组)?如果是这种情况,则可以使用ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(yourImage, "bmp", baos); baos.flush(); byte[] bytes = baos.toByteArray(); baos.close(); (如上述建议)。如果您不想将其保存到文件中,而只想获取数据,可以使用如下所示的ImageIO.write

ByteArrayOutputStream

1
投票

要查看可在J2SE(例如JAI)中写入的图像类型,请参阅ByteArrayOutputStream out = new ByteArrayOutputStream(); ImageIO.write(img, "BMP", out); byte[] result = out.toByteArray();

E.G。

ImageIO.getWriterFileSuffixes()

输出

对于Windows 7上的此Sun Java 6 JRE。

ImageIO.getWriterFileSuffixes()

有关MIME类型,格式和相应的阅读器,请参见类似的class ShowJavaImageTypes { public static void main(String[] args) { String[] imageTypes = javax.imageio.ImageIO.getWriterFileSuffixes(); for (String imageType : imageTypes) { System.out.println(imageType); } } } 方法。


0
投票

您可以简单地做到这一点:

bmp
jpg
wbmp
jpeg
png
gif
Press any key to continue . . .

:D

© www.soinside.com 2019 - 2024. All rights reserved.