Table des pixels d'une image
Publié : ven. 26/févr./2010 1:10
Bonjour à tous,
Est-ce qu'il y a un moyen plus rapide d'obtenir la table de pixel que celle du code ci-dessous :
Il me semble que la méthode montré plus haut (L'utilisation du tableau ImageData), bien que fonctionnelle ne soit pas classé parmi les plus rapides. Peut-être que pour le chargement ça peut toujours aller mais pour une texture procédurale, on n'est pas sorti de l'auberge.
Quelqu'un à une idée ?
Merci à l'avance.
Guimauve
Est-ce qu'il y a un moyen plus rapide d'obtenir la table de pixel que celle du code ci-dessous :
Code : Tout sélectionner
Procedure LoadOpenGLTexture(FileName.s, TransparentColor.l = -1)
img.l = LoadImage(#PB_Any, FileName)
width.l = ImageWidth(img)
height.l = ImageHeight(img)
Dim ImageData.b(width * height * 4)
StartDrawing(ImageOutput(img))
For x = 0 To height - 1
For y = 0 To width - 1
Color = Point(x,y)
ImageData(i) = Red(Color)
i+1
ImageData(i) = Green(Color)
i+1
ImageData(i) = Blue(Color)
i+1
If Color = TransparentColor
ImageData(i) = 0
Else
ImageData(i) = $FF
EndIf
i+1
Next
Next
StopDrawing()
glGenTextures_(1, @TextureID)
glBindTexture_(#GL_TEXTURE_2D, TextureID)
glTexParameteri_(#GL_TEXTURE_2D, #GL_TEXTURE_MAG_FILTER, #GL_NEAREST)
glTexParameteri_(#GL_TEXTURE_2D, #GL_TEXTURE_MIN_FILTER, #GL_NEAREST)
glTexImage2D_(#GL_TEXTURE_2D, 0, #GL_RGBA, width, height, 0, #GL_RGBA, #GL_UNSIGNED_BYTE, @ImageData())
ProcedureReturn TextureID
EndProcedure
Quelqu'un à une idée ?
Merci à l'avance.
Guimauve