32 Bit ARGB Values?
BlitzMax Forums/BlitzMax Programming/32 Bit ARGB Values?
| ||
| Hello, I am having trouble understanding the 32 bit ARGB Values for pixmaps. How do I set colors? I don't know how to read the value. Can you guys tell me how? |
| ||
Yeah, you need to bit shift and mask.
pix = LoadPixmap("image.png")
argb = readpixel(pix, 0, 0)
blue = argb & 255 'this returns the bottom 8 bits
green = (argb shr 8) & 255 'this shifts the bits right 8 places then returns the bottom 8 bits
red = (argb shr 16) & 255
That might work, I'm not at the pc right now to check though. |
| ||
I find it easier to use a pointer.argb = readpixel(pix, 0, 0) argbP:byte ptr = Varptr argb blue = argbP[0] green = argbP[1] red = argbP[2] alpha = argbP[3] |
| ||
| Ok. Do you know how I would use WritePixel() with the pointers? |
| ||
| from the example: argbP just points to argb, you can write to argbP and pass it into Writepixel() argbP[0] = 255 .Writepixel(x,y,argb) |
| ||
Just to elaborate on what GW is saying (nice move with the pointers btw, I can't believe that never occurred to me):
pix = LoadPixmap("image.png")
argb = pix.Readpixel(0, 0)
argbP:byte ptr = Varptr argb
blue = argbP[0]
green = argbP[1]
red = argbP[2]
alpha = argbP[3]
argbP[0] = blue
argbP[1] = green
argbP[2] = red
argbP[3] = alpha
pix.WritePixel(x, y, argb)
|
| ||
| Ok, thanks for all of the help! |