我有一个程序,其中使用代码捕获屏幕:
robot = new Robot();
BufferedImage img = robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
现在,我想将此BufferedImage转换为Bitmap格式,并通过其他需要的函数返回它,而不是将其保存在文件中。有任何帮助吗?
您需要看一下ImageIO.write
。
ImageIO.write
如果要以The Java Tutorials: Writing/Saving an Image数组的形式显示结果,则应使用byte[]
:
ByteArrayOutputStream
[当您说成“位图格式”时,您是指数据(如字节数组)?如果是这种情况,则可以使用ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(yourImage, "bmp", baos);
baos.flush();
byte[] bytes = baos.toByteArray();
baos.close();
(如上述建议)。如果您不想将其保存到文件中,而只想获取数据,可以使用如下所示的ImageIO.write
:
ByteArrayOutputStream
要查看可在J2SE(例如JAI)中写入的图像类型,请参阅ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(img, "BMP", out);
byte[] result = out.toByteArray();
:
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);
}
}
}
方法。
您可以简单地做到这一点:
bmp
jpg
wbmp
jpeg
png
gif
Press any key to continue . . .
:D