Fotoğraf makinesinden belirli (bellek dostu) boyutta bir bitmapi nasıl alabilirim?Fotoğraf makinesiyle gönderilen bit eşlemin boyutu amaç tarafından mı?
Ben bir kamera niyet başlıyorum:
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra("return-data", true);
photoUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "mytmpimg.jpg"));
cameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(cameraIntent, REQUEST_CODE_CAMERA);
Burada sonucu işlemek: Artık
// Bitmap photo = (Bitmap) intent.getExtras().get("data");
Bitmap photo = getBitmap(photoUri);
ben yorumladı çizgi kullanırsanız - doğrudan bit eşlem almak, hep bir olsun 160 x 120 bitmap ve bu çok küçük. Ben bulduğum bazı standart şeyler kullanarak URI'dan yüklerseniz (method getBitmap), 2560 x 1920 bitmap (!) Yükler ve neredeyse 20 mb bellek tüketir.
nasıl en (kamera önizleme bana gösteriyor aynı boyut) 480 x 800 diyelim yüklerim? belleğe 2560 x 1920 yüklemek zorunda ve kireç oluşumu olmadan
. İşte
Bu yardımcı olur mu? http://stackoverflow.com/questions/3331527/android-resize-a-large-bitmap-file-to-scaled-output-file –
Muhtemelen, ancak ekranda gördüğüm şeyi elde etmenin bir yolu yoktur. pic çekerken ... Daha fazla bir şeye ihtiyacım yok. – Ixx
Ben Rujil'in bağlantısı, bildiğim en iyi cevaba işaret ediyor. Seçiminiz temel olarak Niyet'deki küçük resim veya Dosya'daki doğal çözünürlükte fotoğraftır. Fotoğrafı daha düşük bir çözünürlükte kaydetmek için kamera uygulamasını alma, bu sizin seçiminizdir. – Sparky