我有一个程序,其中我使用以下代码来捕获屏幕:
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
。
如果您希望将结果以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)中可用于写入的图像类型,请参见{{link1: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类型、格式以及相应的读取器。
public Bitmap getBitmapFromBufferedImage(BufferedImage image)
{
return redResult.getBitmap();
}
BufferedImage :: getBitmap()
。 - daparic