Avatar billede emileej Nybegynder
06. juli 2002 - 13:57 Der er 20 kommentarer og
1 løsning

Delvis gennemsigtige billeder

Kan det lade sig gøre at tegne et billede delvist gennemsigtigt? Og hvordan?
Ligesom opacity effekten i Photoshop...

E-)mil
Avatar billede jword Nybegynder
06. juli 2002 - 22:51 #1
for at fortsætte fra tidligere spørsmål: du tager dit graphics object og tegner på det. Du kan tegne 'delvist gennemsigtigt' ved at sætte color med en alpha værdi. ie new Color(int r, int g, int b, int alpha). Ved for eks. at sætte alpha til hundrede og r, g, b, til en hvid (255, 255, 255) vil du tegne et halvgennemsigtig hvid rectangle hvor man vil kunne se baggrunden.
Avatar billede emileej Nybegynder
07. juli 2002 - 10:18 #2
Er ikk helt sikker på at jeg har forstået helt...

Color minFarve=new Color(255,0,0,50);
this.getGraphics().setColor(minFarve);
this.getGraphics().drawRect(20,20,100,100);

Tegner et rødt 100*100 rektangel der er 50% gennemsigtig - korrekt?

E-)mil
Avatar billede jword Nybegynder
07. juli 2002 - 11:14 #3
Ikke helt. Værdierne går fra 0 - 255. Altså hvis du skal have et halvt gennemsigtigt rectangle skal du nok bruge en alpha omkring 125.
Avatar billede emileej Nybegynder
07. juli 2002 - 11:55 #4
ok
Men hvad så med billeder? Gør jeg bare således:
Color minFarve=new Color(255,0,0,50);
this.getGraphics().setColor(minFarve);
this.getGraphics().drawImage(mitImg,20,20,this);
?
Avatar billede jword Nybegynder
07. juli 2002 - 12:01 #5
Du kan ikke gøre et billede transparent, hvis det ikke allerede er det. I hvert fald ikke på den måde. Det er sikkert muligt på en-eller-anden måde at gøre et billede transparent (man kunne jo tage en pixelgrabber og simpelthen transformere hver enkelt ikke-alpha pixel til en pixel med en alpha værdi - men der findes sikkert en metode til dette, jeg kender den ikke).
Avatar billede emileej Nybegynder
07. juli 2002 - 12:03 #6
Det var jo sådan set det mit spørgsmål gik ud på... :)
Avatar billede jword Nybegynder
07. juli 2002 - 12:09 #7
Du skal skelne mellem 2 typer billeder, 1. et billede lavet via createImage og 2. et billede loaded via getImage. Min sidste kommentar var angående et billede loadet via getImage. Hvis det ikke har en alpha værdi allerede får du en del besvær med et lave det om. Omvendt, at lave et billede der har en alpha værdi, det var det først jeg svarede på.
Avatar billede emileej Nybegynder
07. juli 2002 - 12:17 #8
Hvad jeg havde håbet på var noget lingende:
minGraphics.drawImage(mitImg,0,0,this,125);
Avatar billede jword Nybegynder
07. juli 2002 - 12:17 #9
Prøv som sagt at kigge på java.awt.image.PixelGrabber. Den kan tage et billede og du kan få farven for hver enkelt pixel. Dernæst kan du konstruerer et bufferedimage og ændre hver enkelt pixel (fra pixelgrabberen) fra en farve uden alpha til en farve med alpha, og smide den ind i dit bufferedimage. Jeg har ikke prøvet det, og hvis du er relativt ny til java vil jeg nok heller ikke anbefale dig at rode med det. Hvis du skal bruge et transparent billede som du loader (gif/jpg) så lav det transparent i forvejen.
Avatar billede emileej Nybegynder
07. juli 2002 - 13:37 #10
Jeg har kun problemer med delvis transperans - ikke med transperante gif'er. Jeg har ikke arbejdet længe med Java, men til gengeld meget længe med C++ og et par år med JavaScript og PHP - desuden har jeg studeret Java grundigt det sidste år, da det var det sprog vi brugte i faget programmering i gymnasiet.
Jeg kigger på pixelgrabber...

E-)mil
Avatar billede sn0wflake Nybegynder
07. juli 2002 - 13:59 #11
PNG-billeder er IMHO det mest egnede format til semi-tranperante billeder.
Avatar billede jword Nybegynder
07. juli 2002 - 14:02 #12
Hej igen. Det var ikke min mening at 'forklejne' din erfaring. Det var mere et spørgsmål... Men du burde nok kunne finde ud af pixelgrabber. Et andet spørgsmål er så, om det er det du har brug for. Hvad det er du prøver at lave? ..... Min erfaring med pixelgrabber er, at den er rimelig tung/langsom at arbejde med.
Avatar billede jword Nybegynder
07. juli 2002 - 15:05 #13
Avatar billede emileej Nybegynder
07. juli 2002 - 16:24 #14
Hehe - det var heller ikke sådan ment - ville bare 'demonstrere' at jeg ikke har noget problem i at lære nyt inden for programmering...

Oki - her er hvad jeg vil lave:
Jeg er ved at lave et lille java spil hvor man styrer en figur rundt i en verden af tiles. Jeg vil godt lave det sådan, at man ikke kan se hele verdenen på een gang, men kun det af den der er lige rundt om figuren - resten skal fra tile til tile fade ud - altså jo længere væk fra figuren man kommer, des mere udtonet er mine tiles...

E-)mil
Avatar billede jword Nybegynder
07. juli 2002 - 16:44 #15
Men så forstår jeg ikke hvorfor du ikke kan bruge det første eksempel. Du laver en eller anden form for layered painting, altså først tegner du din verden (fuld synlig), og oven over denne har du et gennemsigtigt panel el. Kan gøres via setOpaque(false) og dernæst tegner du med en transparent farve over det panel. Det kan lettest gøres med en gradientpaint, hvor du trækker 2 farver, en der ikke er gennemsigtig og en der er fuld gennemsigtig. Så får du en flydende gennemsigtig overgang.
Avatar billede emileej Nybegynder
07. juli 2002 - 16:51 #16
Problemet er at de billeder jeg bruger til tiles ikke e firkantede, men har en trekant i hvert hjørne der er gennemsigtig (transperant gif).
Der skal jo ikke males noget på de trekanter...
Avatar billede jword Nybegynder
07. juli 2002 - 17:07 #17
Jeg fatter det ikke mere... Måske har du et eksempel... screenshot el fra noget andet.
Avatar billede emileej Nybegynder
08. juli 2002 - 08:54 #18
Har du en email? Så kan jeg sende dig et screenshot...
Avatar billede jword Nybegynder
08. juli 2002 - 09:11 #19
jups, stt@eucsj.dk
Avatar billede emileej Nybegynder
08. juli 2002 - 09:14 #20
Afsendt
Avatar billede emileej Nybegynder
29. august 2002 - 08:54 #21
Jword gav mig en løsning, hvori jeg tegnede en gradient paint (fra sort til gennemsigtig) oven på mit billede - givende den illusion af billedet fader ud.

E-)mil
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
Kategori
Kurser inden for grundlæggende programmering

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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger IT-Supporter til Svanemøllen

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Analytiker til Security Operations Center i Cyberdivisionen

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Driftstærk IT-profil til Forsvarsministeriets Materiel- og Indkøbsstyrelse

Capgemini Danmark A/S

SAP S/4HANA Business Controlling

LINK Mobility

Support Specialist