webForumDet fria alternativet

vad e det för fel på mina thumbnails?

PHPur PHP

6 svar · 904 visningar · startad av DarkBob

Medlem sedan aug. 20039 inlägg
Frågan#1

Har lite problem med att skapa thumbnails i php. Eftersom jag trodde att min server var fel confad så testade jag detta script som jag fått på ett annat forum.

$image = ImageCreateFromJPEG($bild);   // skapa en bild med $bild som bas
    Header("Content-type: image/jpeg");     // fixxa en jpeg header så browsern ser att det är en bild
    ImageJPEG($image, '', $qual);     // visa bilden $image med komprimeringen $qual
    ImageDestroy($image);  // deleta $image, nu när den är visad behövs den inte längre

och resultatet blev detta:

Någon som kan förklara vad felet kan vara?

Medlem sedan aug. 20002 975 inlägg
#2

Sannolikt skickar du något till webbläsaren innan, troligtvis då tomrad (radbrytning) eller mellanslag.

Kolla så att du inte har någon tomrad eller mellanslag före PHP-taggen. Den ska alltså ligga på översta raden längst till vänster.
Du får sedan inte gå in/ur PHP-läge.

Vill du kolla så koppla på dina felmeddelanden. Lägg följande överst på sidan:

<?php // <-- Översta raden längst till vänster

error_reporting(E_ALL);
ini_set("display_errors", "1");
Medlem sedan aug. 20039 inlägg
#3

nu tog jag bort html tagarna och då funka det. Varför är det så?

Medlem sedan aug. 20002 975 inlägg
#4

Har du HTML-kod (gäller även tomrad eller mellanslag), så skickas en header ut från filen att den är av typen HTML, och ska därför visas som text körd genom HTML-tolken.

Har man väl skickat en header genom att göra en output från skriptet, så går det inte att skicka nya headers.

Du visar senare bilden i en img-tagg:

<img src="bild.php">

Det finns därför ingen som helst anledning till att ha någon HTML-kod, eftersom HTML-kod ingår inte i bildinformationen.

Medlem sedan aug. 20039 inlägg
#5

hur ska jag då bära mig åt om jag vill bädda in scriptet i en sida?
ska jag lägga funktionerna överst på sidan eller?

Medlem sedan aug. 20002 975 inlägg
#6

Du bäddar inte in skriptet på en sida, lika lite som du öppnar en bildfil i notepad och klistrar in den kod du får fram i en HTML-sida.

Tänk så att du har ett skript som returnerar en bild, fast istället för bild.jpg så heter den bild.php.

Du hämtar den via en img-tagg.

Säg att du har dina bilder i katalogen images som ligger under den katalog där du har skriptet. I katalogen images har du en bild som heter bild.jpg.

Då kallar du på den med:

<img src="thumb.php?image=bild.php">

Sen har du skriptet thumb.php

<?php

$dir = 'images/';
$qual = 90;

if (!isset($_GET['image']) || !file_exists($dir.$_GET['image'])) {
  exit;
}

$img_src = imagecreatefromjpeg($dir.$_GET['image']);

// Gör thumbnail. Lägg resultatet i $img_dst

imagejpeg($img_dst, '', $qual);

imagedestroy($img_src);
imagedestroy($img_dst);

exit;

?>

Gör en sökning här på forumet så lär du hitta thumbnail-skript.
Sök på thumb*

Medlem sedan aug. 20039 inlägg
#7

ok, tack

136 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)