Man sollte auch mal die Suchfunktion bemühen
http://www.traum-projekt.com/forum/1...ght=php+resize
http://www.traum-projekt.com/forum/1...+wasserzeichen
Hallo,
ich hab mal eine kleine Frage die viele von euch bestimmt schnell beantworten können. Also bei meinem Script wird ein Bild ($_FILES['file']) hochgeladen und danach soll es auf 120x300 px verkleinert/vergrößert werden. Wie macht dann das? Am besten eine kleine und einfache lösung.
Und wenn ich schonmal dabei bin, gibt es eine Möglichkeit ein Wasserzeichen uaf die Bilder zu machen?
Danke schonmal für die Antworten!
MFG
Man sollte auch mal die Suchfunktion bemühen
http://www.traum-projekt.com/forum/1...ght=php+resize
http://www.traum-projekt.com/forum/1...+wasserzeichen
Hatte mal nen Script zum Upload mit auto Erzeugung eines Thumbnails, kannst dir ja zerpflücken.
http://www.traum-projekt.com/forum/5...beitrag11.html
vielen Dank für eure Hilfe nur irgendwie komme ich einfach nicht weiter. Könnte mir evtl. jemand den Code mal posten? Das wäre echt nett von euch. Also was ich zur Zeit habe:
- Bild ist hochgeladen und gespeichert
Was jetzt noch zutun ist:
- Bild direkt nach upload auf eine feste Breite von 320px und eine dementsprechende variable Höhe skalieren.
Das mit dem Wasserzeichen ist erstmal nicht sooo wichtig.
MFG
In #3 habe ich dir zwar ein Script gepostet, jedoch fiel mir auf, dass das noch eine Version mit fehlern war.
Hier dann mal die aktuelle Version.
Das Script läd einmal das Org hoch und erzeugt ein Thumbnail, wobei man die längste Seite für Hoch- Querformat separat angeben kann.
Optional kann man dem THumbnail auch noch einen Rahmen geben, so das immer ein quadratisches Bild erzeugt wird.
Die Kommentare sollten aber alles erklären.
PHP-Code:<?
// Funktionsablauf Fotoupload
function uploader($fotofile,$fotofile_name){
//*******************************************
// Bitte hier die Einstellungen vornehmen
//*******************************************
// Rahmen setzen? true = ja || false = nein
$rahmen_aktiv = false;
// Angabe der Rahmendicke in px (an der längsten Kante)
$rahmen = '10';
// Angebae der Rahmenfarbe (in RGB-Werten!!)
$farbe_r = '128';
$farbe_g = '0';
$farbe_b = '0';
// Angaben der Thumbnailgrößen in px
// Querformat:
$thumb_max_x = '120';
// Hochformat:
$thumb_max_y = '120';
// Zielordner. Wenn hier nichts angegene ist, dann ist der Speicherort des Scriptes der Zielordner.
// Können auch identisch sein, da die Dateinamen eh einen entsprechenden Zusatz erhalten!
// Zielordner für die Originalfotos (Ordner muss CHMOD 666 haben !!)
$zielorg = "bilder/";
// Zielordner für die Thumbnails (Ordner muss CHMOD 666 haben !!)
$zielthm = "bilder/thm/";
//*******************************************
// ENDE DER EDITIERUNG
//*******************************************
// Angabe Dateiendung
$datei_ende = ".jpg";
// Org.-Foto speichern
$zielorg .= substr($fotofile_name,0,strrpos($fotofile_name,"."))."_org" . $datei_ende;
if(file_exists($zielorg)){
return $upload_log = "Die Datei $fotofile_name exsitiert schon auf dem Server!";
}
if(!move_uploaded_file($fotofile, $zielorg)){
return $upload_log = "Ein Fehler beim Kopieren der Datei $fotofile_name ist aufgetreten!";
}
// Angaben für das Thumbnail
$zielthm .= substr($fotofile_name,0,strrpos($fotofile_name,"."))."_thm" . $datei_ende;
$large_img = $zielorg;
$large_img = ImageCreateFromJPEG($large_img);
$size = getimagesize($zielorg);
$width_max = $size[0];
$height_max = $size[1];
$test_max = $width_max/$height_max;
if($test_max > 1){
if($width_max > $thumb_max_x){
$width_max = $thumb_max_x;
$height_max = $thumb_max_x / $test_max;
$rahmen_aktiv== true ? $image_max = imagecreatetruecolor($width_max+($rahmen*2),$width_max+($rahmen*2)) :$image_max = imagecreatetruecolor($width_max,$height_max);
$rand1 = $rahmen;
$rand2 = (($width_max+($rahmen*2))/2)-($height_max/2);
}
}else{
if($height_max > $thumb_max_y){
$height_max = $thumb_max_y;
$width_max = $thumb_max_y * $test_max;
$rahmen_aktiv== true ? $image_max = imagecreatetruecolor($height_max+($rahmen*2),$height_max+($rahmen*2)) : $image_max = imagecreatetruecolor($width_max,$height_max);
$rand1 = (($height_max+($rahmen*2))/2)-($width_max/2);
$rand2 = $rahmen;
}
}
$bsrc = imagesx($large_img);
$hsrc = imagesy($large_img);
if($rahmen_aktiv == true){
$farbe1 = imagecolorallocate($image_max,$farbe_r,$farbe_g,$farbe_b);
imagefilltoborder($image_max,0,0,$farbe1,$farbe1);
}
$rahmen_aktiv== true ? ImageCopyResized($image_max,$large_img,$rand1,$rand2,0,0,$width_max,$height_max,$bsrc,$hsrc) : ImageCopyResized($image_max,$large_img,0,0,0,0,$width_max,$height_max,$bsrc,$hsrc);
ImageJPEG($image_max,$zielthm,100);
return $upload_log = "Der Upload der Datei $fotofile_name ist erfolgreich abgeschlossen worden!";
}
if(!$_GET['action']){
?>
<form name="formular" enctype="multipart/form-data" action="<?=$_SERVER[PHP_SELF];?>?action=upload"" method="post">
Neues Foto hochladen: <input name="foto" type="file" size="50"><input name="Submit" type="submit" value="eintragen">
</form>
<?
}
if($_GET['action']==upload){
// So wird die Upload-Funktion aufgerufen. Die Var. kommen über POST vom Formular
$upload = uploader($_FILES['foto']['tmp_name'],$_FILES['foto']['name']);
echo $upload."<br><a href=\"".$_SERVER['PHP_SELF']."\">zurück</a>";
}
?>
Geändert von webcreate (15.06.2006 um 15:54 Uhr)
hmmm... also vielen Dank für die Bemühungen aber ich komme damit überhaupt nicht klar. Ich muss dazu sagen, es ist das erste Mal, dass ich mit Grafiken arbeite!
Das Script von dir ist sehr gut, allerdings kann ich damit nicht viel anfangen. Das mit dem Rahmen ect. brauch ich wirklich nicht. Ich möchte nur, dass mein Foto das in "images/fotos/" liegt auf 320px und auf eine variable Höhe angepasst wird. Das neue Bild kann bzw. soll sogar den gleichen Dateinamen haben wie das Originale, weil ich das Originale sowieso nicht mehr brauche nach dem Upload. Kann mir evtl. einer direkt auf mein Problem einen zugeschnittenden Code posten oder zumindest sagen was ich machen muss?
Vielen Dank!
Also du hast da ein Script, wo alles drin ist, wenn du nun auf www.php.net die Befehle betrachtest, die du nicht kennst, solltest du das hinbekommen.
Wir helfen gerne, sind aber kein: Mach mal bitte eben Forum.
Hallo,
ich habe mich nochmal durch dein Script durchgekämpft. Ich habe es jetzt hinbekommen nur leider gibt es einen Fehler! Und zwar wenn das Bild kleiner ist als meine $thumb_max_x = '320'; und $thumb_max_y = '320'; Werte, dann wird das Bild einfach nicht bearbeitet und er sagt, dass es keine richtige Bildquelle ist. Ist das normal so?
Hier sind die Fehler:
Wobei ab Zeile 86 nicht mehr zu dem Script gehören sondern dort dies mit dem Wasserzeichen ist. Allerdings kann es daran nicht liegen, denn dies macht er bei größeren Bildern.Code:Warning: imagecopyresampled(): supplied argument is not a valid Image resource in C:\Programme\xampp\htdocs\paidflirt\functions.php on line 82 Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\Programme\xampp\htdocs\paidflirt\functions.php on line 83 Warning: imagecreatefromjpeg(images/fotos/CinimoD_1606_thm.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\Programme\xampp\htdocs\paidflirt\functions.php on line 86 Warning: imagesx(): supplied argument is not a valid Image resource in C:\Programme\xampp\htdocs\paidflirt\functions.php on line 88 Warning: imagesy(): supplied argument is not a valid Image resource in C:\Programme\xampp\htdocs\paidflirt\functions.php on line 89 Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in C:\Programme\xampp\htdocs\paidflirt\functions.php on line 90 Warning: imagecopy(): supplied argument is not a valid Image resource in C:\Programme\xampp\htdocs\paidflirt\functions.php on line 91 Warning: imagecopy(): supplied argument is not a valid Image resource in C:\Programme\xampp\htdocs\paidflirt\functions.php on line 92
Ich hoffe du kannst du mir helfen!
MFG
Ja, das ist normal, wenn man sich mal die if-Bedingungne genau anschaut, sollte einem auch auffallen, warum.
Ich habe dann einfach mal die if-Anweisungen verändert.
PHP-Code:<?
// Funktionsablauf Fotoupload
function uploader($fotofile,$fotofile_name){
//*******************************************
// Bitte hier die Einstellungen vornehmen
//*******************************************
// Rahmen setzen? true = ja || false = nein
$rahmen_aktiv = false;
// Angabe der Rahmendicke in px (an der längsten Kante)
$rahmen = '10';
// Angebae der Rahmenfarbe (in RGB-Werten!!)
$farbe_r = '128';
$farbe_g = '0';
$farbe_b = '0';
// Angaben der Thumbnailgrößen in px
// Querformat:
$thumb_max_x = '120';
// Hochformat:
$thumb_max_y = '120';
// Zielordner. Wenn hier nichts angegene ist, dann ist der Speicherort des Scriptes der Zielordner.
// Können auch identisch sein, da die Dateinamen eh einen entsprechenden Zusatz erhalten!
// Zielordner für die Originalfotos (Ordner muss CHMOD 666 haben !!)
$zielorg = "bilder/";
// Zielordner für die Thumbnails (Ordner muss CHMOD 666 haben !!)
$zielthm = "bilder/thm/";
//*******************************************
// ENDE DER EDITIERUNG
//*******************************************
// Angabe Dateiendung
$datei_ende = ".jpg";
// Org.-Foto speichern
$zielorg .= substr($fotofile_name,0,strrpos($fotofile_name,"."))."_org" . $datei_ende;
if(file_exists($zielorg)){
return $upload_log = "Die Datei $fotofile_name exsitiert schon auf dem Server!";
}
if(!move_uploaded_file($fotofile, $zielorg)){
return $upload_log = "Ein Fehler beim Kopieren der Datei $fotofile_name ist aufgetreten!";
}
// Angaben für das Thumbnail
$zielthm .= substr($fotofile_name,0,strrpos($fotofile_name,"."))."_thm" . $datei_ende;
$large_img = $zielorg;
$large_img = ImageCreateFromJPEG($large_img);
$size = getimagesize($zielorg);
$width_max = $size[0];
$height_max = $size[1];
$test_max = $width_max/$height_max;
if($test_max > 1){
if($width_max > $thumb_max_x){
$width_max = $thumb_max_x;
$height_max = $thumb_max_x / $test_max;
}
$rahmen_aktiv== true ? $image_max = imagecreatetruecolor($width_max+($rahmen*2),$width_max+($rahmen*2)) :$image_max = imagecreatetruecolor($width_max,$height_max);
$rand1 = $rahmen;
$rand2 = (($width_max+($rahmen*2))/2)-($height_max/2);
}else{
if($height_max > $thumb_max_y){
$height_max = $thumb_max_y;
$width_max = $thumb_max_y * $test_max;
}
$rahmen_aktiv== true ? $image_max = imagecreatetruecolor($height_max+($rahmen*2),$height_max+($rahmen*2)) : $image_max = imagecreatetruecolor($width_max,$height_max);
$rand1 = (($height_max+($rahmen*2))/2)-($width_max/2);
$rand2 = $rahmen;
}
$bsrc = imagesx($large_img);
$hsrc = imagesy($large_img);
if($rahmen_aktiv == true){
$farbe1 = imagecolorallocate($image_max,$farbe_r,$farbe_g,$farbe_b);
imagefilltoborder($image_max,0,0,$farbe1,$farbe1);
}
$rahmen_aktiv== true ? ImageCopyResized($image_max,$large_img,$rand1,$rand2,0,0,$width_max,$height_max,$bsrc,$hsrc) : ImageCopyResized($image_max,$large_img,0,0,0,0,$width_max,$height_max,$bsrc,$hsrc);
ImageJPEG($image_max,$zielthm,100);
return $upload_log = "Der Upload der Datei $fotofile_name ist erfolgreich abgeschlossen worden!";
}
if(!$_GET['action']){
?>
<form name="formular" enctype="multipart/form-data" action="<?=$_SERVER[PHP_SELF];?>?action=upload"" method="post">
Neues Foto hochladen: <input name="foto" type="file" size="50"><input name="Submit" type="submit" value="eintragen">
</form>
<?
}
if($_GET['action']==upload){
// So wird die Upload-Funktion aufgerufen. Die Var. kommen über POST vom Formular
$upload = uploader($_FILES['foto']['tmp_name'],$_FILES['foto']['name']);
echo $upload."<br><a href=\"".$_SERVER['PHP_SELF']."\">zurück</a>";
}
?>
ich danke dir viel mals!!! Es klappt jetzt alles wunderbar!
Hallo,
habe mir auch mal erlaubt ein wenig mit dem Script rumzuspielen - vielen Dank dafür, klappt wirklich prima.
Ich würde nun gerne noch dem "großen Bild" maximale Werte für Breite und Höhe mitgeben. Ist mein Denkansatz richtig das ich erstmal das Original auf den Server laden muss, dann das Bild eben noch wie das Thumbnail verkleinern muss, und am Schluß das Originalbild wieder vom Server lösche?
Ich probier noch ein bisschen rum, hoffe ich bekomme es hin, sonst würde ich vielleicht noch mal um Hilfe bitten.
Danke und Gruß
Schinny
Hi,
wollt nur kurz bescheid sagen, hat sich erledigt - habs genau so gemacht.
Danke und Gruß
Schinny
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)