Сохранение растрового изображения в Android - PullRequest
1 голос
/ 27 ноября 2011

Я пытаюсь реализовать проект стеганографии для Android. Я манипулировал значениями пикселей и создал новое растровое изображение. Теперь, когда я сохраняю растровое изображение в памяти телефона или на карте памяти, используя

//fo denotes File output Stream
Bitmap.compress(Bitmap.CompressFormat.JPEG,100,fo);
//OR
Bitmap.compress(Bitmap.CompressFormat.PNG,100,fo);   

и попробуйте получить доступ к пикселям обратно, используя getPixels ();

значения возвращаются к исходному растровому изображению, т. Е. Вместо обработанного растрового изображения. Кто-нибудь может понять, почему это так?

Ответы [ 2 ]

1 голос
/ 26 января 2013

JPEG с потерями, он может изменять значения пикселей при сжатии.Используйте PNG, если хотите сохранить цвета.

1 голос
/ 27 ноября 2011
File myDir=new File("/sdcard/saved_images");
myDir.mkdirs();
Random generator = new Random();
int n = 10000;
n = generator.nextInt(n);
String fname = "Image-"+ n +".jpg";
File file = new File (myDir, fname);
if (file.exists ()) file.delete (); 
try {
       FileOutputStream out = new FileOutputStream(file);
       finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
       out.flush();
       out.close();

} catch (Exception e) {
       e.printStackTrace();
}

посмотрите на этот ответ https://stackoverflow.com/a/7887114/964741

...