我有一个程序,我使用代码捕获屏幕:
robot = new Robot();
BufferedImage img = robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
现在我想将此BufferedImage转换为Bitmap格式并通过函数返回它以满足其他需要,而不是将其保存在文件中。有什么帮助吗?
我有一个程序,我使用代码捕获屏幕:
robot = new Robot();
BufferedImage img = robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
现在我想将此BufferedImage转换为Bitmap格式并通过函数返回它以满足其他需要,而不是将其保存在文件中。有什么帮助吗?
你需要看看 ImageIO.write
。
如果你想以a的形式得到结果 byte[]
数组,你应该使用 ByteArrayOutputStream
:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(yourImage, "bmp", baos);
baos.flush();
byte[] bytes = baos.toByteArray();
baos.close();
当你说“进入位图格式”时,你的意思是数据(如在字节数组中)?如果是这种情况,那么你可以使用 ImageIO.write
(如上所述)。
如果您不想将其保存到文件中,但只想获取数据,可以使用 ByteArrayOutputStream
喜欢这个:
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(img, "BMP", out);
byte[] result = out.toByteArray();
要查看可在J2SE(例如JAI)中写入的图像类型,请参阅 ImageIO.getWriterFileSuffixes()
:
class ShowJavaImageTypes {
public static void main(String[] args) {
String[] imageTypes =
javax.imageio.ImageIO.getWriterFileSuffixes();
for (String imageType : imageTypes) {
System.out.println(imageType);
}
}
}
对于Windows 7上的Sun Java 6 JRE。
bmp
jpg
wbmp
jpeg
png
gif
Press any key to continue . . .
观点差不多 ImageIO
MIME类型,格式和相应读者的方法。