J'envoie des images au serveur à l'aide de Volley. Voici mon code pour compresser et convertir des bitmaps en octets. Je veux envoyer des images en taille réelle, si je spécifie bmp=Bitmap.createScaledBitmap(bmp,500,400, true)
images sont étirées.Publication d'images sur le serveur, mais la taille est très petite
public String getStringImage(Bitmap bmp) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
return encodedImage;
}
C'est la taille que je reçois sur le serveur, il est vraiment petit:
Voici le code qui envoie au serveur:
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params = new Hashtable<String, String>();
for(int i=0; i<bitmapArray.size(); i++){
Log.d("size of array is",String.valueOf(bitmapArray.size()));
params.put("image"+(i+1),getStringImage(bitmapArray.get(i)));
params.put("name"+(i+1), "name"+(i+1));
}
return params;
}
Assurez-vous que le Bitmap vous passez à 'getStringImage' n'est pas déjà compressé ou taille réduite – Leo
Je pense que vous utilisez le Bitmap provenant de la' onActivityResult 'Ce qui n'est pas le bon choix. – Enzokie