xyzcnv

Syntax

int xyzcnv(int x, int y, int z, int m11, int m12, int m13, int m21, int m22, int m23, int m31, int m32, int m33,int d)

Arguments

x, y, z
x, y and z coordinates of the image
m11 - m33
Weights of the 3x3 pixel matix
d
Division value which usually should be m11+m12+m13+m21+m22+m23+m31+m32+m33. If you set d to zero this sum will be used automatically.

Return

Returns the convoluted value from the 3x3 matrix at the coordinates (x,y,z)

Description

Calculates a 3x3 convolution kernal. This is a substitute for the cnv() function which can't be used in the ForEveryTile handler. Currently works only with 8-bit images.

Example

%ffp

//Produces a Blur effect
ForEveryTile:
{
	int calc;

	for (y=y_start; y<y_end; y++){
		updateProgress(y,y_end);
	for (x=x_start; x<x_end; x++){
	for (z=0; z<Z; z++){ 

		calc = xyzcnv (x,y,z, 4,4,4, 4,16,4, 4,4,4, 0);
		pset(x, y, z, calc );

	}}}

	return true;
}

Also see

cnv

Comments

Everyone can add his comments about his experiences with this function here. Tips for using it are welcome, too.