
- set the image filter
FilterBGR24():
- Switches the Red and Blue color channels. Red becomes blue. Blue becomes red.
- Creates a Bluescreen effect. Blue pixels are rendered transparent.
- Applies a custom color filter to the image.
- FilterColor().matrix
Matrix provides general color transformation filter.
Resulting color values are calculated using matrix 4×5.
Every matrix row contains parameters for one color channel calculation.
Order of rows: red, green, blue, alpha.
Parameters in row define coefficients for source color channels in same order.
- Converts image to grayscale.
- Filter for levels calculations.
- FilterLevel().levels
- Converts the images to normal maps.
- Resets the color channels. Red becomes Red. Green becomes Green. Blue becomes Blue.
- Uses the Blender 3D color sliders to set the Filter's Red, Green, Blue and Alpha channels.
- Images being mixed must be the same size (dimensions).
- ImageMix sources: ImageBuff, ImageFFmpeg, ImageMirror, ImageRender, ImageViewport and VideoFFmpeg.

###################### apply a filter
#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 name of the image
# I'm using an image named Mona_Lisa.jpg
imageName_A = "Mona_Lisa.jpg"
# get image path
# Mona_Lisa.jpg is in same directory as saved blend
imagePath_A = bge.logic.expandPath('//' + imageName_A)
# get the name of the image
# I'm using an image named Vitruvian_Man.jpg
# it has the same dimensions as Mona_Lisa.jpg
imageName_B = "Vitruvian_Man.jpg"
# get image path
# Vitruvian_Man.jpg is in same directory as saved blend
imagePath_B = bge.logic.expandPath('//' + imageName_B)
# get images
image_A = bge.texture.ImageFFmpeg(imagePath_A)
image_B = bge.texture.ImageFFmpeg(imagePath_B)
# set the texture
mix = bge.texture.Texture(obj, matID)
# get the texture image
mix.source = bge.texture.ImageMix()
# set the source for the image mix
mix.source.setSource("Mix1", image_A)
mix.source.setSource("Mix2", image_B)
# set the image weight for Mix1 and Mix2
# weights should add up to 256
mix.source.setWeight("Mix1", 100)
mix.source.setWeight("Mix2", 156)
# apply a grayscale filter
mix.source.filter = bge.texture.FilterGray()
# save mix as an object variable
obj["Mix"] = mix
# update the image
mix.refresh(True)