37 uniform
float gradientCount;
38 uniform sampler2D image;
39 uniform sampler2D gradientStrip;
41 varying vec2 fragmentTextureCoordinate;
44 float brightness(vec3 col)
47 return 0.299*col.r + 0.587*col.g + 0.114*col.b;
52 vec4 orig = texture2D(image, fragmentTextureCoordinate);
54 float lum = brightness(orig.rgb/orig.a);
56 float gradientWidth = (1./gradientCount)/2.;
57 lum = lum * (1-gradientWidth*2) + gradientWidth;
59 vec4 color = texture2D(gradientStrip, vec2(
clamp(lum, gradientWidth, 1-gradientWidth), .5));
61 vec4 mixed =
mix(orig, color, amount);
70 unsigned char* pixels = (
unsigned char*)malloc(
sizeof(
unsigned char)*len*4);
72 for(
int i = 1; i <= len; i++)
76 pixels[n++] = (
unsigned int)(col.a*col.b*255);
77 pixels[n++] = (
unsigned int)(col.a*col.g*255);
78 pixels[n++] = (
unsigned int)(col.a*col.r*255);
79 pixels[n++] = (
unsigned int)(col.a*255);