2013-04-11 4 views
1

J'ai un fichier binaire où est stocké l'image, j'essaie d'obtenir cette image, mais n'affiche que l'image en couleur noire, ce qui peut être mauvais avec mon code ou un fichier binaire.PHP afficher l'image png du fichier binaire

<?php 
function LoadPNG ($imgname) { 
    $im = @imagecreatefrompng ($imgname); 

    if (!$im) { 
     $im= imagecreate (150, 30); 
     $bgc = imagecolorallocate ($im, 255, 255, 255); 
     $tc= imagecolorallocate ($im, 0, 0, 0); 
     imagefilledrectangle ($im, 0, 0, 150, 30, $bgc); 

     imagestring ($im, 1, 5, 5, "Error loading $imgname", $tc); 
    } 
    return $im; 
} 

header('Content-Type: image/png'); 

$img = LoadPNG('452'); 

imagepng($img); 
imagedestroy($img); 
?> 

avec ce code je reçois je erreur qui ne peut pas charger le fichier

fichier: testams.serveriai.lt.lazdynas.serveriai.lt/452 Script: testams.serveriai.lt.lazdynas.serveriai.lt/crypt.php

+0

Cela peut vous aider à http://stackoverflow.com/questions/2070603/php-recreate-and-display-an-image-from-binary-data – Pooshonk

+0

je peux voir le « Erreur lors du chargement 452 » image sur votre page de script dans Safari. Est-ce que cela ne fait que casser dans un navigateur particulier? –

+0

@MattGibson il n'est pas dans tous les navigateurs – user2250371

Répondre

3

Votre image PNG est corrompu, il a un caractère \n au lieu de \r\n, (byte position 5) généralement un problème découlant du transfert FTP d'une image binaire en mode texte de Windows à Unix. Avant de jouer avec PHP, vérifiez simplement que l'image est correcte, par exemple en ajoutant l'extension .png, en la plaçant dans un dossier visible (sur le serveur web) et en la parcourant.