2010-09-06 4 views
1

Ceci est mon code actuel, j'ai des problèmes liés à la bonne visualisation de l'image gif générée à la volée pour mon script PHP. Si j'accède directement à l'image gif générée par le script, le navigateur le montrera bien mais si j'essaye de mon script actuel via le tag img, le navigateur ne pourra pas le montrer.Convertir l'image JPG en GIF et l'imprimer dans la balise IMG en BASE64

Des amis, des amis?

<?php 
$src = imagecreatefromjpeg('img/ejemplo-2.jpg'); 
list($width, $height) = getimagesize('img/ejemplo-2.jpg'); 
$tmp = imagecreatetruecolor('300', '300'); 
imagecopyresampled($tmp, $src, 0, 0, 0, 0, '300', '300', $width, $height); 
$imagen = imagegif($tmp, "filename.gif"); 
$data = "data:image/gif;base64," . base64_encode(file_get_contents("filename.gif")); 
?> 

<img src="<?php echo $data; ?>" width="300" height="300" /> 
+2

Quel navigateur vous testez avec? –

+0

Mozilla Firefox 3.6 sur Mac OS X Snow Leopard, cet exemple fonctionne bien dans mon navigateur: http://diveintogreasemonkey.org/patterns/add-image.html –

+1

Y a-t-il une raison particulière pour laquelle vous devez utiliser le schéma d'URI de données? Il n'est pas pris en charge dans tous les navigateurs et vous utiliserez beaucoup plus de bande passante en encodant les données d'image en base64. Je recommande fortement de référencer votre script PHP comme img src, plutôt que de simplement jeter les données là. – Brad

Répondre

0

Alors que Opera 7.2+, Firefox, Safari, Netscape et Mozilla données de soutien URIs, Internet Explorer 5-7 ne font pas. Cependant, Internet Explorer 8 le ferait, en passant le test Acid2, rendant les URL de données une alternative viable pour l'intégration de petites images décoratives. Il existe des solutions de contournement que vous pouvez utiliser pour les versions antérieures d'Internet Explorer.

Si vous souhaitez obtenir des problèmes de cache du navigateur rond, ajoutez un nombre aléatoire généré sur la fin du img src:

<img src="test.jpg?12345" /> 
+0

Merci beaucoup, était très facile après votre suggestion jejeje:) –

Questions connexes