22 online Udvikleren.dk > PHP >

Ikon på billedet

Minister: OK at beskatte danske Google-indtægter i Irland

Minister: OK at beskatte danske Google-indtægter i Irland

Skatteminister Troels Lund Poulsen hverken kan eller vil forhindre, at Google fakturerer danske annoncører gennem sit irske datterselskab, angiveligt for at undgå skat i Danmark. [Læs mere | 0 kommentarer]
 

Philip Birk
Forfatter: Philip Birk
Artikler skrevet: 2
UP tjent på artikler: 2.000

Hits: 9214
Niveau: Nybegynder
Artikel UP: 1.000

Rating: En rating på 3,93 ud af 15 stemme(r)

Ikon på billedet

Indledning


Min knapt så kreative hjerne er kommet op med titlen ”Ikon på billede” til denne artikel, hvilket jo ikke er den mest ”ligetil” titel, men det går kort og godt ud på:
Ved brugen af PHP og GDLib vil jeg placere et billede oven på et andet, hmm tja, det kan f.eks. se ud som følgende:


Jeg håber det gjorde det hele lidt mere forståeligt, for nu starter det. Dog skal jeg lige sige, at de billeder jeg bruger som ikoner er PNG-24, og der er derfor understøttelse af 8-bit transparent(eller hvad det nu heder, hold mig ikke på det korrekte ord), ”that’s why kids, when you try this at home, remember to use PNG-24”.

IconizeImage


Tja vi springer ud i det med det samme. Jeg har lavet en funktion som jeg har valgt at kalde IconizeImage, og det den gør er at smide et billede oven på et andet, som denne artikel jo handler om (så det var da meget heldigt):
Fold kodeboks ind/udKode 


Funktionen indeholder 3 argumenter. Det først værende det billede du vil lægge et ikon på, den næste selve ikonet, det sidste argument er hvad det billede du vil lave skal hede. Jeg vil lige sige nu mens jeg er i gang at funktionen kun er lavet til eksemplet her, den kan laves en del mere brugervenlig, hvis man ikke helt ved hvad man vil gemme sine billeder som. Det skal lige siges at de 2 første argumenter skal være image ressources, du skal altså f.eks. selv bruge imagecreatefromjpng hvis det er et png billede du arbejder med. Lad mig lige give et eksempel:
Fold kodeboks ind/udKode 


De 2 billeder jeg har brugt heder icback.jpg (billedet jeg ønsker skal havde et ikon) og icon.png (ikonet). Når men lad mig hurtigt løbe koden igennem.
Først finder vi størrelsen af ikonet, som skal bruges når man kopiere dette over på det baggrundsbilledet.
Den kommenterede linje kan du vælge at fjerne, men i tidligere PHP versioner er alphablending ikke slået til pr. standard, og du skal derfor uncomment denne del af koden hvis din alphakanal ikke regnes med når billedet kopieres (hvis du ikke er helt med her, så gør det ikke noget hvis du har en nyere version af PHP skal der slet ikke tænkes på dette).
Dernæst kopieres de to billeder ovenpå hinanden. Slå evt. denne funktion op i php manualen, for at vide hvilken argumenter der er placeringen af de forskellige billeder.
Så laves billedet, denne gang som et jpeg billede men i konklusionen lige som lidt vil jeg sammenligne resultatet mellem et jpeg og et png.

Konklusion


Jeg håber du har forstået hvordan det hele virker, for den funktion jeg har lavet er mest til test, den ville ikke gøre sig godt i et større system.
Denne viden ville man kunne gøre god brug af, hvis man havde et billede galleri, kunne man smide sit eget lille ikon på alle billederne efterhånden som de blev uploadet. Men nok om hvad man egentlig kan bruge det til, jeg tænkte nemlig på at kigge lidt på det sidste billede man ville få ud af det hele.
Jeg har valgt at bruge følgende billeder som test billeder(det første er baggrunden og det andet er ikonet):



Jeg har valgt og prøve at gemme disse to billeder som henholdsvis png og jpeg, resultatet blev følgende. Dette kræver du ændrer følgende linje:
Fold kodeboks ind/udKode 

til
Fold kodeboks ind/udKode 

