IE6 - gd ve php resim çıktısı

2 Cevap php

Ben gri tonlama-filtre ile görüntü göstermeye çalışıyorum. İşte benim kod:

$images = glob('gallery/*small*');
shuffle($images);
array_splice($images, 3);

$imgHandles = array();
$imgBuffered = array();
for( $i = 0; $i < 3; $i++)
{  
   $imgHandles[$i] = imagecreatefromstring( file_get_contents($images[$i]) ); 
   imagefilter( $imgHandles[$i], IMG_FILTER_GRAYSCALE ); 

   ob_start();
   imagepng( $imgHandles[$i] ); 
   $imgBuffered[$i] = ob_get_contents();
   ob_end_clean();
   imagedestroy( $imgHandles[$i] ); 
}

Ve çıkış:

for( $i = 0; $i < 3; $i++ )
{  
   echo "<a href=\"gallery.php\">
   <img class=\"photo\" src='data:image/png;base64,".base64_encode( $imgBuffered[$i] )."' /></a>";                                                                                    
}

In opera, ff, chrome, safari everything is fine, but ie6 doesn't show images. Why?

I made code like at page: http://dean.edwards.name/weblog/2005/06/base64-ie/ I see pictures, but in some seconds they hide... I really don't know why. Can you help me with this stuff?

2 Cevap

Veri URI şeması isn't supported in IE6 (nor IE7, apparently). Bir yerde görüntü kaydetmek ve img src olarak kaydedilmiş görüntüye URL sağlamak gerekir, ya da ayrı bir komut dosyası aracılığıyla anında onu üretmek gerekiyor ve {[(2 gibi bir şey yapacağım )]}.

ceejayoz yaklaşımı, muhtemelen en iyi ve o \ o düzeni IE6 desteklenmiyor söyleyerek doğrudur. Here is a page about how to do it in IE, ama /path/to/image_generator.php sürümünü yapmamak için iyi bir nedeniniz var umuyoruz.

Bunu yapmak için, sadece örneğin, imagepng yapar ve sonra söz konusu resim bir png tarayıcıya belirten başlıkları gönderen bir komut dosyası yaratacak. örneğin,

img_generate.php:

$images = glob('gallery/*small*');

$img_to_generate=intval($_GET['image_to_generate']);



$imgHandle = imagecreatefromstring( file_get_contents($images[$img_to_generate]) ); 
imagefilter( $imgHandle, IMG_FILTER_GRAYSCALE ); 

header('Content-type:image/png');//tell the browser what to expect
imagepng( $imgHandle ); //output the image
imagedestroy( $imgHandles ); //clean up

ve ardından html

<img src="/path/to/img_generate.php?image_to_generate=0" alt="image 0" />
<img src="/path/to/img_generate.php?image_to_generate=1" alt="image 1" />
<img src="/path/to/img_generate.php?image_to_generate=2" alt="image 2" />