grabing floatimb picz from a webcam
This commit is contained in:
58
v4l2/rgb2fimg.c
Normal file
58
v4l2/rgb2fimg.c
Normal file
@@ -0,0 +1,58 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "../floatimg.h"
|
||||
|
||||
#include "funcs.h"
|
||||
|
||||
/* --------------------------------------------------------------------- */
|
||||
int x_rgb2fimg(unsigned char *src, int w, int h, FloatImg *d)
|
||||
{
|
||||
int iter, size;
|
||||
float *rp, *gp, *bp;
|
||||
|
||||
size = w * h;
|
||||
rp = d->R, gp = d->G, bp = d->G;
|
||||
|
||||
for (iter=0; iter<size; iter++) {
|
||||
*rp++ = (float)*src++;
|
||||
*gp++ = (float)*src++;
|
||||
*bp++ = (float)*src++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
/* --------------------------------------------------------------------- */
|
||||
int x_rgb2file(unsigned char *src, int w, int h, char *fname)
|
||||
{
|
||||
FloatImg buff;
|
||||
int foo;
|
||||
|
||||
#if DEBUG_LEVEL
|
||||
fprintf(stderr, ">>> %s ( %p %d %d '%s' )\n", __func__,
|
||||
src, w, h, fname);
|
||||
#endif
|
||||
|
||||
foo = fimg_create(&buff, w, h, FIMG_TYPE_RGB);
|
||||
if (foo) {
|
||||
fprintf(stderr, "Crash on create in %s %s\n", __FILE__, __func__);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
foo = x_rgb2fimg(src, w, h, &buff);
|
||||
if (foo) {
|
||||
fprintf(stderr, "Crash on bit massage in %s %s\n", __FILE__, __func__);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
foo = fimg_dump_to_file(&buff, fname, 0);
|
||||
if (foo) {
|
||||
fprintf(stderr, "Crash on dump in %s %s\n", __FILE__, __func__);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
fimg_destroy(&buff);
|
||||
|
||||
return -1;
|
||||
}
|
||||
/* --------------------------------------------------------------------- */
|
||||
Reference in New Issue
Block a user