我将位图保存为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")));
同样的结果。
答案 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(); }