Bonjour,

Voila j'ai un script qui insere des images dans ma base de données mysql sous forme de blob.
J'arrive a les afficher tout simplement mais ce que je voudrais faire c'est pouvoir les ressortir et appliquer un filtre via imagemagick surement et réenvoyer l'image dans la bdd.

J'ai vu quelques exemples qui utilise les fonctions :
imagecreatefromstring() et imagecreatetruecolor()

Pour creer l'image virtuelle et pouvoir la réutilisé.

Mais je suis bloqué au moment de creer l'image via la fonction : imagecreatefromstring()
qui me retourne cette erreur :

au niveau du echo de $source j'ai ca : Resource id #4

et ensuite

lorsque je décommente la ligne header('Content-Type: image/jpeg');

je me retrouve avec le chemin de la page au lieu de l'image ...

sachant que je l'execute de cette maniere :
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
26
27
28
29
30
31
32
33
34
35
36
37
//header('Content-Type: image/jpeg');
    $source = imagecreatefromstring($photo['image']);
 
    $width_src = imagesx($source);
	echo '<br>';
	echo $width_src;
    $height_src = imagesy($source);
 
	echo '<br>';
	echo $height_src;
    if ($width && ($width_src < $height_src)) {
       $width = ($height / $height_src) * $width_src;
    } else {
       $height = ($width / $width_src) * $height_src;
    }
    $ext = 'image/jpeg';
    $destination = imagecreatetruecolor ($width_src, $height_src) or die ("Erreur pour créer l'image");
    // on créé un cadre autour de la miniature
    $blanc = imagecolorallocate ($destination, 255, 255, 255);
    $gris[0] = imagecolorallocate ($destination, 69, 69, 69);
    $gris[1] = imagecolorallocate ($destination, 82, 82, 82);
    $gris[2] = imagecolorallocate ($destination, 97, 97, 97);
    $gris[3] = imagecolorallocate ($destination, 107, 107, 107);
    $gris[4] = imagecolorallocate ($destination, 120, 120, 120);
    $gris[5] = imagecolorallocate ($destination, 134, 134, 134);
    $gris[6] = imagecolorallocate ($destination, 145, 145, 145);
 
    for ($i=0; $i<7; $i++) {
       imagefilledrectangle($destination, $i, $i, $width-$i, $height-$i, $gris[$i]);
    }
    // créé la miniature : attention fonction lourde
    imagecopyresampled($destination, $source, 8, 8, 0, 0, $width_src, $height_src, $width_src, $height_src);
 
    //call_user_func('image.jpg', $destination);
    imagejpeg($source);
    imagedestroy($source);
    imagedestroy($destination);


ayant dans $photo['image'] les données qu'il y a dans le champ blob de ma bdd.

J'espere que quelqu'un pourra m'aider.

Merci
Clement