2016-09-11 3 views
2

Ich mache eine Android-Anwendung, die Bilder erfasst und speichert sie im internen Speicher, aber zum Speichern der Bilder sind komprimiert und ich möchte in seiner ursprünglichen Größe ohne Komprimierung gespeichert werden.Wie kann ein Bild in Android ohne Komprimierung gespeichert werden?

Dies ist der Code, den ich verwende, um Bilder zu speichern, da ich so nicht komprimiere ich ??

ContextWrapper cw = new ContextWrapper(context); 

File directory = cw.getDir("imageDir", Context.MODE_PRIVATE); 

File mypath = new File(directory, "TheChat" + (System.currentTimeMillis()/1000) + "Avatar.jpg"); 

FileOutputStream fileOutputStream = null; 
try { 
    fileOutputStream = new FileOutputStream(mypath); 
    bitmapImage.compress(Bitmap.CompressFormat.PNG, 100, fileOutputStream); 
} 
catch (Exception e) { 
    e.printStackTrace(); 
} 
finally { 
    try { 
     if (fileOutputStream != null) { 
      fileOutputStream.flush(); 
      fileOutputStream.close(); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 
+2

Welches Dateiformat möchten Sie für das Bild verwenden? Die meisten von Programmierern verwendeten Dateiformate sind komprimiert, z. B. PNG, JPEG, GIF und WebP. – CommonsWare

+0

Warum bevorzugen Sie keine Komprimierung gegenüber verlustfreier Komprimierung? –

Antwort

2

Speichern Sie es als BLOB (Bytearray) und konvertieren Sie es dann beim Laden in ein Bitmap. Wenn es nur für den internen Gebrauch ist, sollte es gut funktionieren. Wenn Sie es nicht komprimieren, können Sie es auch in einem direkten Format speichern.

Verwandte Themen