Hallo zusammen,
ich habe ein Skript das Bilder in ein Ordner hochlädt. Nun hab ich das soweit modifiziert das die Bilder auch in einen zweiten Ordner kopiert werden und dabei groß skaliert werden. Ich denke alles richtig gemacht zu haben, jedoch werden die Fotos nicht in den Ordner fotos_gross hochgeladen.
Hab die ganze Nacht daran gearbeitet, ich hoffe mir kann jemand dabei helfen.
Die Funktion optimize_dimension:
ich habe ein Skript das Bilder in ein Ordner hochlädt. Nun hab ich das soweit modifiziert das die Bilder auch in einen zweiten Ordner kopiert werden und dabei groß skaliert werden. Ich denke alles richtig gemacht zu haben, jedoch werden die Fotos nicht in den Ordner fotos_gross hochgeladen.
Hab die ganze Nacht daran gearbeitet, ich hoffe mir kann jemand dabei helfen.
PHP:
if (isset($file))
{
//(Übergabe(Post),Zielverzeihnis,Name der Datei, Breite, Höche,BildQuallität,Wasserzeichen ja/nein,Wasserzeichen-Transparent)
if(picupload("file","fotos",$zufall."_".$datumzeit,240,320,100,1,100)){
mysql_query("INSERT INTO foto (user_id, name,status, datum) VALUES ('$user_id','".$zufall."_".$datumzeit.".jpg','0', '$datum')");
$dst_image = imagecreatetruecolor(240,320);
$src_image = imagecreatefromjpeg('/fotos/'.$zufall."_".$datumzeit.'.jpg');
imagecopyresized ($dst_image, $src_image, 0, 0, 100, 120, 100, 100, 400, 400);
$source = 'fotos/'.$zufall."_".$datumzeit.'.jpg';
$destination = 'fotos_gross/'.$zufall."_".$datumzeit.'.jpg';
include( "optimize_dimension.php" );
optimize_dimension($source,740, 840,$destination);
}
else echo "Wurde nicht hochgeladen";
}
?>
Die Funktion optimize_dimension:
PHP:
<?php
/*
-------------------------------------------------------------------
## ###
### #####
### ### scripted by:
### ###
### ### #### ### ## ######
### ## # ### # ####
#### ### #### ### ## ###
#### ## ### ### ### ##
#### ### # ## ### ##
### ##### ### ### ##
#
-------------------------------------------------------------------
Danke an Wolfgang Arnberger (http://www.php-center.de/beitraege/detail.php?a_id=34)
für's Beispielscript.
Die Funktion skalliert ein bestehendes Bild ( JPEG, PNG, GIF ) auf die angegebenen
Maximalgrößen ohne die Proportionen zu verlieren. Das alte Bild wird überschrieben.
*/
function optimize_dimension( $path, $mWidth, $mHeight, $path2 = null )
{
// übprüfen ob die angegebene datei exisitiert
if( !file_exists( $path ) ) { return false; }
// bildinformation holen
try { $size = getimagesize( $path ); }
catch (Exception $e) { return false; }
$width = $size[0];
$height = $size[1];
// banal wegen try, aber sicher ist sicher
if( $width < 1 || $height < 1 ) { return false; }
// prüfen ob bild jpeg, png, oder gif ist
if( $size[2] < 1 || $size[2] > 3 ) { return false; }
// bildgrößer überprüfen, zu kleine bilder werden nicht verarbeitet
if( ( $width - $mWidth < 0 ) && ( $height - $mHeight < 0 ) ) { return false; }
// resize faktor bestimmen
$resize_factor_h = $mHeight / $height;
$resize_factor_w = $mWidth / $width;
if( $resize_factor_h > $resize_factor_w ) { $resize_factor = $resize_factor_w; } else { $resize_factor = $resize_factor_h; }
$nWidth = intval( $width * $resize_factor );
$nHeight = intval( $height * $resize_factor );
//$n_image = ImageCreate( $nWidth, $nHeight );
$n_image = imagecreatetruecolor( $nWidth, $nHeight );
// buffer erstellen
switch( $size[2] )
{
case 1: // GIF
$c_image = ImageCreateFromGIF( $path );
break;
case 2: // JPG
$c_image=ImageCreateFromJPEG( $path );
break;
case 3: // PNG
$c_image=ImageCreateFromPNG( $path );
break;
default:
return false;
}
// skalieren
//ImageCopyResized( $n_image, $c_image, 0, 0, 0, 0, $nWidth, $nHeight, $width, $height );
ImageCopyResampled( $n_image, $c_image, 0, 0, 0, 0, $nWidth, $nHeight, $width, $height );
// speicherort festlegen
if( $path2 != null ) { $path = $path2; }
// vom buffer zur richtigen datei
switch( $size[2] )
{
case 1: // GIF
ImageGIF( $n_image, $path, 100 );
break;
case 2: // JPG
ImageJPEG( $n_image, $path, 100 );
break;
case 3: // PNG
ImagePNG( $n_image, $path, 100 );
break;
default:
return false;
}
return true;
}
?>