http://www.webmaster-resource.de/tricks/php/thumbnails-dynamisch-erstellen.php
Mit Hilfe von PHP lassen sich kleine Vorschaubilder (sog. Thumbnails) von Grafiken automatisch erstellen.
Unter dem folgenden Script finden Sie ein paar Erläuterungen zu den unterschiedlichen Schritten bis zum erstellten Thumbnail:
Quellcode
1.
<?php
2.
3.
$Grafikdatei = "image.jpg";
4.
5.
$Bilddaten = getimagesize($Grafikdatei);
6.
7.
$OriginalBreite = $Bilddaten[0];
8.
$OriginalHoehe = $Bilddaten[1];
9.
$ThumbnailBreite = 128;
10.
11.
if($OriginalBreite < $ThumbnailBreite)
12.
{
13.
$ThumbnailBreite=$OriginalBreite;
14.
}
15.
16.
$Skalier
ungsfaktor = $OriginalBreite/$ThumbnailBreite;
17.
$ThumbnailHoehe = intval($OriginalHoehe/$Skalierungsfaktor);
18.
19.
if($Bilddaten[2] == 1)
20.
{
21.
$Originalgrafik = ImageCreateFromGIF($Grafikdatei);
22.
$Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
23.
ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
24.
ImageGIF($Thumbnailgrafik, "thumb_".$Grafikdatei);
25.
}
26.
elseif($Bilddaten[2] == 2)
27.
{
28.
$Originalgrafik = ImageCreateFromJPEG($Grafikdatei);
29.
$Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
30.
ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
31.
ImageJPEG($Thumbnailgrafik, "thumb_".$Grafikdatei);
32.
}
33.
elseif($Bilddaten[2] == 3)
34.
{
35.
$Originalgrafik = ImageCreateFromPNG($Grafikdatei);
36.
$Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
37.
ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
38.
ImagePNG($Thumbnailgrafik, "thumb_".$Grafikdatei);
39.
}
40.
41.
echo"<img src=\"thumb_",
42.
$Grafikdatei,
43.
"\">";
44.
45.
?>
Zuerst wird eine Angabe zum Namen der Originaldatei gemacht und die unterschiedlichen Bilddaten (siehe dazu den Artikel Bilddaten ermitteln). Anschließend wird die Breite und Höhe des Thumbnails festgelegt. Im nächsten Schritt wird in den drei Bedingungen unterschieden, ob es sich um eine GIF (1), JPG (2) oder PNG (3) Grafik handelt und die Originalgrafik wird jeweils mit der Funktion ImageCreateFromGIF/JPEG/PNG(...) eingelesen. Danach wird eine neue Grafik ($Thumbnailgrafik) mit der Breite und Höhe des Thumbnails generiert und die Funktion ImageCopyResized(...) kopiert das Originalbild verkleinert in das neue Thumbnailbild. Anschließend wird die Thumbnailgrafik mit dem Präfix thumb_ abgespeichert und am Ende ausgegeben. |