2012-01-21 7 views
0

ビットマップをjpgファイルとして保存します。ソースコードはMS Paintでjpgファイルとして保存されたビットマップを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のようなプログラムで開こうとすると、エラーメッセージが表示されます。何が欠けていますか?ありがとう。 COMMENT:

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

同じ結果:私が代わりに最後の生のフォロー行の書き込みをしてみました。

+0

最も考えられる原因:ファイルが正しく書き込まれていない可能性があります。つまり、適切なjpeg形式ではありません。 –

+0

こんにちはクマールビーベック、私はファイルが大丈夫保存されていると思います。 Gangnusが答えに書いたように、私はGIMPでそれを開くことに成功しました。 –

答えて

2

私は、MSペイントがアルファチャンネルで動作しないと思います。だから、アルファチャンネルでjpgを読むことはできません。ちょっとした考え。

通常のグラフィックエディタで開きます。例えば、Gimp。これは無料。

+0

こんにちはギャングス、あなたは正しいです。私は今、GIMPをダウンロードし、両方のファイルを開きます(最後の2行が問題コードに保存されています)。ありがとう!それは素晴らしい。 –

+0

喜んで助けてください。うだち! – Gangnus

+0

これは、不愉快なアンドロイド/エクリプスのテクニックを除いて、**多くの**バグの多いMSテクノロジーが存在することを証明しています。 – Gangnus

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(); 
} 
関連する問題