snoopy1972fc
Grünschnabel
Hallo,
habe hier ein kleines Script geladen:
Den FS- Thumbnailer v. 1.1
Das was ich vor hatte funktioniert damit bestens.
Leider habe ich das Problem, das das Script kleinere Originalbilder als die eingestellten Werte der Thumbs vergrössern. Habe schon ein paar Dinge versucht und den Support angeschrieben. Leider ohne Erfolg.
Kann mir jemand helfen?
Hier der Scriptausschnitt:
habe hier ein kleines Script geladen:
Den FS- Thumbnailer v. 1.1
Das was ich vor hatte funktioniert damit bestens.
Leider habe ich das Problem, das das Script kleinere Originalbilder als die eingestellten Werte der Thumbs vergrössern. Habe schon ein paar Dinge versucht und den Support angeschrieben. Leider ohne Erfolg.
Kann mir jemand helfen?
Hier der Scriptausschnitt:
PHP:
<?php
class Thumbnailer {
######### Eigenschaften der Klasse/des Objekts
var $autocreate = true; // soll das verkleinern der Bilder direkt beginnen? wenn ja, müssen die Eigenschaften korrekte Werte erhalten!!
var $single_mode = false; // sollen nur einige Bilder oder alle Bilder im Ordner verkleinert werden?
var $image_list = array(); // falls $single_mode = true, dann müssen hier die Bilder reingeschrieben werden, die verkleinert werden sollen
var $ersetzen = false; // soll, wenn ein Bild bereits vorhanden ist, dieses ersetzt werden?
var $image_ext = array("gif","jpg","jpeg","png","wbmp"); // unterstütze Bildformate. nicht erweitern!
var $image_dir = "./original/"; // die Original Bilder
var $thumb_dir = "./thumb/"; // Ordner in dem die modifizierten Bilder gespeichert werden
var $thumb_w = 300;//110; // Breite (width) der modifizierten Bilder
var $thumb_h = 350;//110; // Höhe (height) der modifizierten Bilder
######### Methoden der Klasse/des Objekts
##### gibt alle Bilder mit den korrekten Endungen in einem Array zurück
function list_all_images() {
$files = array();
$dir_handle = opendir($this->image_dir);
while ($file = readdir($dir_handle)) {
if ($file != "." && $file != ".." && !is_dir($this->image_dir.$file)) {
$tmp_file = explode(".",$file);
$i = 0;
while ($i < count($this->image_ext)) {
if ($this->image_ext[$i] == strtolower($tmp_file[count($tmp_file)-1])) {
$files[] = $file;
}
$i++;
}
}
}
closedir($dir_handle);
return $files;
}
##### Erstellt ein Thumbnail
function create_thumb($filename) {
$file = $this->image_dir.$filename;
if ($this->ersetzen || !file_exists($this->thumb_dir.$filename)) {
#### Bild- Datei und -Endung
$tmp_file = explode(".",$file);
$ext = strtolower($tmp_file[count($tmp_file)-1]);
#### Bild aus Datei erstellen; Bildtypen müssen unterschieden werden
if ($ext == "jpg" || $ext == "jpeg") {
$img = imagecreatefromjpeg($file);
} elseif ($ext == "gif") {
$img = imagecreatefromgif($file);
} elseif ($ext == "png") {
$img = imagecreatefrompng($file);
} elseif ($ext == "wbmp") {
$img = imagecreatefromwbmp($file);
} else {
return false;
}
#### Größen ablesen
$old_w = imagesx($img);
$old_h = imagesy($img);
#### neue Größen bestimmen
if ($old_w > $old_h) {
$thumb_w = $this->thumb_w;
$thumb_h = $old_h*($this->thumb_w/$old_w);
}
if ($old_w < $old_h) {
$thumb_w = $old_w*($this->thumb_h/$old_h);
$thumb_h = $this->thumb_h;
}
if ($old_w == $old_h) {
$thumb_w = $this->thumb_w;
$thumb_h = $this->thumb_h;
}
#### Bild erzeugen in korrekter Größe
$new_img = @imagecreatetruecolor($thumb_w,$thumb_h);
if (!$new_img) {
$new_img = imagecreate($thumb_w,$thumb_h);
imagecopyresized($new_img,$img,0,0,0,0,$thumb_w,$thumb_h,$old_w,$old_h);
} else {
imagecopyresampled($new_img,$img,0,0,0,0,$thumb_w,$thumb_h,$old_w,$old_h);
}
#### Bild speichern; Bildtypen müssen unterschieden werden
if ($ext == "jpg" || $ext == "jpeg") {
imagejpeg($new_img,$this->thumb_dir.$filename);
} elseif ($ext == "gif") {
imagegif($new_img,$this->thumb_dir.$filename);
} elseif ($ext == "png") {
imagepng($new_img,$this->thumb_dir.$filename);
} elseif ($ext == "wbmp") {
imagewbmp($new_img,$this->thumb_dir.$filename);
} else {
return false;
}
#### Cache leeren
imagedestroy($new_img);
imagedestroy($img);
return true;
} else {
return false;
}
}
##### Lässt Thumbnails anhand der Bilder im Ordner erzeugen
function create_thumbs() {
if ($this->single_mode) {
$files = $this->image_list;
} else {
$files = $this->list_all_images();
}
$i = 0;
while ($i < count($files)) {
$this->create_thumb($files[$i]);
$i++;
}
return true;
}
##### Konstruktor für die Klasse (wird nur ausgeführt, wenn die Klasse sofort starten soll)
function Thumbnailer() {
if ($this->autocreate) {
$this->create_thumbs();
}
}
######### Ende der Klasse/des Objekts
}
#########
## EOF ##
#########
?>