Avatar billede squazz Novice
30. juni 2012 - 15:11 Der er 4 kommentarer og
1 løsning

Ændre farve i billede med PHP

Hej eksperter

Jeg har nu siddet i en tid, og prøvet at få fundet ud af hvordan jeg får ændret farven på et billede.
Jeg har følgende kode:

pastebin.com
$im = imagecreatefromgif('ImgPlacering');

$r = '0';
$g = '120';
$b = '138';   

imagecolorset($im, imagecolorexact($im, 211, 80, 51), $r, $g, $b);

header('Content-Type: image/gif');
imagegif($im);


Efter at have søgt rundt på nettet, har jeg forstået det således at dette burde kunne lades at gøre på den måde jeg har stillet det op. Desværre, lader det ikke til at mit billede ændrer farve ;)

Er der nogen der kan se hvad jeg gør galt? Som kan smide mig et link til en der har fået det til at virke, på en ordentlig måde, eller andet der kan give mig et puf i den rigtige retning? :)

Alt hjælp modtages, og stil mig meget gerne uddybende spørgsmål :D
Avatar billede olebole Juniormester
30. juni 2012 - 15:49 #1
<ole>

- men du kan godt få det til at lykkes med et lokalt billede på serveren, ikke?

/mvh
</bole>
Avatar billede squazz Novice
30. juni 2012 - 16:13 #2
Det er noget tid siden jeg sidst har programmeret, og da jeg ikke kunne få linket til filen (prøvede bl.a. med ../new/logo.gif), valgte jeg bare at tage hyperlinket, og så arbejde videre derfra :)

Så billedet ligger lokalt, men jeg har linket til det med hyperlink. Og muligvis også derfor jeg ikke kan få det til at virke?
Avatar billede squazz Novice
01. juli 2012 - 02:43 #3
Opdatering, jeg har nu fået taget mig sammen til at få linket ordenligt til mit billede, men kan stadig ikke få det til at virke :(

Jeg har sikret mig at billedet er et 256 farvers gif :)
Avatar billede squazz Novice
01. juli 2012 - 03:59 #4
Jeg fik løst min umiddelbare fejl. Det viste sig at jeg søgte efter en forkert farve, og kunne med funktionen imagecolerat finde frem til den korrekte farve ;)

Dog viste det sig hurtigt at der var mere end én farve i det logo jeg ellers havde lavet med én farve. Dette har velsagtens noget at gøre med den måde billedet bliver renderet af Photoshop når jeg vil gemme billedet, og det at jeg har en gennemsigtig baggrund har sikkert også noget af grunden hertil.

På PHP.net fandt jeg dette post der fortæller noget om at finde nuancerne af en farve i billedet.
http://www.php.net/manual/en/function.imagecolorat.php#107970

Kigger man på http://lindvedtorringimu.dk/new/pages/media/logo.php kan man se hvad der sker hvis jeg kun vælger at fokusere på én farve. Tydeligvis er der nogle nuancer der skal skiftes ud.

Vil det være muligt at lave en et script der gør lidt det samme som man gør når man laver en farvemaske i Photoshop? Hvor jeg vælger den farve jeg vil bruge som standard, hvorefter billedet scannes, og nuancerne i originalbilledet findes, for så derefter at modificere nuancerne i den farve jeg har valgt, så det kommer til at matche mit billede?

Det ville nok være en god løsning hvis jeg på en måde kunne scanne billedet nu, og finde ud af hvor mange nuancer der er i billedet, for derefter at finde ud af deres afvigelser, og lave en eller anden form for liste eller array der fortæller mit php hvilke specifikke farver den skal erstatte, og hvor meget den skal justere nuancen på den valgte farve for at det kommer til at se ordenligt ud.

Jeg har bare ét standard billede jeg vil bruge, og vil så ændre billederne på dette ene billede, derfor snakker vi ikke en løsning som vi kunne erstatte alle mulige billeder indeholdende en specifik farve.

Jeg har endvidere fundet ud af at jeg kan komprimere billedet ned til 32 farver uden at det ser dumt ud (næsten umuligt at se forskel på 32 farvers og 256 farvers billedet. Men dette er selvfølgelig fordi det er i den størrelse det er.
Da jeg har leget med tanken om at kunne gøre logoet mindre eller større, skal jeg vel have gang i noget med vektorer eller canvas for at få det til at virke? Og dette ændrer velsagtens også hele idéen for hvordan jeg kan/skal ændre farven på billedet?

Jeg ved det var mange spørgsmål og informationer på én gang. Jeg håber ikke det var FOR meget og for usammenhængende.
Avatar billede squazz Novice
17. august 2012 - 01:51 #5
Gav op, lod til at blive en NOGET avanceret opgave
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester