2010-02-03 8 views
1

J'essaie de convertir une chaîne en une image en utilisant la fonction "imagecreatefromstring" (J'ai joint le code ci-dessous). Il fonctionne pour la plupart des images, mais lorsque je tente de convertir des images plus grandes, une petite partie de l'image ne soit pas converti (la partie inférieure de l'image est tout simplement gris)problème avec la fonction imagecreatefromstring

mon code est (prendre de php .net par exemple):

  $data = base64_decode($record['text']); 

      $im = imagecreatefromstring($data); 
      if ($im !== false) { 
       header('Content-Type: image/jpeg'); 
       imagejpeg($im); 
       imagedestroy($im); 
      } 

j'essaie aussi de décoder façon différente la chaîne pas dans une pice, mais divise la chaîne, puis le décoder.

for($i=0, $len=strlen($record['text']); $i<$len; $i+=4){ 
       $data.= base64_decode(substr($record['text'], $i, 4)); 
      } 

Répondre

1

Il semble que vos données aient été tronquées, que ce soit lors du stockage ou de la récupération. Vérifiez que vous avez l'intégralité de l'image dans votre magasin.

+0

-je le vérifier .... –

0

Vous n'avez pas besoin de base64 décoder la chaîne, c'est probablement la racine de votre problème.

+0

je en ai besoin, je pense, si je laisse tomber est erreur d'impression: données ne sont pas dans un format reconnu –

+0

@haim evgi: N'êtes-vous pas aussi base64 ** ** encodage du données en premier lieu? –

+0

je édite la question, je décode seulement une fois (une fois ou par split) –