Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages  

conv.cpp.old

00001 /* conversion methods */
00002 
00003 #include "ccvt.h"
00004 #include "conv.h"
00005 
00006         
00007 void conv_420p_rgb96(int width,int height,void* src,void* dst)
00008 {
00009         static unsigned int oldSize = 0;
00010         static unsigned char* rgb;
00011         
00012         unsigned int size = width * height;
00013         
00014         // reallocate memory if the sizes have changed
00015         if (oldSize < size) {
00016                 delete [] rgb;
00017                 rgb = new (unsigned char)[size * 4];
00018         }
00019         
00020         // set up all the pointers
00021         unsigned char   *s = (unsigned char *)src;
00022         int             *d = (int *)dst;
00023         
00024         static unsigned int offset_U = size;
00025         static unsigned int offset_V = size + size / 4;
00026         
00027         unsigned char*  Y = s;
00028         unsigned char*  U = s + offset_U;
00029         unsigned char*  V = s + offset_V;
00030         
00031         // convert away
00032         ccvt_420p_rgb32(width, height, Y, U, V, rgb);
00033         conv_rgb32_rgb96(width, height, rgb, d);
00034 }
00035 
00036 
00037 void conv_420p_grey(int width,int height,void *src,void *dst)
00038 {
00039         unsigned char   *s = (unsigned char *)src;
00040         int             *d = (int *)dst;
00041         
00042         unsigned int size = width * height;
00043         
00044         for (unsigned int i = 0; i < size; i++) *(d++) = *(s++);
00045 }
00046 
00047 
00048 void conv_rgb24_rgb96(int width, int height, void *src, void *dst)
00049 {
00050         unsigned char** rows = (unsigned char**) src;
00051         unsigned char*  s;
00052         int*            d = (int*) dst;
00053         
00054         for (int j = 0; j < height; j++) {
00055                 s = rows[j];
00056                 
00057                 for (int i = 0; i < width; i++) {
00058                         *(d++) = *(s++);
00059                         *(d++) = *(s++);
00060                         *(d++) = *(s++);
00061                 }
00062         }
00063 }
00064 
00065 
00066 void conv_rgb32_rgb96(int width,int height,void *src,void *dst)
00067 {
00068         unsigned char   *s = (unsigned char *)src;
00069         int             *d = (int *)dst;
00070         
00071         unsigned int size = width * height;
00072 
00073         for (unsigned int i = 0; i < size; i++, s++) {
00074                 *(d++) = *(s++);
00075                 *(d++) = *(s++);
00076                 *(d++) = *(s++);
00077         }
00078 }
00079 
00080 
00081 void conv_rgb32_grey(int width,int height,void* src,void* dst)
00082 {
00083         unsigned char   *s = (unsigned char *)src;
00084         int             *d = (int *)dst;
00085         
00086         unsigned int size = width * height;
00087         
00088         for (unsigned int i = 0; i < size; i++, s++)
00089                 *(d++) = (*(s++) + *(s++) + *(s++)) / 3;
00090 }
00091 

Generated at Fri Aug 13 17:29:20 2004 for libRTImage by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001