Я не могу открыть с MS Paint сохраненный растровое изображение на SDK в виде файла JPG - PullRequest
0 голосов
/ 21 января 2012

Я сохраняю растровое изображение как файл 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 Кб. Но если я хочу открыть его с помощью любой программы, например MS Paint, я получаю сообщение об ошибке. Что мне не хватает? Благодарю. КОММЕНТАРИЙ: Я попытался написать вместо последней строки следующий ряд:

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

Тот же результат.

Ответы [ 2 ]

2 голосов
/ 21 января 2012

Я думаю, что MS Paint не может работать с альфа-каналом. Таким образом, он не может читать JPG с альфа-каналом. Просто мысль.

попробуйте открыть каким-нибудь обычным графическим редактором. Кимп, например. Это бесплатно.

0 голосов
/ 21 января 2012

Наиболее вероятная причина: возможно, файл записан неправильно, т.е. не в надлежащем формате 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();
}
...