Hallo Forum-Gemeinde
Ich programmiere gerade eine Liste um meine Games zu verwalten. Dabei soll ein Thumbnail der Covers gemacht werden auf die man klicken kann und das ganze dann in einem neuen Fenster in wahrer Grösse angezeigt wird.
Für die Thumbnail-Erstellunge benutze ich folgendes (schon fertige) Script (thumb.php):
Die Thumbnails kann ich dann wie folgt erstellen:
So weit so gut. Das ganze funktionier an und für sich auch, aber das Thumbnail wird nur in s/w und sehr schlechter Qualität angelegt (fast wie wenn ich es mit <img src="..." width="100">
Beispiel (thumbnail):
http://pascal007.homelinux.com/mygam...graw_cover.jpg
Beispiel (original):
http://pascal007.homelinux.com/mygam...graw_cover.jpg
Kann es sein dass es an meinem internen Server liegt?
Ich programmiere gerade eine Liste um meine Games zu verwalten. Dabei soll ein Thumbnail der Covers gemacht werden auf die man klicken kann und das ganze dann in einem neuen Fenster in wahrer Grösse angezeigt wird.
Für die Thumbnail-Erstellunge benutze ich folgendes (schon fertige) Script (thumb.php):
PHP-Code:
/*##############################################
# - Thumbnail-Script v1.3 - #
# Generating thumbnails 'on-the-fly' with PHP #
# #
# (c) by Christian Lamine, FlashDreams OHG #
# [url]http://www.flashdreams.de/[/url] #
# #
# This script may be freely used, distributed #
# and modified without any charge as long as #
# this copyright information is included. #
# #
# Any commercial selling of this script is #
# prohibited. #
# #
# The author is not responsible for possible #
# damage which may result from the application #
# of this script, neither direct nor indirect. #
# Use at your own risk! #
##############################################*/
error_reporting(0);
$types = array (1 => "gif", "jpeg", "png", "swf", "psd", "wbmp");
define ('cache', 'cache/');
$cachedir = substr($HTTP_GET_VARS['image'],0,strrpos($HTTP_GET_VARS['image'],'/') + 1).cache;
!is_dir ($cachedir)
? mkdir ($cachedir, 0777)
: system ("chmod 0777 ".$cachedir);
(!isset ($x) || ereg ('^[0-9]{1,}$', $x, $regs)) &&
(!isset ($y) || ereg ('^[0-9]{1,}$', $y, $regs)) &&
(isset ($x) || isset ($y))
? true
: DIE ('Fehlende(r) oder ungültige(r) Größenparameter!');
!isset ($resize) || !ereg ('^[0|1]$', $resize, $regs)
? $resize = 0
: $resize;
!isset ($aspectratio) || !ereg ('^[0|1]$', $aspectratio, $regs)
? isset ($x) && isset ($y)
? $aspectratio = 1
: $aspectratio = 0
: $aspectratio;
!isset ($image)
? DIE ('Es wurde kein Bild angegeben!')
: !file_exists($image)
? DIE ('Die angegebene Datei konnte nicht auf dem Server gefunden werden!')
: false;
$imagedata = getimagesize($image);
!$imagedata[2] || $imagedata[2] == 4 || $imagedata[2] == 5
? DIE ('Bei der angegebenen Datei handelt es sich nicht um ein Bild!')
: false;
eval ('
if (!(imagetypes() & IMG_'.strtoupper($types[$imagedata[2]]).')) {
DIE ("Das ".strtoupper($types[$imagedata[2]])."-Format wird nicht unterstützt!");
}
');
!isset ($x)
? $x = floor ($y * $imagedata[0] / $imagedata[1])
: $x;
!isset ($y)
? $y = floor ($x * $imagedata[1] / $imagedata[0])
: $y;
if ($aspectratio && isset ($HTTP_GET_VARS['x']) && isset ($HTTP_GET_VARS['y'])) {
if ($imagedata[0] > $imagedata[1]) {
$y = floor ($x * $imagedata[1] / $imagedata[0]);
} else if ($imagedata[1] > $imagedata[0]) {
$x = floor ($y * $imagedata[0] / $imagedata[1]);
}
}
$thumbfile = substr ($HTTP_GET_VARS['image'], strrpos ($HTTP_GET_VARS['image'], '/') + 1);
if (file_exists ($cachedir.$thumbfile)) {
$thumbdata = getimagesize ($cachedir.$thumbfile);
$thumbdata[0] == $x && $thumbdata[1] == $y
? $iscached = true
: $iscached = false;
} else {
$iscached = false;
}
if (!$iscached) {
($imagedata[0] > $x || $imagedata[1] > $y) ||
(($imagedata[0] < $x || $imagedata[1] < $y) && $resize)
? $makethumb = true
: $makethumb = false;
} else {
$makethumb = false;
}
Header ("Content-Type: image/".$types[$imagedata[2]]);
if ($makethumb) {
$image = call_user_func("imagecreatefrom".$types[$imagedata[2]], $image);
$thumb = imagecreate ($x, $y);
imagecopyresized ($thumb, $image, 0, 0, 0, 0, $x, $y, $imagedata[0], $imagedata[1]);
call_user_func("image".$types[$imagedata[2]], $thumb, $cachedir.$thumbfile);
imagedestroy ($image);
imagedestroy ($thumb);
$image = $cachedir.$thumbfile;
} else {
$iscached
? $image = $cachedir.$thumbfile
: $image = $HTTP_GET_VARS['image'];
}
$image = fopen ($image, "rb");
fpassthru ($image);
fclose ($image);
PHP-Code:
<img src=\"thumb.php?image=covers/test.jpg&x=100&resize=1\" class=\"coverdetails\">
Beispiel (thumbnail):
http://pascal007.homelinux.com/mygam...graw_cover.jpg
Beispiel (original):
http://pascal007.homelinux.com/mygam...graw_cover.jpg
Kann es sein dass es an meinem internen Server liegt?
PHP-Code:
GD Support enabled
GD Version bundled (2.0.28 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.1.7
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled
Kommentar