Größe ändern Bild-aus Datei
Bin ich das hochladen eines Bildes auf einen server, und bevor das passiert, würde ich mag, um die Größe der image-Dimensionen. Ich bekomme das Bild mit einem URI
wie diese:
Constants.currImageURI = data.getData();
dies ist der Aufruf zum hochladen des Bildes:
String response = uploadUserPhoto(new File(getRealPathFromURI(Constants.currImageURI)));
public String uploadUserPhoto(File image) {
DefaultHttpClient mHttpClient;
HttpParams params = new BasicHttpParams();
params.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
mHttpClient = new DefaultHttpClient(params);
try {
HttpPost httppost = new HttpPost("http://myurl/mobile/image");
MultipartEntity multipartEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
multipartEntity.addPart("userID", new StringBody(Constants.userID));
multipartEntity.addPart("uniqueMobileID", new StringBody(Constants.uniqueMobileID));
multipartEntity.addPart("userfile", new FileBody(image, "mobileimage.jpg", "image/jpeg", "UTF-8"));
httppost.setEntity(multipartEntity);
HttpResponse response = mHttpClient.execute(httppost);
String responseBody = EntityUtils.toString(response.getEntity());
Log.d(TAG, "response: " + responseBody);
return responseBody;
} catch (Exception e) {
Log.d(TAG, e.getMessage());
}
return "";
}
Gibt es eine Möglichkeit, um die Größe der Datei basierend auf pixel-Dimensionen?
Dank.
InformationsquelleAutor coder | 2011-12-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus ThinkAndroid unter dieser url:
http://thinkandroid.wordpress.com/2009/12/25/resizing-a-bitmap/
Ich würde in der Möglichkeit der Schaffung eines Bitmap-oder Drawable Ressource-und wenn Sie möchten, ändern Sie die Größe der verwenden Sie den folgenden code.
EDIT: Wie vorgeschlagen im anderen Kommentar
Bitmap.createScaledBitmap
sollte verwendet werden, für eine bessere Qualität beim verkleinern.InformationsquelleAutor span
Verwenden Bitmap.createScaledBitmap wie andere vorgeschlagen.
Diese Funktion ist jedoch nicht sehr klug. Wenn Sie die Skalierung zu weniger als 50% der Größe, die Sie wahrscheinlich zu bekommen:
Statt:
Sehen Sie schlechte antialiasing-1. Bild? createScaledBitmap erhalten Sie dieses Ergebnis.
Grund ist pixel-Filterung, wo einige Pixel werden komplett übersprungen, von der Quelle, wenn die Skalierung auf < 50%.
Bekommen 2 Qualität des Ergebnisses, die Sie benötigen, zu halbieren, die Bitmap Auflösung, wenn es mehr als 2x größer als das gewünschte Ergebnis, und schließlich werden Sie anrufen, um createScaledBitmap.
Und es gibt mehr Ansätze, zu halbieren (oder ein Viertel, oder eighten) Bilder. Wenn Sie Bitmap im Speicher, die Sie rekursiv aufrufen Bitmap.createScaledBitmap zu halbieren Bild.
Wenn Sie laden Bild aus JPG-Datei, die Umsetzung ist noch schneller: Sie verwenden BitmapFactory.decodeFile und setup-Optionen parameter richtig, vor allem Feld inSampleSize, die Kontrollen subsambling der geladenen Bilder, die Verwendung von JPEG-Eigenschaften.
Viele apps, die Miniaturansichten verwenden, blind Bitmap.createScaledBitmap, und die thumbnails sind einfach nur hässlich. Seien Sie clever und verwenden Sie richtige Bild-downsampling.
InformationsquelleAutor Pointer Null
Wie man die Größe einer bitmap:
InformationsquelleAutor Jave
Sehen, was Google empfiehlt (@Zeiger Null geraten):
Nenne ich die oben zu verkleinern großes Bild:
InformationsquelleAutor Cyrille