Og for en ordensskyld så lav navnet på $imgDest om til iconized.png. Resultatet ser ud som følgende, png til venstre og jpeg til højre, (det skal dog siges at jeg har brugt en lav jpeg kvalitet til billedet der skal vises her, hvis du selv vil prøve dette, så hent baggrundsbilledet ovenfår og ikon billedet til sidst i artiklen):


På trods af den lidt gnidrede jpeg kvalitet kan man tydeligt se, at hvis man laver den endelige fil i png vil ens resultat på ikonet man laver blive langt bedre end hvis dette gemmes som jpg. Der er dog lige en lille (bør læses stor) faktor som gør det ikke altid er lige smart bare at gemme som png. Størrelsen på billedet, bruger man jpeg (selv med dårligste komprimering og bedste kvalitet) vil billedet høstsandsynligt blive mindre end billedet i png, i mit eksempel er størrelserne som følgende:
JPEG: 81,788 kb
PNG: 191,854 kb
Dette svare i mit eksempel til at png billedet er 2,3 gange større end mit jpeg. Og arbejder man med dette til hjemmesider (hvilket man højst sandsynligt gør) har størrelsen alligevel noget at skulle havde sagt. Men det er jo alt sammen op til den enkelte.
Jeg håber som sagt, at der er nogen som har lært lidt af denne artikel på trods af det endte med at blive mere konklusion end egentlig kode. Når ja og som jeg lovede så kan du nedenfor hente ikon billedet jeg har brugt:
Denne artikel har en rating på 3,93 ud af 15 stemme(r).

Kommentarer
Bruger
Martin Slot @ 18-11-2004 23:49:53
God artikel. Kan godt lide artikler hvor man viser hvordan man bruger koden praktisk :)
Bruger
Ulrik H. @ 04-01-2005 16:55:28
Dejligt med en artikel med billeder :)
Synes du beskriver godt hvordan man får tilføjet vandmærket til billedet.
Ros herfra!
Bruger
mathias nielsen @ 12-05-2005 12:16:23
SuperNice!
prøv evt at se hvad jeg har fået ud af det på http://www.foxer.be/~mrnielsen/?page=billeder.php
(de skal vises stor før det ses)
Bruger
Leo @ 12-05-2005 15:27:01
Fedt!
Bruger
anders @ 13-06-2005 15:03:38
forstår ikke helt artiklen og kan ik få den til at virke, kan i ikke give et eksempel på hvordan hele pp filen skal se ud???
Bruger
anders @ 13-06-2005 15:04:11
pp=php
Bruger
Pooned @ 01-07-2005 21:09:49
er det sådan at der er en der kan fortælle mig hvordan jeg får mit vandmærke ned i højre hjørne af billedet :)?
Bruger
Pooned @ 01-07-2005 21:17:53
tror jeg har fundet et alternativ, fik vidst ikke sagt at det er en _suveræn_ artikel du har fikset sammen der
Bruger
Alexander @ 11-02-2006 17:10:36
Kan du også lave dette ikke med et billede på billedet men med tekst på billedet?
Bruger
Emil Bjerglund Pedersen @ 26-02-2006 20:05:45
Det er en helt fin artikel, men jeg synes dog ikke at den helt går dybt nok. Jeg har selv arbejdet videre på den, så den automatisk virker med PNG, JPG og GIF, og det var ikke mega svært, så det kunne du måske overveje at skrive videre om på et tidspunkt.
Bruger
Pelle Ravn @ 14-03-2006 10:53:32
Udemærket artikel, men savner lidt forklaringer på selve koden, og nogle evt. ting man selv kan arbejde videre med.

Men ellers så er det en god start.
Bruger
lgb @ 23-06-2006 07:34:54
jeg kan ikke få det til at virke
Bruger
Peter Schlaikjer @ 04-11-2007 10:42:13
Fed artikel. Jeg synes du beskriver det hele godt. Selv jeg forstod artiklen, og jeg er ellers snotdum for sådanna ting. :roll:


Tilføj rating/kommentar til artiklen
Du skal være logget ind for at tilføje en rating/kommentar til denne artikel.






Klik for at logge ind


Teknologier