Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.
Is Jimi niets voor je?
www.fendt.com | Nikon D7100 | PS5
Dit is wel mogelijk met Java2D,
hoe precies kan ik je niet 123 zeggen,
mischien heb je hier wat aan:
http://www.apl.jhu.edu/~h...D-Tutorial-Paint-Example1
hoe precies kan ik je niet 123 zeggen,
mischien heb je hier wat aan:
http://www.apl.jhu.edu/~h...D-Tutorial-Paint-Example1
Tjerk W
Het is me inmiddels gelukt!
Er is nog een nadeel in mijn implementatie, de overloop van onzichtbaar naar zichtbaar moet een lengte hebben van 16, 32, 64, 128, 256, enz pixels omdat dan de stappen gelijkmatig blijven.
Het kleurnummer wat je terug krijgt is namelijk een 32 bits hexadecimaal getal in het volgende formaat: 0xAARRGGBB
Om het Alpha kanaal te wijzigen tel ik dus 0x01000000 daar bij op waardoor de transparantie steeds verder verloopt. Dat werkt alleen echter als de verloop ook 256 pixels lang is, anders stopt hij halfverwege. Als ik echter een meervoud van 0x01000000 doe kan ik echter ook kortere verlopen doen, door iedere keer 0x02000000 er bij op te tellen heb ik er nog maar 128 pixels nodig.
Dus als iemand nog een manier weet om ook andere lengtes te kunnen gebruiken...
En nee, de code is (nog) niet netjes. Ik ben al lang blij dat het werkt. Nu moet ik nog uitzoeken hoe je twee afbeeldingen met elkaar vergelijkt.
Er is nog een nadeel in mijn implementatie, de overloop van onzichtbaar naar zichtbaar moet een lengte hebben van 16, 32, 64, 128, 256, enz pixels omdat dan de stappen gelijkmatig blijven.
Het kleurnummer wat je terug krijgt is namelijk een 32 bits hexadecimaal getal in het volgende formaat: 0xAARRGGBB
Om het Alpha kanaal te wijzigen tel ik dus 0x01000000 daar bij op waardoor de transparantie steeds verder verloopt. Dat werkt alleen echter als de verloop ook 256 pixels lang is, anders stopt hij halfverwege. Als ik echter een meervoud van 0x01000000 doe kan ik echter ook kortere verlopen doen, door iedere keer 0x02000000 er bij op te tellen heb ik er nog maar 128 pixels nodig.
Dus als iemand nog een manier weet om ook andere lengtes te kunnen gebruiken...
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
| private BufferedImage getBlendedImage(BufferedImage image) { int imageWidth = image.getWidth(); int imageHeight = image.getHeight(); //variabel int scanWidth = 70; int factor = 1; int newScanWidth = 0; //zorg dat de fade-lengte altijd een factor2 getal is while(newScanWidth <= scanWidth) { newScanWidth = factor * 2; factor = factor * 2; } scanWidth = newScanWidth / 2; int scanHeight = imageHeight; int[] rgbArray = new int[scanWidth * scanHeight]; image.getRGB(0, 0, scanWidth, scanHeight, rgbArray, 0, scanWidth); int increment = 0x0000000; int posX = 0; int amount = 0x00000000; int amountCounter = (256 / scanWidth); //zet de hoeveelheid transparantie voor iedere stap for(int i = 0; i < amountCounter; i++) { amount += 0x01000000; } for(int i = 0; i < rgbArray.length; i++) { if(posX < scanWidth) { increment += amount; } else { increment = 0x01000000; posX = 0; } rgbArray[i] += increment; posX++; } image.setRGB(0, 0, scanWidth, scanHeight, rgbArray, 0, scanWidth); return image; } |
En nee, de code is (nog) niet netjes. Ik ben al lang blij dat het werkt. Nu moet ik nog uitzoeken hoe je twee afbeeldingen met elkaar vergelijkt.
[ Voor 4% gewijzigd door Johnny op 24-02-2005 00:59 ]
Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.
