2013-11-11 1 views
0

Я читал об этом в нескольких вопросах форума. Но всегда люди используют метод «Bitmap createScaledBitmap (Bitmap src, int dstWidth, int dstHeight, boolean filter)», но я не могу применить этот метод, потому что при работе с большими изображениями он терпит неудачу с сообщением outofmemory.Как изменить размер фотографии, уже сделанной и сохраненной в файле?

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

Я использую следующий код для съемки фотографии.

public void openTakePicture() { 

     String date = new SimpleDateFormat("dd-MM-yyyy_HH-mm-ss").format(new Date()); 

     photoname = "pic_" + date + ".jpg"; 

     // Create an output file. 
     file = new File(Environment.getExternalStorageDirectory(), photoname); 
     outputFileUri = Uri.fromFile(file); 

     // Generate the Intent. 
     Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
     intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 

     // Launch the camera app. 
     startActivityForResult(intent, TAKE_PICTURE); 

    } 

Спасибо за ваши комментарии

+0

попробуйте эту ссылку ... http://stackoverflow.com/questions/3331527/android-resize-a-large-bitmap-file-to-scaled-output-file –

+0

Спасибо, но этот метод аналогичен createScaledBitmap и также дает мне ошибку outofmemory. – MAOL

ответ

1

В зависимости от ваших потребностей вы можете захватить картинку меньшего размера, а затем манипулировать ею. Я использовал что-то похожее на нижеследующее, но столкнулся с проблемами, когда некоторые камеры не поддерживали setPictureSize, поэтому я закончил использование масштабированного растрового подхода.

Возможно, вам нужно будет проверить, поддерживает ли камера нужный размер перед вызовом setPictureSize.

parameters.setPictureFormat(ImageFormat.JPEG); 
parameters.setPictureSize(1600, 1200); 
parameters.setJpegQuality(30); 
mCamera.setParameters(parameters); 

 Смежные вопросы

  • Нет связанных вопросов^_^