Ich hab jetzt die Sachen von mir und Hamlet gemerged, und sogar getestet ;-) (ich hab noch nie was mit Imagemodifikation gemacht)
Diese Datei musst speichern, in .php umbenennen und in den Ordner mit den zu bearbeitenden Bildern speichen.
Vorher musst Du noch folgendes ändern:
$ThumbPath = "thumbs"; // oder ein anderes existierendes Verzeichnis
Dieser Ordner muss in dem Ordner existieren, in dem die Bilder sind, sowie musst Du Schreibrecht haben.
CODE <?PHP
function read_dir($dir, $pos=0){
$handle = @opendir($dir);
while ($file = @readdir ($handle)) {
if (eregi("^.{1,2}$",$file)) {
continue;
}
if (is_dir($dir.$file)){
echo "DIR".$dir.$file."/<br>";
read_dir($dir.$file."/");
} else {
if (substr($file,-4) == '.jpg' || substr($file,-4) == '.gif' ) {
echo $file."<br>";
do_resize ($dir,$file);
}
}
}
@closedir($handle);
}
function do_resize($PicPath, $picture) {
// Hier musst Du den Ordnernamen eingeben, in welchem Ordner die Dateien gespeichert werden.
$ThumbPath = "thumbs"; // oder ein anderes existierendes Verzeichnis
$ThumbWidth = 150; // Breite der Thumbnails, Höhe wird dynamisch berechnet
// Thumbnail erzeugen ...
//$Size=getimagesize("$PicPath"."/"."$picture"); picpath hat trailing slash
$Size=getimagesize("$PicPath"."$picture");
$Width=$Size[0];
$Heigth=$Size[1];
$NewHeigth=intval($Heigth*$ThumbWidth/$Width);
// ... Für GIF-Bilder
if($Size[2]==1)
{
$OldPic=ImageCreateFromGIF("$PicPath"."/"."$picture");
$NewPic=imagecreatetruecolor($ThumbWidth, $NewHeigth);
ImageCopyResized($NewPic, $OldPic, 0, 0, 0, 0, $ThumbWidth, $NewHeigth, $Width, $Heigth);
if (function_exists(imagegif))
ImageGIF($NewPic, "$ThumbPath"."/"."$picture");
else
ImageJPEG($NewPic, "$ThumbPath"."/"."$picture");
}
// ... Für JPG-Bilder
if($Size[2]==2)
{
$OldPic=ImageCreateFromJPEG("$PicPath"."/"."$picture");
$NewPic=imagecreatetruecolor($ThumbWidth, $NewHeigth);
ImageCopyResized($NewPic, $OldPic, 0, 0, 0, 0, $ThumbWidth, $NewHeigth, $Width, $Heigth);
ImageJPEG($NewPic, "$ThumbPath"."/"."$picture");
}
}
read_dir("./");
?>
Die Url von Hamlet (nice joint btw ;-) ist
http://www.intercom2000.ch/ und meine steht in der Adresszeile deines Browsers.
PS Ich hab die Funktion Imagegif nicht aktiv, also hab ich einen kleinen Workaround beschissen. Mir ist zwar nicht klar, was der Unterschied ist (Hamlet?) aber es funktioniert.