Archief - PHP: Image Resizing, RAAR probleem

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Ryzer

Legacy Member
Ik gebruik deze functie om On-The-Fly JPG images the resizen:

PHP:
function createthumb($filename) {
	$maxwidth = 125;
	$maxheight = 150;
	$simg = imagecreatefromjpeg($filename);
	$currwidth = imagesx($simg);
	$currheight = imagesy($simg);

	if ($currheight>$currwidth*1.7) {
	   $zoom=$maxheight/$currheight;
	   $newheight=$maxheight;
	   $newwidth=$currwidth*$zoom;
	}else{
	   $zoom=$maxwidth/$currwidth;
	   $newwidth=$maxwidth;
	   $newheight=$currheight*$zoom;
	}
	
	$dimg = imagecreate($newwidth, $newheight);
	
	imagetruecolortopalette($simg, false, 256);
	$palsize = ImageColorsTotal($simg);
	for ($i = 0; $i<$palsize; $i++){
	   $colors = ImageColorsForIndex($simg, $i);
	   ImageColorAllocate($dimg, $colors['red'], $colors['green'], $colors['blue']);
	}
	
	imagecopyresized($dimg, $simg, 0, 0, 0, 0, $newwidth, $newheight, $currwidth, $currheight);
	imagejpeg($dimg, '', 100);
	imagedestroy($simg);
	imagedestroy($dimg);
}

En deze roep ik dan zo aan:

PHP:
			$photo=$DB_site->query_first("SELECT filename, dateline FROM site_photos WHERE id='".addslashes($_GET['id'])."' LIMIT 1");
			header("Cache-control: max-age=31536000");
			header("Expires: " . gmdate("D, d M Y H:i:s",time()+31536000) . " GMT");
			header("Content-disposition: inline; filename=$photo[filename]");
			header("Content-Length: ".strlen($filedata));
			header("Last-Modified: " . gmdate("D, d M Y H:i:s",$photo[dateline]) . " GMT");
			
			$extension = substr(strrchr(strtolower($photo[filename]), '.'),1);
			
			if($extension == 'jpg') {
				header('Content-type: image/jpeg');
			}elseif ($extension == 'png') {
				header('Content-type: image/png');
			}else{
				header('Content-type: image/gif');
			}
			
			createthumb($config[photo_dir]."/".$photo[filename]);
			exit();

Nu het probleem is, als ik dit test en een aantal keer refresh merk ik hetvolgende:
- Eerst werkt het niet
- Na een refresh weer wel
- Dan weer niet
- Dan weer wel
- Dan weer niet
- ... ... ...

Test zelf maar:
http://www.ryzer.net/rmg/picture.php?id=4&thumb=1

Ik snap er nix van :wtf:

Iemand een idee?

Ryzer

Legacy Member
Ok ik heb die header()'s weggedaan en nu werkt het wel :s Heel raar ...

servi

Legacy Member
zet helemaal vanboven in uw code :

error_reporting( E_ALL);

dan zal je het probleem wel te weten komen.


edit : overigens werkt uw code niet in mozilla firefox. Je moet duidelijk specifieren dat het een afbeelding is.

CyBeRRaT

Legacy Member
hier werkt het volledig in ie
in firefox krijg ik echter een fout. het lijkt op de code van een gecompileerd bestand ofzo. (zoiets: #¿fÓó¯Ë maar dan enkele pagina's lang...)

foutje bij uw php extentie? die staat bovenaan de source (enige leesbare)
<CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 100

EDIT: mmm, was wa traag:) servi is ne snelle jonge :)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan