Android: ölçekli bir çıktı dosyası için büyük bir bit eşlem dosyası yeniden Boyutlandırmak
Büyük bir bit eşlem (ki 3888x2592) bir dosya var. Şimdi, 800x533 böyle bir bitmap yeniden boyutlandırmak ve başka bir dosyaya kaydetmek istiyorum.
Ben normalde ölçek bitmap çağırarak Bitmap.createBitmap
yöntem ama ihtiyacı olan bir kaynak bit eşlem olarak ilk bağımsız değişken, hangi yapamam sağlamak için yükleme orijinal görüntü içine bir Bitmap nesnesi olur elbette aşan bellek (bkz here, örneğin).
Ben de bit eşlem ile, örneğin, BitmapFactory.decodeFile(file, options)
, tam genişlik ve yükseklik yeniden boyutlandırmak için istiyorum BitmapFactory.Options.inSampleSize
, çünkü sağlayan okuyamıyor. inSampleSize
kullanarak 778x518 bile 2 güç değildir ** 5, kullanırsam () 972x648 inSampleSize=4
kullanırsam () veya bitmap yeniden boyutlandırmak.
İstiyorum kaçının okuma görüntüyü kullanarak inSampleSize ile, örneğin, 972x648 bir ilk adım ve sonra yeniden boyutlandırmak için tam olarak 800x533 ve ikinci adımda, çünkü kaliteli olurdu göre kötü bir doğrudan boyutlandırma orijinal resim.
Özetle sorum şu: Bir şekilde okumak için büyük bir resim olan 10 veya daha fazla dosya var ve OutOfMemory bir özel durum olmadan yeni bir resim dosyası, özel yeni genişlik ve yükseklik boyutları, kaydetmek?
Ben de BitmapFactory.decodeFile(file, options)
ve Seçeneklerini ayarlama çalıştı.outHeight ve Seçenekleri.outWidth 800 el değerleri ve 533, ama bu işler öyle yürümüyor.
CEVAP
Hayır.Birisi bana doğru çok isterdim, ama bir uzlaşma olarak çalıştığınız yükleme/yeniden boyutlandırma yaklaşımı kabul ettim.
Burada kimseyi tarama için: adımları
- Hala resim sizin hedef daha büyük verimleri
inSampleSize
mümkün olan maksimum hesaplayın. - Bir seçenek olarak görüntü
BitmapFactory.decodeFile(file, options)
, inSampleSize geçen kullanılarak yük. - İstediğiniz boyutları
Bitmap.createScaledBitmap()
kullanarak yeniden boyutlandırmak.
Ne kadar İsmen daha sonra dosyası yeni...
Böyle büyük mükafat uyarı: "Birde...
Nasıl android xml drawable dosyası içi...
Nasıl Android bir Bitmap yeniden Boyut...
Büyük bir Metin Dosyası Bölmek için ko...