2016-05-27 4 views
0

Ich habe eine sehr große Bilddatei (über 25 MB) mit Abmessungen etwa 10000x10000 px. Ich muss dieses Bild verkleinern, dass Datei nicht mehr als 20MB war. Ich weiß, überVerkleinern Sie die sehr große Bilddatei bis zu etwas weniger groß

BitmapFactory.Options o = new BitmapFactory.Options(); 
o2.inSampleSize = <scale>; 
BitmapFactory.decodeSomething(...); 

Aber wenn scale = 2 Dimension 5000x5000 Pixel waren, das ist gut für mich, aber mehr als android dekodieren kann und es verursacht OutOfMemory. Also die Frage ist, wie 10000x10000 px Bilddatei auf 5000x5000 px Bilddatei herunterskalieren? Gibt es eine Möglichkeit, es zu tun, ohne Bitmap zu verwenden, um OutOfMemory zu vermeiden?

+0

Versuchen Sie [Tiny PNG] (https://tinypng.com/). Es wird die Größe um 60-70% reduziert. Es wird nur die Größe (MB) nicht skalieren Bild, aber gute Option. –

+0

Dies ist komplett keine mobile Aufgabe, um solche Bilder zu skalieren. Aber als eine Option können Sie versuchen, Bildteile zu laden, zum Beispiel teilen Sie es in 4x4 = 16 Teile, skalieren Sie jede von ihnen getrennt, und dann verbinden sie –

+0

was Sie tun möchten mit 5000x5000 px Bild auf Ihrem Telefon? – pskink

Antwort

0

Zunächst müssen Sie Metadaten über das Bild erhalten, erforderlichen Speicherplatz im mobilen Speicher freisetzen, falls erforderlich, ein Bitmap und ein zeichnungsfähiges Objekt erstellen und das ursprüngliche Bild in A888 oder einem anderen Format (das Bildformat, das weniger Speicher belegt) konvertieren dann nehmen Sie eine Größe (Höhe und Breite) des erforderlichen Bildes und zeichnen Sie ein Bild auf Draw-fähige Klasse. Für weitere Informationen folgen Sie diesem Link http://voidcanvas.com/whatsapp-like-image-compression-in-android/ es funktionierte für mich. Ändern Sie die Bildgröße und das Komprimierungsformat je nach Bedarf.

Verwandte Themen