我无法使用MS Paint在sdk上保存的位图作为jpg文件打开

时间:2012-01-21 13:05:34

标签: android android-emulator android-widget

我将位图保存为jpg文件。源代码是:

imageView = new ImageView(this);
bitmap = Bitmap.createBitmap(d.getWidth() ,d.getHeight() , Bitmap.Config.ARGB_8888);
canvas = new Canvas (bitmap);

iv.setDrawingCacheEnabled(true);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(new File("/mnt/sdcard/mrun.jpg")));

我在模拟器上测试它。文件已保存,大小约为150 Kb。但是如果我想用任何程序打开它作为MS Paint,我会收到错误消息。我错过了什么?谢谢。 评论:我试着写下而不是最后一个原始的后续行:

iv.getDrawingCache().compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(new File("/mnt/sdcard/arun.jpg")));

同样的结果。

2 个答案:

答案 0 :(得分:2)

我认为,MS Paint无法使用Alpha通道。所以,它不能用alpha通道读取jpg。只是一个想法。

尝试通过一些普通的图形编辑器打开。例如,Gimp。它是免费的。

答案 1 :(得分:0)

最可能的原因:文件可能没有正确写入,即没有正确的jpeg格式。虽然代码似乎没问题。

这很有效。

iv.setDrawingCacheEnabled(true);

Bitmap bitmap = iv.getDrawingCache();
iv.buildDrawingCache();

try {
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100,
                    new FileOutputStream(new File("/mnt/sdcard/Temp/mrun.jpg")));
} catch (FileNotFoundException e) {
    e.printStackTrace();
}