Older Newer
Sat, 02 Nov 2019 15:39:55 . . . . SyneRyder [Reformat code example to fit narrow phone and epub screens]


Changes by last author:

Added:
= ycbcr2rgb =

== Syntax ==

:int ycbcr2rgb(int y, int cb, int cr, int z)

== Arguments ==

:y

::Red value

:cb

::Green value

:cr

::Blue value

:z

::Determines which value is returned. z=0 for red, z=1 for green, z=2 for blue

== Return ==

:Returns the red, gree or blue value from 0 to 255 depending on the value of z

== Description ==

:Lets you convert YCbCr values to RGB values.

== Example ==

<code>

%ffp

ctl(0):"Y (Luminancy)",Range=(-255,255),val=0

ctl(1):"Cb (Chroma Blue)",Range=(-255,255),val=0

ctl(2):"Cr (Chroma Red)",Range=(-255,255),val=0

ForEveryTile:{

int r,g,b,i,cb,cr;

for (y = y_start; y &lt; y_end; y++) {

if (updateProgress(y,y_end)) abort();

for (x = x_start; x &lt; x_end; x++) {

r = src(x,y,0);

g = src(x,y,1);

b = src(x,y,2);

i = rgb2ycbcr(r,g,b,0);

cb = rgb2ycbcr(r,g,b,1);

cr = rgb2ycbcr(r,g,b,2);

// Do the adjustment

i = i + ctl(0);

cb = cb + ctl(1);

cr = cr + ctl(2);

pset( x, y, 0, ycbcr2rgb(i,cb,cr,0) );

pset( x, y, 1, ycbcr2rgb(i,cb,cr,1) );

pset( x, y, 2, ycbcr2rgb(i,cb,cr,2) );

}

}

return true;

}

</code>

== Also see ==

:rgb2ycbcr