Eli tarkoitukseni on tehdä suuremmasta kuvasta pienempi, eli thumbnail. Löysin sopivan koodinpätkän joka pienen karsimisen jälkeen näyttää tältä:
<?php $image = "galleria/riippumatto.jpg"; //tiedosto $scale = 50; // suhde prosentti $size = GetImageSize($image); $width = $size[0]; $height = $size[1]; $type = $size[2]; $scale = $scale/100; $newwidth = round($width*$scale); $newheight = round($height*$scale); if ($type == 2) { header ("Content-type: image/jpeg"); $src = imagecreatefromjpeg("$image"); $im = imagecreate($newwidth,$newheight); imagecopyresized($im,$src,0,0,0,0,$newwidth,$newheight,$width,$height); imagejpeg($im); imagedestroy($im); } else { echo "ei kuvaa!"; } ?>
Sivulla ei näy kuitenkaan kuvaa, vaan näkymä on tämä:
http://www.traktorit.com/php.php
Eli ongelma on tuossa koodissa rivillä:
header ("Content-type: image/jpeg");
Olen kokeillut muitakin koodeja mutta aina töppää tuohon Content-typeen. Missä vika? Mitä pitää muuttaa?
Tuon echon voit ainakin jättää pois, koska ei se näy kuvassa ellei sitä osoitetta avata suoraan selaimeen.
Ennen headeria ei saa tulostaa/olla mitään muuta. Sulla on nyt tuolla mm. noi <html> ja <head> tagit.
Jos välttämättä tuolla tavalla haluat sen tehdä kannattaa tutustua ob_start() ja ob_end_flush() funktioihin, joista löytyy vaikkapa https://www.ohjelmointiputka.net/keskustelu/3854-ja-lisää-uudelleen-ohjaus täältä lisätietoa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.