PHP-Fehler #8192: Function utf8_encode() is deprecated;
Datei: /home/floernco/public_html/webscriptingData/inc/prime.php;
Zeile: 65
PHP-Fehler #8192: Function utf8_decode() is deprecated;
Datei: /home/floernco/public_html/webscriptingData/inc/functions.php;
Zeile: 294
PHP-Fehler #8192: Function utf8_decode() is deprecated;
Datei: /home/floernco/public_html/webscriptingData/inc/functions.php;
Zeile: 338
PHP-Fehler #8192: Function utf8_decode() is deprecated;
Datei: /home/floernco/public_html/webscriptingData/inc/functions.php;
Zeile: 338
PHP-Fehler #8192: Function utf8_decode() is deprecated;
Datei: /home/floernco/public_html/webscriptingData/inc/functions.php;
Zeile: 338
PHP-Fehler #8192: Function utf8_decode() is deprecated;
Datei: /home/floernco/public_html/webscriptingData/inc/functions.php;
Zeile: 338
PHP-Fehler #8192: Function utf8_decode() is deprecated;
Datei: /home/floernco/public_html/webscriptingData/inc/functions.php;
Zeile: 338
PHP-Fehler #8192: Function utf8_decode() is deprecated;
Datei: /home/floernco/public_html/webscriptingData/inc/functions.php;
Zeile: 338
PHP-Fehler #8192: Function utf8_decode() is deprecated;
Datei: /home/floernco/public_html/webscriptingData/inc/functions.php;
Zeile: 338
PHP-Fehler #8192: Function utf8_decode() is deprecated;
Datei: /home/floernco/public_html/webscriptingData/inc/functions.php;
Zeile: 338
PHP-Fehler #8192: Function utf8_decode() is deprecated;
Datei: /home/floernco/public_html/webscriptingData/inc/functions.php;
Zeile: 338
PHP-Fehler #8192: Function utf8_decode() is deprecated;
Datei: /home/floernco/public_html/webscriptingData/inc/functions.php;
Zeile: 338
PHP-Fehler #8192: Function utf8_decode() is deprecated;
Datei: /home/floernco/public_html/webscriptingData/inc/functions.php;
Zeile: 338
PHP-Fehler #8192: Function utf8_decode() is deprecated;
Datei: /home/floernco/public_html/webscriptingData/inc/functions.php;
Zeile: 338
PHP-Fehler #8192: Function utf8_decode() is deprecated;
Datei: /home/floernco/public_html/webscriptingData/inc/functions.php;
Zeile: 296
PHP-Fehler #8192: Function utf8_encode() is deprecated;
Datei: /home/floernco/public_html/webscriptingData/inc/functions.php;
Zeile: 297
Thumbnail-Generator .· PHP, Bildbearbeitung .· Webscripting .· floern.com

Thumbnail-Generator

September 2009

Mit diesem Script wird ein Bild so verkleinert, damit es die angegebene maximale Breite bzw. Höhe nicht überschreitet. Dabei wird das Seitenverhältnis beibehalten.
Dazu ruft man per <img>-Tag die PHP-Datei imgThumb.php auf und übergibt dieser via Get-Variablen die maximale Breite w, die maximale Höhe h sowie der Pfad u zur Bilddatei relativ zur PHP-Datei oder absolut.
Die Transparenz bei PNG-Bildern wird beim Thumbnail beibehalten.

Angenommen, folgende PHP-Datei heisst thumbnail.php.
<?php
$bpfad 
= $_GET['u']; // Pfad/URL zum Bild
$breite = (int)$_GET['w']; // maximale Breite des Thumbnails
$hoehe = (int)$_GET['h']; // maximale Höhe des Thumbnails

$png = false; // ob Transparenz vorhanden sein könnte

$size = getimagesize($bpfad);
$verha = $size[0]/$size[1]; // Seitenverhältnis des Originals
$verhn = $breite/$hoehe; // Seitenverhältnis des grösstmöglichen Thumbnails
// wenn das Original kleiner als das Thumbnail ist
if($size[0]<=$breite & $size[1]<=$hoehe)
  
header('Location: '.$bpfad) and exit();
// wenn das Original breiter als das Thumbnail ist
elseif($verhn<$verha)
  
$nh = floor($breite*$size[1]/$size[0]) and $nb = ceil($nh*$verha);
// wenn das Original höher als das Thumbnail ist
else
  
$nb = floor($hoehe*$size[0]/$size[1]) and $nh = ceil($nb/$verha);

// Dateiendung erkennen
$datend = strtolower(substr(strrchr($bpfad,'.'),1));
switch(
$datend){
  
// originales Bild laden
  
case 'png': $bild = imagecreatefrompng($bpfad); $png = true; break;
  case 
'gif': $bild = imagecreatefromgif($bpfad); $png = true; break;
  case 
'jpg': case 'jpeg': $bild = imagecreatefromjpeg($bpfad); break;
  default: 
header('Location: '.$bpfad); exit();
}

// leeres Thumbnail generieren
$thumb = imagecreatetruecolor($nb, $nh);

// Transparenz beibehalten
imagealphablending($thumb, false);

// originales Bild in das Thumbnail verkleinern,
// wobei das Seitenverhältnis des Originals beibehalten wird
imagecopyresized($thumb, $bild, 0, 0, 0, 0, $nb, $nh, $size[0], $size[1]);

imagedestroy($bild);

// Bild ausgeben
if($png){
  
header('Content-type: image/png');
  
imagepng($thumb);
}else{
  
header('Content-type: image/jpeg');
  
imagejpeg($thumb, '', 80);
}

imagedestroy($thumb);
?>

... dann wird mit folgendem HTML ein Thumbnail der Grafik photo.jpg von example.com generiert, das maximal 50 auf 50 Pixel gross ist.
<img src="thumbnail.php?w=50&amp;h=50&amp;u=http://example.com/photo.jpg" alt="" />
Siehe auch:
 


Andere Einträge


Kommentare

#1
von lutz am 16.04.2010
Fehlt unten bei der Bildausgabe nicht auch eine Abfrage auf GIF-Dateien bzw. die entsprechende Funktion dafür imagegif()?

MfG,
Lutz

#2
von Domo am 03.07.2013
@Lutz
nein die letzte Abfrage ist nur für die Transparenz zuständig.

Wenn $png = true soll ein transparentes Bild erstellt werden, also ein PNG
wenn $png = false wird nur ein jpeg erzeugt.

#3
von Jakob Rohländer am 09.06.2014
Gut, aber ich würde das gesamte Script noch gegen Angriffe absichern.