Compresser une image et la transmettre
Bonjour,
Mon appli Android compresse une image de la façon suivante :
Code:
1 2 3 4 5 6 7 8 9 10
| //Conversion de l'image soumise
soumissionIMG.buildDrawingCache();
soumissionImage = soumissionIMG.getDrawingCache();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
soumissionImage.compress(Bitmap.CompressFormat.JPEG, 25, stream);
byte[] imageBytes = stream.toByteArray();
String imageStr = Base64.encodeToString(imageBytes,Base64.NO_WRAP);
sql = "?TIT=" + soumissionTitre.getText().toString() + "&MES=" + soumissionCorps.getText().toString()+ "&IMG=" + imageStr;
interrogeServeur(); |
soumissionIMG est à l'origine une ImageView où s'affiche parfaitement mon image.
A l'autre bout, mon code PHP tente de la récupérer pour la sauvegarder :
Code:
1 2 3 4 5
| $image = $_GET["IMG"];
$titim = "M:\\Informatique\\François\\IMG\\".$titre.date("d-m-y-h-i-s").".jpg";
$source = imagecreatefromstring(base64_decode($image));
imagejpeg($source,$titim);
imagedestroy($source); |
Mais à ce stade, si $image n'est effectivement pas vide (semble bien correspondre à une chaine d'encodage d'une image), $source renvoie "Null" à chaque fois. J'ai essayé une étape intermédiaire avec
Code:
1 2
|
$base64 = base64_decode($image) |
Et là, $base64 renvoie également un "Null à chaque fois. J'en déduis que mon décodage n'est pas bon, mais puisque je ne trouve rien dans la doc de base64_decode qui pourrait expliquer mon erreur, faut-il en conclure que le ver est dans le fruit dès l'encodage ?
Merci de votre aide !