Neue Shirtbilder oder transparente PNGs auf JPGs kopieren mit PHP

Ich hatte ja schon beschrieben, wie wir gerade die Präsentation unseres Shirtsortiments verbessern. Ein Schritt dabei wird sein, dass es bald bei fast allen unserer über 300 Motive ein Bild für alle verfügbaren Farben und Formen wie Girlie, Hoodie, etc, geben wird. Außerdem soll es jeweils noch passende Fotos mit echten Menschen geben. Insgesamt ergibt dass ca. 4500 Bilder, es ist also nicht mehr wirklich machbar, die Bilder alle von Hand zu erstellen.

Aber welcher Nerd hätte bei der Menge von Bildern nicht sowieso längst daran gedacht, ein Skript zu schreiben? Heute habe ich endlich die Zeit dazu gefunden, damit anzufangen. Die meisten Programmieraufgaben werden zwar von unseren Programmierern Helge, Conrad und Florian erledigt und natürlich hätte ich auch diese Aufgabe abgeben können, aber ganz ohne mal etwas selbst zu programmieren kann ich dann irgendwie doch nicht :) Als Chef komme ich sowieso viel zu selten dazu…

Die Ausgangslage hier nochmal genauer definiert: Ich habe 300 PNG-Dateien mit unseren Shirtmotiven auf transparentem Hintergrund und diese sollen auf jeweils 15 verschiedene Ansichten unserer Shirts kopiert werden, die als JPGs vorliegen. Dabei muss das Motiv natürlich in der Größe und Position jeweils verändert werden. Da unser gesamtes System in PHP programmiert ist und ich daher einfach am besten mit PHP umgehen kann, hab ich einfach mal nachgeschaut, ob Stackoverflow nicht vielleicht schon eine Lösung anbietet und ja, so war es. Zumindest behaupten sie es, denn leider konnte PHP nicht wirklich ohne Tricksereien mit Transparenz umgehen, aber insgesamt war die Aufgabe dann doch ziemlich schnell erledigt. Verdammt, irgendwie zu einfach ;) Wer Interesse an den paar Zeilen PHP hat, die so dann auch funktioniert haben:

$src = imagecreatefrompng('12189_In-science-we-trust.png');
$dest = imagecreatefromjpeg('t-shirt_black.jpg');
$posX = 580;
$posY = 900;
$areaWidth = 600;
$areaHeight = 600;

$cut = imagecreatetruecolor($areaHeight, $areaWidth);
imagecopy($cut, $dest, 0, 0, $posX, $posY, $areaHeight, $areaWidth);
imagecopyresampled($cut, $src, 0, 0, 0, 0, $areaHeight, $areaWidth, 3000, 3000);
imagecopymerge($dest, $cut, $posX, $posY, 0, 0, $areaHeight, $areaWidth, 100);

header('Content-Type: image/jpeg');
imagejpeg($dest);

imagedestroy($dest);
imagedestroy($src);
imagedestroy($cut);

Das macht dann aus den Eingaben:

Dieses Ergebnis:

Generiertes Shirtbild

Generiertes Shirtbild, der rote Rahmen ist natürlich nur zu Testzwecken da.

 

Auch wenn es ein recht simples Skript ist und das Ergebnis vielleicht etwas trivial aussieht, übt es trotzdem irgendwie eine seltsame Faszination auf mich aus. Könnt ihr das nachvollziehen? Immer wenn Aufgaben, die man sonst mühselig von Hand erledigt hat (hier halt Photoshop-Gefummel), am Ende automatisch funktionieren, freut mich das auf eine ganz besondere Art. Vielleicht sind Nerds auch deswegen so fasziniert von den Entwicklungen, die die KI-Forschung in den letzten Jahren schafft.

 

 

 

 

Tags: PHP, Programmieren, Shirts

Philipp

Ich bin der Chef von getDigital und war schon immer ein ziemlicher Nerd: Meine Jugend habe ich mit Warhammer, Magic, Pen & Paper und einem extrem nerdigen eMail-Spiel namens Eressea verbracht und gleich danach dann theoretische Physik studiert. Weil mir das aber irgendwie noch nicht gereicht hat, hab ich einfach auch noch mit meinem Freund Florian einen Nerd-Shop gegründet :)

Gefällt Dir der Blog?

Wenn Du nichts verpassen willst, kannst Du unseren RSS Feed abonnieren.

Du kannst uns aber auch bei Facebook folgen:

Natürlich sind wir aber auch bei Twitter vertreten.