Thumb script

putzi

Gesperrt
Hallo!
PHP:
<?php
header ("Content-type: image/jpeg");

//Die aufzurufende Datei
$file = "5/big/001.JPG";

//Der Copyrighttext
$copy = "(c) OLDhouse";

//Position des Copyrighttextes
$textx = "0";
$texty = "110";

//Weite und Höhe des auszugebenden Bildes
$width  = 160;
$height = 120;

$scource     = imagecreatefromjpeg($file);
$destination = imagecreate($width, $height);

//Textfarbe
$white = imagecolorallocate($destination, 255, 255, 255);

imagecopyresized($destination, $scource, 0, 0, 0, 0, $width, $height, imagesx($scource), imagesy($scource));
imagestring($destination, 0, $textx, $texty, $copy, $white);

imagejpeg($destination);
imagedestroy($destination);
?>

ich habe diesen Code.

Ich möchte aber, dass es das neue Bild in einen Ordner speichert.

Kann mir wer erklären wie das funktioniert?


Danke
 
Das ist meine Funktion:

PHP:
function create_thumbs($PicPathIn, $PicPathOut, $destHeight, $dest_qual) {	
	$verz=opendir ($PicPathIn); 
	//Bild-Schleife 
	while ($bild = readdir ($verz)) {   
		if($bild != "." && $bild != ".."){
			$src_file = $PicPathIn.$bild;
			$dest_file = $PicPathOut."thb".substr($bild, 3, strlen($bild)-3);
			
			$imagetype = array( 1 => 'GIF', 2 => 'JPG', 3 => 'PNG', 4 => 'SWF', 5 => 'PSD', 6 => 'BMP', 7 => 'TIFF', 8 => 'TIFF', 9 => 'JPC', 10 => 'JP2', 11 => 'JPX', 12 => 'JB2', 13 => 'SWC', 14 => 'IFF');
			$imginfo = getimagesize($src_file);
			
			$imginfo[2] = $imagetype[$imginfo[2]];
		
			// height/width
			$srcWidth = $imginfo[0];
			$srcHeight = $imginfo[1];
			$destWidth = (int)($srcWidth*$destHeight/$srcHeight);
			
			if ($imginfo[2] == 'JPG')
				$src_img = imagecreatefromjpeg($src_file);
			else if ($imginfo[2] == 'PNG')
				$src_img = imagecreatefrompng($src_file);
				
			$dst_img = imagecreatetruecolor($destWidth, $destHeight);
			imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $destWidth, (int)$destHeight, $srcWidth, $srcHeight);
			imagejpeg($dst_img, $dest_file, $dest_qual);
			imagedestroy($src_img);
			imagedestroy($dst_img);
		}
	}
}

Dies macht aus einem ganzen Verzeichnis aus allen Bildern darin Thumbnails. Musst es halt ein bisschen abändern für dich ;)
 
Und was steht in den Variablen:
PHP:
$PicPathIn, $PicPathOut, $destHeight, $dest_qual

Stimmt das?

$PicPathIn = '5/big';
$PicPathOut = '5/thumb';
$destHeight = 120;
$dest_qual = 160;
 
Zuletzt bearbeitet:
PHP:
$PicPathIn = "/home/aquasonic/pics/"; // Wo die Bilder sind
$PicPathOut = "/home/aquasonic/thumbs"; // Wo die Thumbs hinsollen
$destHeight = 100; // Höhe des Thumbs
$dest_qual = 80; // Qualität der Thumbs in Prozent

Beispielsweise.
 
PHP:
<?php

$PicPathIn = "/5/big/"; // Wo die Bilder sind
$PicPathOut = "/5/thumb"; // Wo die Thumbs hinsollen
$destHeight = 100; // Höhe des Thumbs
$dest_qual = 80; // Qualität der Thumbs in Prozent  


