如何在android中将ddmlib.RawImage转换为位图或jpg图像?

如何在android中将ddmlib.RawImage转换为位图或jpg图像?,android,ddms,android-bitmap,Android,Ddms,Android Bitmap,我正在尝试将Java代码移植到android代码。源代码如下: 这里 RawImage raw=device.getScreenshot() 它捕获android屏幕的截图,并将其保存为RawImage 此RawImage在“ddmlib.RawImage”(ddms)中定义,并进一步转换为BufferImage。现在的问题是-android不支持java.awt.image.buffereImage 那么,如何将这个rawmimage转换为位图或任何其他android支持的图像格式呢 或者,

我正在尝试将Java代码移植到android代码。源代码如下:

这里

RawImage raw=device.getScreenshot()

它捕获android屏幕的截图,并将其保存为
RawImage

此RawImage在“ddmlib.RawImage”(ddms)中定义,并进一步转换为BufferImage。现在的问题是-android不支持java.awt.image.buffereImage

那么,如何将这个
rawmimage
转换为位图或任何其他android支持的图像格式呢


或者,是否有任何方法可以直接使用
RawImage
显示或保存在外部存储器中?

您可以从网站上找到答案

你可以测试源代码(我已经测试过了,没问题):

//将原始数据转换为图像
BuffereImage=新的BuffereImage(rawImage.width、rawImage.height、BuffereImage.TYPE_INT_ARGB);
int指数=0;
int IndexInc=rawImage.bpp>>3;
对于(int y=0;y
if(!ImageIO.write(image,“png”,new File(filepath)){throw new IOException(“找不到png writer”);}你有没有注意到你附加的“screenshot:java”@A M:ImageIO链接android也不支持
// convert raw data to an Image

BufferedImage image = new BufferedImage(rawImage.width, rawImage.height, BufferedImage.TYPE_INT_ARGB);

int index = 0;
int IndexInc = rawImage.bpp >> 3;
for (int y = 0 ; y < rawImage.height ; y++) {
    for (int x = 0 ; x < rawImage.width ; x++) {
        int value = rawImage.getARGB(index);
        index += IndexInc;
        image.setRGB(x, y, value);
    }
}

if (!ImageIO.write(image, "png", new File(filepath))) {
    throw new IOException("Failed to find png writer");
}