Bild verändern mit PHP

Dieses Thema Bild verändern mit PHP im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von Ciryx, 23. Sep. 2005.

Thema: Bild verändern mit PHP Hallo zusammen... Ich möchte folgendes Bewerckstelligen: User können über ein Upload formular ihr Bild...

  1. Hallo zusammen...

    Ich möchte folgendes Bewerckstelligen:

    User können über ein Upload formular ihr Bild hinaufladen... anschliessend wird das heraufgeladene Bild inklusive einem Bild von mir angezeigt. Mein bild sollte gleich unterhalb des heraufgeladenen Bildes erscheinen. Das angezeigte Bild soll aber nur ein Bild sein (also eine Datei). Kann mir jemand helfen bzw. ist das Problem gut beschrieben? :D
     
  2. Ähm, grübel, NÖ ;)

    Du möchtest aus 2 Bildern 1 machen, ist das so korrekt ???
     
  3. Könnte ungefähr so funktionieren:
    Code:
    <?php 
    function set_create($mime) {
    	switch ($mime) {
    		 case->image/jpeg' :
    			 return->imagecreatefromjpeg';
    			 break;
    		 case->image/png' :
    			 return->imagecreatefrompng';
    			 break;
    		 case->image/gif' :
    			 return->imagecreatefromgif';
    			 break;
    		 default:
    			 return FALSE;
    		}
    }
    $size_1 = GetImageSize (bild1.jpg);
    $create = set_create($size_1['mime']);
    $im_1 = $create(bild1.jpg);
    
    $size_2 = GetImageSize (bild2.gif);
    $create = set_create($size_2['mime']);
    $im_2 = imagecreatefromgif(bild2.gif);
    
    $hight_new = ($size_1[1]+$size_2[1]);
    $width_new = ($size_1[0] >= $size_2[0]) ? $size_1[0] : $size_2[0];
    
    $im = @imagecreatetruecolor($width_new, $hight_new)
       or die (Kann keinen neuen GD-Bild-Stream erzeugen);
    
    imagecopy($im, $im_1, 0, 0, 0, 0, $size_1[0], $size_1[1]);
    imagecopy($im, $im_2, 0, ($size_1[1]+1), 0, 0, $size_2[0], $size_2[1]);
    
    header (Content-type: image/png);
    imagepng($im);
    
    imagedestroy($im_1);
    imagedestroy($im_2);
    ?>
    
    Aber wirklich nur Uuuuuuuungefähr ;)

    Das Beispiel würde z.B. aus den folgenden 2 Bildern.

    Bild 1
    [​IMG]
    Bild 2
    [​IMG]

    folgendes erzeugen => http://wt-scriptarchiv.de/script_demos/imagecreate/

    Guckst du hier => PHP-Manual-Grafik-Funktionen
     
  4. Ok.. Danke Conny

    Nun zwei Probleme:

    1. bild1.jpg ist dieses, welches der User herauflädt also muss ich nach dem Uploaden den Dateinamen holen... wie stelle ich das an?

    2. Das Bild welches angefügt wird, ist immer das selbe... (hier im Beispil das Apache logo) Nun soll das aber zentriert unterhalb das heruafgeladenen Bildes erscheinen und der Hintergrund soll weiss sein (hier ist er schwarz)

    Danke für deine Mühe...
     
  5. Ähm, den bekommst du doch beim Upload des Bildes wenn du es verschiebst ( move_uploaded_file => http://de3.php.net/manual/de/function.move-uploaded-file.php ).

    OK, neue Version:
    Datei => get_image.php
    Code:
    <?php
    $bild_1 = $_REQUEST[bild]; // Das obere Bild
    $bild_2 = bild2.gif; // Das untere Standardbild
    
    if(!file_exists($bild_1))
    	die(Datei existiert nicht!!!);
    
    header (Content-type: image/png);
    	
    function set_create($mime) {
    	switch ($mime) {
    		case->image/jpeg' :
    			return->imagecreatefromjpeg';
    			break;
    		case->image/png' :
    			return->imagecreatefrompng';
    			break;
    		case->image/gif' :
    			return->imagecreatefromgif';
    			break;
    		default:
    			return FALSE;
    	}
    }
    $size_1 = getimagesize ($bild_1);
    $create = set_create($size_1['mime']);
    $im_1 = $create($bild_1);
    
    $size_2 = getimagesize ($bild_2);
    $create = set_create($size_2['mime']);
    $im_2 = $create($bild_2);
    
    $hight_new = ($size_1[1]+$size_2[1]);
    $width_new = ($size_1[0] >= $size_2[0]) ? $size_1[0] : $size_2[0];
    
    $im = @imagecreatetruecolor($width_new, $hight_new)
       or die (Kann keinen neuen GD-Bild-Stream erzeugen);
    
    $bg = imagecolorallocatealpha($im, 255, 255, 255, 0);
    imagefill($im, 0, 0, $bg);
    
    imagecopy($im, $im_1, 0, 0, 0, 0, $size_1[0], $size_1[1]);
    
    $start_x = (($width_new / 2) - ($size_2[0] / 2));
    imagecopy($im, $im_2, $start_x, ($size_1[1]+1), 0, 0, $size_2[0], $size_2[1]);
    
    imagedestroy($im_1);
    imagedestroy($im_2);
    imagepng($im);
    imagedestroy($im);
    
    ?>
    
    Aufrufen kannst du es so:
    Code:
    ....
    <p><img src=get_image.php?bild=bild1.jpg border=0 /></p>
    ....
    
    Hier sollte der Pfad zum Bild angegeben werden. z.B. ...?bild=uploads/bild1.jpg
    Ist der Pfad immer gleich, kannst du ihn direkt in die Datei get_image.php schreiben, so:
    Code:
    <?php
    ...
    $bild_1 = uploads/.$_REQUEST[bild]; // Das obere Bild
    ...
    ?>
    
    So brauchst du immer nur den Bildnamen an das Script zu übergeben.

    Guckst du => http://wt-scriptarchiv.de/script_demos/imagecreate/
     
  6. ok bei diesem Thema habe ich definitiv den Durchblick nicht! Zusätzlich habe ich es noch falsch Beschrieben... tut mir leid conny... also nochmals:

    - das obere Bild wird vom User über ein Formular hochgeladen
    - unten dran kommt dann zentriert mein Bild

    Beispiel: http://www.ciryx.ch/images/sharks.png

    Mein momentaniger Quellcode welcher nicht funzt:

    Code:
    <?php
    
    if($_POST[test]==yes) {
    
     
    $path = logos/;
    
    if (!copy($file, $path.$file_name))
    {
    echo Der Upload hat nicht funktioniert! Bitte erneut versuchen.;
    } else {
    
    
    
    $bild_1 = $path.$file_name; // Das obere Bild
    $bild_2 = ehfe.jpg; // Das untere Standardbild
    
    if(!file_exists($bild_1))
    die(Datei existiert nicht!!!);
    
    header (Content-type: image/png);
    
    function set_create($mime) {
    switch ($mime) {
    case->image/jpeg' :
    return->imagecreatefromjpeg';
    break;
    case->image/png' :
    return->imagecreatefrompng';
    break;
    case->image/gif' :
    return->imagecreatefromgif';
    break;
    default:
    return FALSE;
    }
    }
    $size_1 = getimagesize ($bild_1);
    $create = set_create($size_1['mime']);
    $im_1 = $create($bild_1);
    
    $size_2 = getimagesize ($bild_2);
    $create = set_create($size_2['mime']);
    $im_2 = $create($bild_2);
    
    $hight_new = ($size_1[1]+$size_2[1]);
    $width_new = ($size_1[0] >= $size_2[0]) ? $size_1[0] : $size_2[0];
    
    $im = @imagecreatetruecolor($width_new, $hight_new)
       or die (Kann keinen neuen GD-Bild-Stream erzeugen);
    
    $bg = imagecolorallocatealpha($im, 255, 255, 255, 0);
    imagefill($im, 0, 0, $bg);
    
    imagecopy($im, $im_1, 0, 0, 0, 0, $size_1[0], $size_1[1]);
    
    $start_x = (($width_new / 2) - ($size_2[0] / 2));
    imagecopy($im, $im_2, $start_x, ($size_1[1]+1), 0, 0, $size_2[0], $size_2[1]);
    
    imagedestroy($im_1);
    imagedestroy($im_2);
    imagepng($im);
    imagedestroy($im);
    
    echo
    <img src=\get_image.php?bild=bild1.jpg\ border=\0\ />;
    
    }
    }
    ?>
    
    
    <br><br>
    <b>Flagge Hochladen<b><br>
    <hr width=300 align=left><br>
    
    <FORM ENCTYPE=multipart/form-data ACTION=?pn=logo_creator.php METHOD=POST>
    <input type=hidden name=MAX_FILE_SIZE value=2097152>
    <input type=hidden name=test value=yes>
    <input type=file name=file>
    <input type=submit value=Flagge hochladen>
    </form>
    
     
  7. Kann so nicht klappen ;)

    Das Bild (des Users) muss ersteinmal hochgeladen und an seinen richtigen Platz verschoben werden.
    Erst wenn es richtig abgelegt ( mit move_uploaded_file ) ist kannst du die 2 Bilder zusammenfügen, vorher nicht ( wo nix is kann man nix zusammenfügen ).

    Außerdem hat in der von mir beschriebenen Datei get_image.php nix anderes (schon gar kein HTML ) drinn zu stehen.
    Diese dient nur zur Temporären-Bilderzeugung zur Laufzeit.

    Reihenfolge:
    - Bild Upload per Formular
    - Formulareingaben überprüfen und Bild verschieben.
    - Anzeige des Bildes per:
    Code:
    <img src=get_img.php?bild=irgendwas_und_irgendwo.gif border=0>
    
    hier werden BEIM Aufruf die Bilder zusammengeklebt.
    Mehr passiert hier nicht.

    Sorry, aber du solltest wirklich mal ein bissle im PHP-Manual schmökern ;)
     
  8. oohhh jaa... da hast du recht :D

    werde mir das jetzt mal anschauen
     
  9. kannst thema schliessen... funktioniert alles!!! Bestens!

    Schönes Weekend noch allen!!!
     
Die Seite wird geladen...

Bild verändern mit PHP - Ähnliche Themen

Forum Datum
Bildgröße verändern Software: Empfehlungen, Gesuche & Problemlösungen 8. Okt. 2007
bildschirm-auflösung verändern Software: Empfehlungen, Gesuche & Problemlösungen 25. März 2007
Bootscreen und Anmeldebilder automatisch verändern? Software: Empfehlungen, Gesuche & Problemlösungen 8. Jan. 2007
Uhrzeit von Bildern verändern Windows XP Forum 30. Aug. 2006
Sperrbildschirm springt nach 3 min an Windows 10 Forum 18. Nov. 2016