Bonjour, ça m'a fait toute une journée que je cherche une solution à ce problème :

je n'arrive pas à afficher une image que je charge depuis une base de donnés mysql en utilisant un php URL.

voici le code de la class LoadImage :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@Override
           protected void onPostExecute(Bitmap b) {
               super.onPostExecute(b);
               loading.dismiss();
               imageView.setImageBitmap(b);
           }
 
           @Override
           protected Bitmap doInBackground(String... params) {
               String id = params[0];
               String add = "http://192.168.1.30/save/load_image_from_db.php?id="+id;
               URL url;
               Bitmap image = null;
               try {
                   url = new URL(add);
                   HttpURLConnection connection  = (HttpURLConnection) url.openConnection();
                   image = BitmapFactory.decodeStream(connection.getInputStream());
               } catch (MalformedURLException e) {
                   e.printStackTrace();
               } catch (IOException e) {
                   e.printStackTrace();
               }
               return image;
           }
       }
le fichier php qui permet de charger l'image depuis la base de donnés mysql :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
if($_SERVER['REQUEST_METHOD']=='GET'){
$id = $_GET['id'];
$sql = "SELECT * FROM images WHERE id = '$id' ";
$con = mysqli_connect("localhost","root","","othmane");
$r = mysqli_query($con,$sql);
$result=mysqli_fetch_array($r);
header('content-type: image/jpeg');
echo base64_decode($result['image']);
mysqli_close($con);
}
else{
echo "Error";
 }
?>
je reçoie dans le LogCat cette erreur :

W/EGL_emulation: eglSurfaceAttrib not implemented

W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xe99e1a80, error=EGL_SUCCESS

D/skia: --- SkImageDecoder::Factory returned null

E/Surface: getSlotFromBufferLocked: unknown buffer: 0xe8477170

l'erreur SkImageDecoder::Factory returned null veut dire que android n'a pas pu decoder le InputStream venu de connection.getInputStream()

cela veut dire qu'il y a un problem avec le fichier.php??
dans le manifest j'ai bien ajouté :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<uses-permission android:name="android.permission.INTERNET" />