26 #include <fvwidgets/image_display.h> 27 #include <fvutils/color/conversions.h> 28 #include <fvutils/color/yuv.h> 55 unsigned char *yp = buffer;
56 unsigned char *up = YUV422_PLANAR_U_PLANE(buffer, 512, 512);
57 unsigned char *vp = YUV422_PLANAR_V_PLANE(buffer, 512, 512);
59 for (
int v = 255; v >= 0 ; --v) {
60 for (
int u = 0; u < 256; ++u) {
67 memcpy(yp, (yp - 512), 512);
69 memcpy(up, (up - 256), 256);
70 memcpy(vp, (vp - 256), 256);
81 if ( brightness != 255 ) {
82 if ( (brightness + val) < 255 ) {
87 printf(
"New brightness: %i\n", brightness);
96 if ( brightness != 0 ) {
97 if ( (brightness - (
int)val) > 0 ) {
102 printf(
"New brightness: %i\n", brightness);
116 unsigned char *buffer;
123 main(
int argc,
char **argv )
126 unsigned int width = 512;
127 unsigned int height = 512;
129 unsigned char *yuv_buffer = malloc_buffer(YUV422_PLANAR, width, height);
137 <<
" +--> U" << endl << endl;
140 display->
show(yuv_buffer);
142 SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);
147 if ( SDL_WaitEvent(&event) ) {
148 switch (event.type) {
153 if ( event.key.keysym.sym == SDLK_UP ) {
155 display->
show(yuv_buffer);
156 }
else if ( event.key.keysym.sym == SDLK_DOWN ) {
158 display->
show(yuv_buffer);
159 }
else if ( event.key.keysym.sym == SDLK_PAGEUP ) {
161 display->
show(yuv_buffer);
162 }
else if ( event.key.keysym.sym == SDLK_PAGEDOWN ) {
164 display->
show(yuv_buffer);
166 }
else if ( event.key.keysym.sym == SDLK_ESCAPE ) {
168 }
else if ( event.key.keysym.sym == SDLK_q ) {
173 case SDL_MOUSEBUTTONDOWN:
175 int x =
event.button.x;
176 int y =
event.button.y;
YUVSpaceDemo(unsigned char *yuv_buffer)
Constructor.
void brightness_up(unsigned int val=1)
Increase brightness.
void brightness_down(unsigned int val=1)
Decrease brightness.
int get_brightness() const
Get Brightness.
void show(colorspace_t colorspace, unsigned char *buffer)
Show image from given colorspace.