ImageBuff: image

image
  • Returns the image data for every pixel in the image.

Return Type: 

  • integer list [r,g,b,a]

a:

  • alpha color channel
  • Type:  integer
  • Range: 0 to 255
b:
  • blue color channel
  • Type:  integer
  • Range: 0 to 255
g:
  • green color channel
  • Type:  integer
  • Range: 0 to 255
r:
  • red color channel
  • Type:  integer
  • Range: 0 to 255
Sample Code

###################### get the image data

#import bge
import bge

# get current scene
scene = bge.logic.getCurrentScene()

# get list of objects in scene
objList = scene.objects

# get object named Painting
obj = objList["Painting"]

# get matID for the obj named Painting
# I named the material Canvas
matID = bge.texture.materialID(obj, "MACanvas")

# get the 1st texture on object named Painting
portrait = bge.texture.Texture(obj, matID)

# get the name of the image
# I'm using an image named Mona_Lisa.jpg
imageName = "Mona_Lisa.jpg"

# get image path
# Mona_Lisa.jpg is in same directory as saved blend
imagePath = bge.logic.expandPath("//" + imageName)

# get image as an ImageFFmpeg
image = bge.texture.ImageFFmpeg(imagePath)

# load image into a bgl buffer
image_buffer = bge.texture.imageToArray(image, 'RGB')

# get image size
image_size = image.size

# use ImageBuff as the source
portrait.source = bge.texture.ImageBuff()

# load the image from the buffer into ImageBuff
portrait.source.load(image_buffer, image_size[0], image_size[1])

# get the image data
data = portrait.source.image

# save as an object variable
obj["Portrait"] = portrait

# display the image
portrait.refresh(True)