31. august 2006 - 10:28Der er
15 kommentarer og 1 løsning
Vandmærker på billeder
Hejsa,
Jeg har lavet et billedegalleri, som virker fint fint. Man kan uploade billeder, hvorefter de resizes, navngives og der genereres en thumbnail.
Nu vil jeg så gerne have, at der tilføjes et vandmærke på de billeder, der uploades. Som med DKBN og NightLeif, så kan jeg sagtens få et logo til at ligge nede i hjørnet, det er let nok med AddImage.
Det jeg gerne vil have er, at logoet bliver nedtonet (lidt a la opacity = 50 % eller noget i den stil), men kan det lade sig gøre med aspImage? Hvis ikke, kender nogen så et program, hvor det KAN lade sig gøre?
Svar må meget gerne blive ledsaget af kildekode, da jeg kun lige mangler de sidste par linjer kode, før jeg er færdig.
Det er også AddImageTransparent, jeg bruger (skrev vist kun AddImage), og den fjerner blot baggrunden fra logoet, når det lægges ovenpå billedet (ellers ville der være en ramme/baggrund på logoet).
Umiddelbart ser det italienske kode blot ud til at anvende DoMerge, og denne har jeg også afprøvet, men ved DoMerge skal billederne være lige store (logoet må ikke være mindre, for så strækker aspImage logoet til at have samme størrelse som billedet).
Løste dette problem med at lave en ny instans af Image-objekt og lave et hvidt billede, der har samme størrelse som original-billedet og tilføje logoet til dette hvide billede. Derefter har logoet så samme størrelse som original-billedet, men da baggrunden på logoet er hvid, tones hele original-billedet ned, når man anvender DoMerge (logoet bliver halv-transparent, som jeg ønsker, men hele original-billedet er tonet ned og ser derfor mat ud).
En løsning kunne dog være, hvis det er muligt at definere transparent som en farve i aspImage (ved jeg ikke, om man kan), for så kunne jeg lave en transparent-billede i samme størrelse som original-billedet, tilføje logoet til dette transparente billede og lave en DoMerge, derved bliver resten af original-billedet ikke nedtonet.
Det er også fair nok, så søger du bedre end jeg gør :-) Har været i gang på Google også, men fandt ikke noget brugbart.
Det sidste kode-eksempel på det forum-link, du sendte, ligner dog meget det, jeg har forsøgt, så jeg vil lige afprøve det... Det er dog lidt svært af finde rundt i, når både beskrivende tekst og kode-variabler er skrevet på italiensk.
Og angiver ikke noget om, at man kan arbejde med opacity (f.eks. objImage.Opacity = 50 %) og angiver heller ikke noget om, at man kan arbejde med transparens som en farve (f.eks. vbTransparent).
Tror dog, at jeg har gennemskuet den italienske kode, og den har en smart løsning, som jeg selv var inde på. Altså det at lave et nyt billede med samme størrelse som original-billedet. Jeg laver dog en hvid firkant og placerer logoet herpå, hvor italieren tager et meget stort transparent-billede (uden noget som helst grafik) og beskrærer til original-billedets størrelse, hvorefter logoet tilføjes.
Dermed burde jeg får et logo på "samme størrelse" som original-billedet, men med transparent baggrund, så jeg uden problemer kan lave en DoMerge (se min tidligere kommentarer til thesrufer).
Jeg beklager at måtte meddele, at jeg opgiver. Den lede aspImage-komponent nægter sgu at følge mine idéer :-) Er ikke sikker på, at DoMerge kan håndtere transparens.
Her er det kode, jeg har arbejdet med:
Function TilfoejLogo(fil,format)
TilfoejLogo = False
Dim objImage, objImageLogo, intX, intY, intLogoX, intLogoY Dim strBilledLogo, strBilledLogoTemp, strBilledSpacer, strBilledTekst
If format = 1 Then ' JPG objImage.ImageFormat = 1 ElseIf format = 2 Then ' BMP objImage.ImageFormat = 2 ElseIf format = 3 Then ' PNG objImage.ImageFormat = 3 ElseIf format = 4 Then ' WBMP (ikke medtaget) ElseIf format = 5 Then ' GIF objImage.ImageFormat = 5 ElseIf format = 6 Then ' TGA (ikke medtaget) ElseIf format = 7 Then ' PCX (ikke medtaget) Else ' UKENDT End If
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.