2023-09-09 15:52:32 +03:00
|
|
|
use std, canvasfx
|
2016-05-24 15:05:46 +03:00
|
|
|
|
|
|
|
graphics = window("JavaFX Image negation demo", 400, 400)
|
2023-09-07 19:45:16 +03:00
|
|
|
imgSource = createImage("https://picsum.photos/400/200/")
|
2016-05-24 15:05:46 +03:00
|
|
|
pixels = imgSource.getPixels()
|
|
|
|
size = length(pixels)
|
|
|
|
for i = 0, i < size, i++ {
|
|
|
|
pixel = pixels[i]
|
|
|
|
r = (pixel >> 16) & 0xFF
|
|
|
|
g = (pixel >> 8) & 0xFF
|
|
|
|
b = pixel & 0xFF
|
|
|
|
r = 255 - r
|
|
|
|
g = 255 - g
|
|
|
|
b = 255 - b
|
|
|
|
pixels[i] = 0xFF000000 | (r << 16) | (g << 8) | b
|
|
|
|
}
|
|
|
|
imgNegate = createImage(imgSource.width, imgSource.height, pixels)
|
|
|
|
|
|
|
|
graphics.drawImage(imgSource, 0, 0)
|
|
|
|
graphics.drawImage(imgNegate, 0, 200)
|
|
|
|
repaint()
|