Bild- bzw. Farbmanipulation mit PHP, GDlib (oder ImageMagick) und AJAX

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bild- bzw. Farbmanipulation mit PHP, GDlib (oder ImageMagick) und AJAX

    Hi Forum-Mitglieder,

    ich möchte mich mit meinem Vorhaben an euch wenden da ich bei verschiedenen Punkten noch ziemlich unsicher bin ob und wie ich das am geschicktesten zum Laufen bekomme. Ich hoffe dass Ihr mir mit eurem Erfahrungsschatz ein wenig "auf die Sprünge" helfen könnt.

    Ich habe ein PHP, MySQL eCommerce System für T-Shirts etc. in der lokalen Testumgebung. Es geht nun explizit um die Einzelproduktansicht. Hier soll der User die Farben von T-Shirt und Aufdruck nach eingenem Belieben ändern können. D.h. ich biete, sagen wir, 10 Farbfelder jeweils für die Shirtfarbe und 10 für den Aufdruck an und der User klickt sich seine Farbkombination zusammen. Position des Aufdrucks ist vorgegeben und bleibt unverändert (also keine Drag & Drop Funktionen).

    Meine Fragen dazu:

    1. Kann ich per AJAX bzw. JavaScript evtl auch die Farbe von Images verändern? Ich denke da an Shirt als Hintergrundbild und Druck darüber als transp. PNG. Diese Werte müsste ich dann natürlich ans PHP übergeben ...

    2. Oder besser per PHP die Grafik per GD oder IM erzeugen? Welche Bibliothek zur Bildmanipulation ist eher zu empfehlen?
    3. Gib es ganz andere Ansätze die ich überhaupt nicht in Betracht gezogen habe?

    Nur noch 'ne Anmerkung zm Schluss. Ich erwarte selbstverständlich keinen fertigen Code. Oder eine detaillierte Projektplanung von euch. Vielmehr würde ich mich über einen Gedankenaustausch freuen und von euch erfahren wollen mit welchen Eckdaten Ihr so eine Sache starten würdet.
    Ich bekomme in die ganze Geschichte noch keine richtige Ordnung wie es der beste Weg wäre so etwas zu realisieren.

    Dank & Gruß!

  • #2
    1. ist am Resourcenschonensten und würde ich einsetzen. Solltest natürlich auch eine Fallbacklösung ohne JS einsetzen.

    Kommentar


    • #3
      danke für die antwort. ich habe heute den ganzen tag damit zugebracht diese dinge per gdlib zu erstellen, hab damit zuvor noch nicht gearbeitet deswegen dauerts ein wenig. das zusammenfügen der grafiken hat auch gut geklappt (imagecopymerge). ich hab allerdings eine blockade was es angeht das motiv umzufärben. die ausgangsdatei ist rot und ich möchte sie jetzt gelb umfärben. hab so einige funktionen durch aber irgendwie läuft das nicht rund. letzter stand der dinge ist dass ich es mit imagefill versucht habe. aber auch das ist nicht optimal. ich bräuchte so etwas wie "farbwert in der grafik suchen" und durch "neuen farbwert ersetzen". habt ihr ne idee dazu? am code darf selbstverständlich auch rumgemeckert werden. bin für kritik offen ...

      PHP-Code:
      <?php 
      header
      ('Content-type: image/jpeg'); 

      $file 'images/whiteshirt.jpg'

      // Originalformat auslesen 
      $size        getimagesize($file); 
      $width       $size[0]; 
      $height      $size[1]; 

      // Bild laden 
      $old_picture imagecreatefromjpeg($file); 

      // Neues Bild erzeugen 
      $new_picture imagecreatetruecolor($width$height); 

      // Kopiert das Ursprungsbild und formatiert es um + Weichzeichnung. 
      imagecopyresampled($new_picture$old_picture0000$width$height$width$height); 

      // Druck platzieren und gelb färben 
      $transition  100
      $shirtprint  imagecreatefrompng('images/heart2.png'); 
      $yellow      imagecolorallocate($shirtprint2552550); 
      imagefill($shirtprint5050$yellow); 

      $shirtprintpic_width  imagesx($shirtprint); 
      $shirtprintpic_height imagesy($shirtprint); 
      $shirtprintdest_x     $width - ($shirtprintpic_width 2); 
      $shirtprintdest_y     $height - ($shirtprintpic_height 2); 
      imagecopymerge($new_picture$shirtprint$shirtprintdest_x$shirtprintdest_y00$shirtprintpic_width$shirtprintpic_height$transition); 

      // Bild ausgeben 
      imagejpeg($new_picture); 

      ?>

      Kommentar


      • #4
        imagecolorset ersetzt eine Farbe in der Palette, das ist aber sicher nicht direkt das, was du suchst, da du damit nur eine Farbe umänderst.

        Kommentar

        Lädt...
        X