Página principal | Jerarquía de la clase | Lista alfabética | Lista de componentes | Lista de archivos | Miembros de las clases | Archivos de los miembros | Páginas relacionadas

img_rgba.h

Ir a la documentación de este archivo.
00001 //===========================================================================
00002 //= img_rgba.h                                            Noviembre de 1999 =
00003 //=-------------------------------------------------------------------------=
00004 //= Clases de representacion y procesamiento basico de imagenes digitales   =
00005 //=-------------------------------------------------------------------------=
00006 //= ADVERTENCIA: ESTE SOFTWARE NO ESTA CONCEBIDO NI DISENNADO PARA EL USO   =
00007 //= EN EQUIPO DE CONTROL EN LINEA EN ENTORNOS PELIGROSOS QUE REQUIERAN UN   =
00008 //= DESEMPENNO LIBRE DE FALLAS, COMO LA OPERACION DE PLANTAS NUCLEARES,     = 
00009 //= SISTEMAS DE NAVEGACION O COMUNICACION EN AVIONES, TRAFICO AEREO,        =
00010 //= EQUIPO MEDICO DEL CUAL DEPENDAN VIDAS HUMANAS O SISTEMAS DE ARMAMENTO,  =
00011 //= EN LOS CUALES UNA FALLA EN EL SOFTWARE PUEDA IMPLICAR DIRECTAMENTE LA   =
00012 //= MUERTE, DANNOS PERSONALES O DANNOS FISICOS Y/O AMBIENTALES GRAVES       =
00013 //= ("ACTIVIDADES DE ALGO RIESGO").                                         =
00014 //=-------------------------------------------------------------------------=
00015 //= Autor original: Oscar J. Chavarro G.  A.K.A. JEDILINK. Copyright (c),   =
00016 //= 1997 - 2003, oscarchavarro@hotmail.com                                  =
00017 //= AQUYNZA es software libre, y se rige bajo los terminos de la licencia   =
00018 //= LGPL de GNU (http://www.gnu.org). Para mayor informacion respecto a la  =
00019 //= licencia de uso, consulte el archivo ./doc/LICENCIA en la distribucion. =
00020 //===========================================================================
00021 
00022 #include "jed_defs.h"
00023 
00024 #ifndef __JEDILINK_IMG__
00025     #error "No incluya a img_rgba.h, incluya a jed_img.h!"
00026 #endif
00027 
00028 #ifdef VEL_ROSITA
00029     #include "toolkits/media/jed_img.h"
00030 #endif
00031 
00032 class IMAGEN_RGBA : public IMAGEN {
00033   private:
00034     PIXEL_RGBA *Data;  // Arreglo dinamico de pixel's
00035 
00036   #ifdef MESA_ENABLED
00037     OSMesaContext _contexto_osmesa;
00038   #endif
00039 
00040   public:
00041     //- Metodos standard de la clase IMAGEN ---------------------------------
00042     IMAGEN_RGBA();
00043     virtual ~IMAGEN_RGBA();
00044   #ifdef GL_ENABLED
00045     void pintar_gl(void);
00046     void activar_gl(void);
00047     void activar_como_contexto_gl(void);
00048     void desactivar_como_contexto_gl(void);
00049   #endif
00050     BOOLEAN init(int width, int height);
00051     void elim(void);
00052 
00053     //- Metodos especificos de la clase IMAGEN_RGBA -------------------------
00054     BOOLEAN generar_con_stencil(IMAGEN_RGB *Origen, BYTE r, BYTE g, BYTE b);
00055     inline void putpixel(int x, int y, BYTE r, BYTE g, BYTE b, BYTE a);
00056     inline void getpixel(int x, int y, BYTE &r, BYTE &g, BYTE &b, BYTE &a);
00057     void exportar_ppm(FILE *fd);
00058 
00059 #ifdef NNN
00060 
00061     IMAGEN *copie(void);
00062 
00063     //- Procesamiento de imagenes -
00064     IMAGEN_PAL *exportar_a_grises(PALETA *Pal);
00065 
00066 #endif // NNN
00067 
00068 };
00069 
00070 //- Definicion de metodos inline de la clase IMAGEN_RGBA ---------------------
00071 
00072 inline void
00073 IMAGEN_RGBA::putpixel(int x, int y, BYTE r, BYTE g, BYTE b, BYTE a)
00074 {
00075     long int i = x_tam * (y_tam - y - 1) + x;
00076     Data[i].r = r;
00077     Data[i].g = g;
00078     Data[i].b = b;
00079     Data[i].a = a;
00080 }
00081 
00082 inline void
00083 IMAGEN_RGBA::getpixel(int x, int y, BYTE &r, BYTE &g, BYTE &b, BYTE &a)
00084 {
00085     long int i = x_tam * (y_tam - y - 1) + x;
00086     r = Data[i].r;
00087     g = Data[i].g;
00088     b = Data[i].b;
00089     a = Data[i].a;
00090 }
00091 
00092 //===========================================================================
00093 //= EOF                                                                     =
00094 //===========================================================================
00095 

Este archivo HTML ha sido generado automáticamente a partir del código fuente AQUYNZA. NO LO EDITE. Para mayor información contacte al autor.