PF_RGB -> PF_A8 -> GL_ALPHA

BlitzMax Forums/BlitzMax Programming/PF_RGB -> PF_A8 -> GL_ALPHA

JoshK(Posted 2007) [#1]
I want to load a pixmap in any format, convert the pixels to an PF_A8 alpha map, based on pixel brightness, and then create a GL_ALPHA texture from that.

Can someone explain how this works? Thank you.


PF_RGBA8888 -> PF_A8 -> GL_ALPHA does work, BTW, so it seems the faulty step is in converting RGB888 and I8 to A8.


JoshK(Posted 2007) [#2]
Here's what you have to do. Just watch out for the following conversions that contain no alpha:
				If pixmap.format=PF_RGB888 Or pixmap.format=PF_BGR888 Or pixmap.format=PF_I8
					alphamap:TPixmap=CreatePixmap(pixmap.width,pixmap.height,PF_A8)
					For x=0 To pixmap.width-1
						For y=0 To pixmap.width-1
							color=ReadPixel(pixmap,x,y)
							r=(ReadPixel(pixmap,x,y) & %11111111)
							WritePixel alphamap,x,y,(r Shl 24)
						Next
					Next
					pixmap=alphamap
				EndIf



ImaginaryHuman(Posted 2007) [#3]
I usually take one of the channels and use it as the alpha channel. Otherwise you probably should properly do a grayscale conversion from color to grayscale and then use that as alpha.