10. april 2001 - 16:41Der er
8 kommentarer og 1 løsning
Billede
I kender de billeder hvor det er 2 billeder der ligger oven i hinanden hvor det ene er lidt mere gennemsigtigt. Men hvordan kan man lave et program der laver dette.
Det lyder som en \"velvoksen\" opgave.Selv avancerede programmer er ikke altid forsynet med den mulighed.Men hvis du ikke havde skrevet \"lidt mere gennemsigt\", men derimod mente at men dannede billedet ved at lægge forskellige billeder ovenpå hinanden, var det nok mere \"tilgængeligt\".Det afhænger så af den måde du laver billedet på hvordan det samlede \"indtryk\" bliver.
Jeg ved ikke lige om der er en smart og kort måde at løse problemet på men...
Funtionen TCanvas.Pixels[x,y]:=\"farve\" som tegner pixels på et canvas kan også læse fra det som så...
\"farve\":=TCanvas.pixels[x,y];
Hvis du så laver et dobbelt forløkke, altså løber alle højde*bredde antal pixels igennem og lægger f.eks. 1/10 farven fra det ene oven i det første skulle du gerne få det ønskede resultat.
Du kan extractre RGB værdierne med funktionerne getRval, getGval og getBval... Jeg prøver lige om jeg kan kode det...back in a sec!
Jeg huskede forkert medhensyn til de tre funktioner de hedder \"value\" istedet for bare \"val\", så koden ser ud som sådan:
for x:=0 to 200 do begin for y:=0 to 200 do begin paintbox1.canvas.pixels[x,y]:=image1.canvas.pixels[x,y]+rgb(getRvalue(image2.canvas.pixels[x,y]) div 10,getRvalue(image2.canvas.pixels[x,y]) div 10,getRvalue(image2.canvas.pixels[x,y]) div 10); end; end;
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.