Färglägga ett egengjort mönster i en php-bild med valfri färg

Permalänk

Färglägga ett egengjort mönster i en php-bild med valfri färg

Jag har en bild som är skapad med php. Det bilden gör är att skapa en bild från en riktig bild med imagecreatefrom*.

Men på den bilden vill jag lägga på ett eget mönster som jag gjort i photoshop. Just nu är mönstret vitt och jag sparade det delvis transparent i .png så att det blir som en del av bilden. Så som man gör med waterstamp på bilder.

Det fungerar fint och så men nu kommer det stora problemet. Jag vill att man i php-filen ska kunna sätta t ex. såhär:

$color = "00FF00";

och så blir mönstret grönt istället för vitt.

Har prövat med imagefilter och colorize men inget hände. Hur bör jag gå till väga?

Permalänk
Medlem

jag antar att du har sparat din vattenstämpel som vit.
vad jag förstår så vill du att det ska stämplas på vattenstämplar på alla bilder du har (via en upload t. ex). och själva stämpeln hade du sparat som transparant png-bild? den bilden har ju bestämda färger i sig.

jag vet inte om det där är möjligt (eller jo det kanske det är...) att ändra färg på en bild via php-kod men annars kan du spara en vit, en grön, en svart, en gul, en blå etc. så kan du använde den stämepln som känns bäst för tillfället.

if (bakgrund == vit) stämpel = svart;
else if (bakgrund == blå) stämpel = grön;

Permalänk
Medlem

Vet inte hur man gör i just php men för att lägga på en färgmask på en bild gör du såhär:

Loopa igenom varje pixel i bilden och gör en elementvis multiplikation med färgen från bilden och färgen du vill lägga ovanpå.
Dvs om du har $color = "00ff00" så multiplicerar du den röda delen från din bild med 0, den gröna delen med 255 och den blåa med 0.

Om du som i ditt fall då har en bild med olika nyanser av vitt så kommer du som resultat få en bild med olika styrkor av grönt.

Eftersom det kan ta lite tid att loopa igenom 5 miljoner pixlar på cpun så rekommenderar jag att du pre-cachar bilderna om du har stora bilder med mycket tryck på servern.

Permalänk

Det låter som det jag är ute efter. Mina bilder är inte stora alls. Har du redan ett sånt script? kan man få ta del av det?

Permalänk
Medlem

Som sagt så vet jag inte hur man gör i php, vet bara att det är så man gör i hlsl.

Glömde en sak innan och det är att du måste dividera resultatet med 255. Annars kommer du få resultat som går över 255 vilket inte är bra.

Permalänk

Får jag ta upp denna tråd igen? Behöver verkligen denna funktion jag är ute efter. Någon som vet någon GD-funktion eller liknande som kan åstakomma detta? Eller går det med HTML-css på något sätt??

Permalänk
Medlem

Borde inte imagefilter funka?
http://se2.php.net/manual/sv/function.imagefilter.php
Se exempel 3.

Visa signatur

Stolt användare av en ibook 300 MHz (dasslocket)

Permalänk

Jo det verkar fungera. Om man gör formen till helt svart så kan man ha vilken färg man vill på!

EDIT: fast det blir en liiten liten svart kant i alla kanter som är lite runda. Otroligt störande. Hur får jag bort den? Min shape måste ju vara svart för att man ska kunna använda COLORIZE på den.