提问者:小点点

MAT(Eclipse Memory Analyzer)-如何从内存转储中查看位图


我认为有一个字段mBuffer包含图像像素数组。但它是某种内部Android格式,而不是PNG。

问:如何从内存转储中查看此位图表示的图像?


共2个答案

匿名用户

我找到了一种查看此类位图的方法:

  • 首先,您需要下载并安装GIMP
  • 接下来,在MAT中找到你的位图对象,右键单击mBuffer字段,在弹出菜单中选择“复制”-

此时您应该已经观察到原始图像的预览。如果没有,您可以尝试在“从原始数据加载图像”对话框中更改其他一些参数。

注意:要获得图像的宽度和高度,您可以查看属性部分MAT中的mWidthmHeight字段,如相关图像所示。

匿名用户

您可以在命令行上使用ImageMagick将内存转储从MAT转换为png。

MAT中,对于相关的位图对象,右键单击mBuffer字段并选择“复制”-

您需要从mWidthmHeight字段中记录位图宽度和高度,您可以在位图对象中看到。

安装了ImageMagick命令行工具(对于Ubuntuapt-get install imagemagick)后,您发出带有以下参数的转换命令。

convert -size 'width'x'height' -depth 8 filename.rgba filename.png

举个例子

 convert -size 680x1209 -depth 8 phone_decor.rgba phone_decor.png

您可以通过eog检查生成的png文件,如eogphone_decor. rgbaUbuntu上很容易。