Я изменяю размер растрового изображения, используя следующий код:
FileOutputStream out = new FileOutputStream("/sdcard/mods.png");
Bitmap bmp = Bitmap.createScaledBitmap(pict, (int)(pict.getWidth() / totScale),  
    (int)(pict.getHeight() / totScale), false);
bmp.compress(Bitmap.CompressFormat.PNG, 90, out);
out.close();
Код для получения растрового изображения с камеры, которую я использую, следующий:
mCamera.takePicture(null, null, null, new Camera.PictureCallback() {
        @Override
        public void onPictureTaken(byte[] data, Camera camera) {
            pict = BitmapFactory.decodeByteArray(data, 0, data.length);
        }
});
Первое изображение - это то, что я вижу на телефоне (в диспетчере файлов Astro), а также когда рисую растровое изображение в своем приложении на холсте. Это происходит на каждом устройстве, на котором я тестировал (HTC Legend и Galaxy Tab). Второе изображение выглядит так, как на моем компьютере. Что вызывает блоки на устройстве?
 
Решение:
Вот что исправила мою проблему: Вместо
pict = BitmapFactory.decodeByteArray(data, 0, data.length);
Я заменил это на
BitmapFactory.Options opts = new BitmapFactory.Options();               
opts.inPreferredConfig = Bitmap.Config.ARGB_8888;
pict = BitmapFactory.decodeByteArray(data, 0, data.length, opts);
 
 