function create_thumbs($PicPathIn, $PicPathOut, $destHeight, $dest_qual) {    
    $verz=opendir ($PicPathIn); 
    //Bild-Schleife 
    while ($bild = readdir ($verz)) {   
        if($bild != "." && $bild != ".."){
            $src_file = $PicPathIn.$bild;
            $dest_file = $PicPathOut."thb".substr($bild, 3, strlen($bild)-3);
            
            $imagetype = array( 1 => 'GIF', 2 => 'JPG', 3 => 'PNG', 4 => 'SWF', 5 => 'PSD', 6 => 'BMP', 7 => 'TIFF', 8 => 'TIFF', 9 => 'JPC', 10 => 'JP2', 11 => 'JPX', 12 => 'JB2', 13 => 'SWC', 14 => 'IFF');
            $imginfo = getimagesize($src_file);
            
            $imginfo[2] = $imagetype[$imginfo[2]];
        
            // height/width
            $srcWidth = $imginfo[0];
            $srcHeight = $imginfo[1];
            $destWidth = (int)($srcWidth*$destHeight/$srcHeight);
            
            if ($imginfo[2] == 'JPG')
                $src_img = imagecreatefromjpeg($src_file);
            else if ($imginfo[2] == 'PNG')
                $src_img = imagecreatefrompng($src_file);
                
            $dst_img = imagecreatetruecolor($destWidth, $destHeight);
            imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $destWidth, (int)$destHeight, $srcWidth, $srcHeight);
            imagejpeg($dst_img, $dest_file, $dest_qual);
            imagedestroy($src_img);
            imagedestroy($dst_img);
        }
    }
}  

?>

Danke für deine Hilfe, aber leider wird mir keine Fehlermeldung ausgegeben, und die thumbs werden auch nciht erstellt.

Was kann da falsch sein?

Das script liegt im Ordner bilder.

Im Ordner bilder ist dann ein Ordner mit dem namen '5' in dem wieder ein ordner mit 'big' und 'thumb' ist.
 
Blöde Frage, aber hast du die Funktion auch aufgerufen?

PHP:
create_thumbs($PicPathIn, $PicPathOut, $destHeight, $dest_qual);
 
Ahh, danke, hatte ich vergessen *rotwerd*

PHP:
Warning: Missing argument 1 for create_thumbs() in C:\server\xampp\htdocs\uttx\old_house\bilder\thumb.php on line 9

Warning: Missing argument 2 for create_thumbs() in C:\server\xampp\htdocs\uttx\old_house\bilder\thumb.php on line 9

Warning: Missing argument 3 for create_thumbs() in C:\server\xampp\htdocs\uttx\old_house\bilder\thumb.php on line 9

Warning: Missing argument 4 for create_thumbs() in C:\server\xampp\htdocs\uttx\old_house\bilder\thumb.php on line 9

Warning: readdir(): supplied argument is not a valid Directory resource in C:\server\xampp\htdocs\uttx\old_house\bilder\thumb.php on line 12
 
Und mach mal bei $PicPathOut noch ein / am Schluss...

Zudem sind deine Pfade absolut. Wenn du das nicht so willst, dann nimm das / zuvorderst weg von PathOut und PathIn.
 
putzi hat gesagt.:
Ahh, danke, hatte ich vergessen *rotwerd*

PHP:
Warning: Missing argument 1 for create_thumbs() in C:\server\xampp\htdocs\uttx\old_house\bilder\thumb.php on line 9

Warning: Missing argument 2 for create_thumbs() in C:\server\xampp\htdocs\uttx\old_house\bilder\thumb.php on line 9

Warning: Missing argument 3 for create_thumbs() in C:\server\xampp\htdocs\uttx\old_house\bilder\thumb.php on line 9

Warning: Missing argument 4 for create_thumbs() in C:\server\xampp\htdocs\uttx\old_house\bilder\thumb.php on line 9

Warning: readdir(): supplied argument is not a valid Directory resource in C:\server\xampp\htdocs\uttx\old_house\bilder\thumb.php on line 12

Und wo hast du den Funktionsaufruf gemacht? Also die rufst die Funktion nicht richtig auf und deine Directorys werden auch falsch sein, jedenfalls so wie sie oben sind ;)
 
Zurück