12 #include <OpenGL/CGLMacro.h>
17 "title" :
"VuoImageMapColors",
38 uniform
float gradientCount;
39 uniform sampler2D image;
40 uniform sampler2D gradientStrip;
42 varying vec2 fragmentTextureCoordinate;
45 float brightness(vec3 col)
48 return 0.299*col.r + 0.587*col.g + 0.114*col.b;
53 vec4 orig = texture2D(image, fragmentTextureCoordinate);
55 float lum = brightness(orig.rgb/orig.a);
57 float gradientWidth = (1./gradientCount)/2.;
58 lum = lum * (1-gradientWidth*2) + gradientWidth;
60 vec4 color = texture2D(gradientStrip, vec2(
clamp(lum, gradientWidth, 1-gradientWidth), .5));
62 vec4 mixed =
mix(orig, color, amount);
71 unsigned char* pixels = (
unsigned char*)malloc(
sizeof(
unsigned char)*len*4);
73 for(
int i = 1; i <= len; i++)
77 pixels[n++] = (
unsigned int)(col.a*col.b*255);
78 pixels[n++] = (
unsigned int)(col.a*col.g*255);
79 pixels[n++] = (
unsigned int)(col.a*col.r*255);
80 pixels[n++] = (
unsigned int)(col.a*255);