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

Referencia de la Clase IMAGEN_RGB

#include <img_rgb.h>

Diagrama de herencias de IMAGEN_RGB

Inheritance graph
[leyenda]
Diagrama de colaboración para IMAGEN_RGB:

Collaboration graph
[leyenda]
Lista de todos los miembros.

Métodos públicos

 IMAGEN_RGB ()
virtual ~IMAGEN_RGB ()
void pintar_gl (void)
void activar_gl (void)
 OJO: Debe mejorarse para implementaciones OpenGL 1.0: si no hay glBind, debe crearse y usarse una lista OpenGL...

BOOLEAN importar_gl (int x, int y, int xtam, int ytam)
 Se crea a partir de la imagen generada por OpenGL en el contexto OpenGL actual.

BOOLEAN init (int width, int height)
 OJO: Si antes tenia algo y ahora no logra armar una nueva imagen, es destructiva y queda limpia.

void elim (void)
BOOLEAN importar_ppm (FILE *fd)
 Se crea a partir de los datos en un archivo binario en formato "PPM raw".

BOOLEAN importar_sgirgb (FILE *fd)
BOOLEAN importar_pcx (FILE *fd)
BOOLEAN importar_jpeg (FILE *fd)
BOOLEAN exportar_jpeg (FILE *fd, int calidad_jpeg)
BOOLEAN importar_png (FILE *fd)
void exportar_ppm (FILE *fd)
void anx_BYTE (BYTE b)
void putpixel (int x, int y, BYTE r, BYTE g, BYTE b)
void getpixel (int x, int y, BYTE &r, BYTE &g, BYTE &b)
void linea (int x0, int y0, int x1, int y1, BYTE r, BYTE g, BYTE b)
void activar_como_contexto_gl (void)
void desactivar_como_contexto_gl (void)
BOOLEAN combinar_stereo (IMAGEN_RGB *Izq, IMAGEN_RGB *Der, int modo)
 Recibe dos imagenes, correspondientes a un par stereo de una escena 3D, y genera una nueva imagen que constituye una combinacion del par stereo.

Pixmap exportar_pixmap (Display *_display, Screen *_screen, Window _window)
XImage * exportar_ximage (Display *Mi_display)
 Cuando se ejecuta una version XWindow (i.e.

void copiar_ximage (Display *Mi_display, XImage *imagen)
 Copiado de los datos de imagen al arreglo de pixels de una estructura XImage.

void importar_win32dc (HDC dc, int xpos, int ypos, int ancho, int alto)
void exportar_win32dc (HDC dc, int xpos, int ypos)
void exportar_palm (int xpos, int ypos)
void tmp_degradecito (int tipo)
 Metodo usado para generar imagenes de prueba.

void aplicar_correccion_gamma (BYTE funcion_gamma[256])
IMAGENcopie (void)
IMAGEN_PALexportar_a_grises (PALETA *Pal)
 Crea una nueva imagen, con las mismas dimensiones de la original pero en modo paleta y con grises.


Métodos privados

XImage * crear_imagenX_depth8 (Display *Mi_display)
 Version de RGB 24 bits a Visual 8 bits Metodo privado!

XImage * crear_imagenX_depth16 (Display *Mi_display)
 Version de RGB 24 bits a Visual 16 bits Metodo privado!

XImage * crear_imagenX_depth24 (Display *Mi_display)
 Version de RGB 24 bits a Visual 24 bits Metodo privado!

void copiar_imagenX_depth8 (Display *Mi_display, XImage *imagen)
 Copiado de los datos de imagen al arreglo de pixels.

void copiar_imagenX_depth16 (Display *Mi_display, XImage *imagen)
 Copiado de los datos de imagen al arreglo de pixels.

void copiar_imagenX_depth24 (Display *Mi_display, XImage *imagen)
 Copiado de los datos de imagen `*this` al arreglo de pixels dentro de la estructura XImage de X11.


Atributos privados

PIXEL_RGBData
PIXEL_RGB ** Data
int _anx_x
int _anx_y
BYTE _anx_r
BYTE _anx_g
BYTE _anx_b
BYTE _anx_c
OSMesaContext _contexto_osmesa

Documentación del constructor y destructor

IMAGEN_RGB::IMAGEN_RGB  ) 
 

Definición en la línea 67 del archivo img_rgb.C.

References _anx_b, _anx_c, _anx_g, _anx_r, _anx_x, _anx_y, IMAGEN::con_lista, Data, IMAGEN::x_tam, y IMAGEN::y_tam.

Referenciado por copie().

IMAGEN_RGB::~IMAGEN_RGB  )  [virtual]
 

Definición en la línea 88 del archivo img_rgb.C.

References Data, y elim().

Here is the call graph for this function:


Documentación de las funciones miembro

void IMAGEN_RGB::activar_como_contexto_gl void   ) 
 

Definición en la línea 314 del archivo img_rgb.C.

References _contexto_osmesa, Data, IMAGEN::x_tam, y IMAGEN::y_tam.

void IMAGEN_RGB::activar_gl void   )  [virtual]
 

OJO: Debe mejorarse para implementaciones OpenGL 1.0: si no hay glBind, debe crearse y usarse una lista OpenGL...

Pero debe haber algo como char *version = (char *) glGetString(GL_VERSION); if (glutExtensionSupported("GL_EXT_texture_object") || strncmp(version, "1.1", 3) == 0) { HaveTexObj = GL_TRUE; } o que tal esto? #if defined(GL_VERSION_1_1) #define TEXTURE_OBJECT 1 #elif defined(GL_EXT_texture_object) #define TEXTURE_OBJECT 1 #define glBindTexture(A,B) glBindTextureEXT(A,B) #define glGenTextures(A,B) glGenTexturesEXT(A,B) #define glDeleteTextures(A,B) glDeleteTexturesEXT(A,B) #ifndef GL_REPLACE #define GL_REPLACE GL_REPLACE_EXT #endif #else #define glBindTexture(A,B) #define glGenTextures(A,B) #define glDeleteTextures(A,B) #endif

Implements IMAGEN.

Definición en la línea 246 del archivo img_rgb.C.

References IMAGEN::con_lista, Data, IMAGEN::lista_gl, IMAGEN::x_tam, y IMAGEN::y_tam.

Referenciado por CUADRICULA::pintar_nucleo_gl().

void IMAGEN_RGB::anx_BYTE BYTE  b  )  [inline]
 

Definición en la línea 124 del archivo img_rgb.h.

References _anx_b, _anx_c, _anx_g, _anx_r, _anx_x, _anx_y, putpixel(), IMAGEN::x_tam, y IMAGEN::y_tam.

Here is the call graph for this function:

void IMAGEN_RGB::aplicar_correccion_gamma BYTE  funcion_gamma[256]  ) 
 

Definición en la línea 1384 del archivo img_rgb.C.

References PIXEL_RGB::b, PIXEL_RGB::g, getpixel(), PIXEL_RGB::r, IMAGEN::x_tam, y IMAGEN::y_tam.

Referenciado por LECTOR_QUAKE_MD2::leer().

Here is the call graph for this function:

BOOLEAN IMAGEN_RGB::combinar_stereo IMAGEN_RGB Izq,
IMAGEN_RGB Der,
int  modo
 

Recibe dos imagenes, correspondientes a un par stereo de una escena 3D, y genera una nueva imagen que constituye una combinacion del par stereo.

'modo' es uno de los ENUM_MODOS_STEREO.

Definición en la línea 168 del archivo img_rgb.C.

References BYTE, getpixel(), init(), putpixel(), STEREO_INTERLACED, IMAGEN::xtam(), y IMAGEN::ytam().

Referenciado por VISOR_GEOMETRIA::pintar_gl().

Here is the call graph for this function:

void IMAGEN_RGB::copiar_imagenX_depth16 Display *  Mi_display,
XImage *  imagen
[private]
 

Copiado de los datos de imagen al arreglo de pixels.

Metodo privado!

Definición en la línea 1074 del archivo img_rgb.C.

References BYTE, Data, highbit(), IMAGEN::x_tam, y IMAGEN::y_tam.

Referenciado por copiar_ximage(), y crear_imagenX_depth16().

Here is the call graph for this function:

void IMAGEN_RGB::copiar_imagenX_depth24 Display *  Mi_display,
XImage *  imagen
[private]
 

Copiado de los datos de imagen `*this` al arreglo de pixels dentro de la estructura XImage de X11.

Metodo privado!

OJO: Este código debe revisarse en detalle para tener en cuenta el formato de la estructura XImage que requiere X11. Desde el principio de AQUYNZA (i.e. o desde NUKAK!) se había copiado un ejemplo que hacia uso del concepto de "corrimiento" y usaba una función "highbit", pero parecia no estar funcionando. Por eso se re-elaboró , pero la nueva versión no ha sido probada exhaustivamente en varias combinaciones de servidores X con diversas configuraciones. Esta funcion todavía puede estar fallando.

Definición en la línea 1109 del archivo img_rgb.C.

References PIXEL_RGB::b, Data, PIXEL_RGB::g, PIXEL_RGB::r, IMAGEN::x_tam, y IMAGEN::y_tam.

Referenciado por copiar_ximage(), y crear_imagenX_depth24().

void IMAGEN_RGB::copiar_imagenX_depth8 Display *  Mi_display,
XImage *  imagen
[private]
 

Copiado de los datos de imagen al arreglo de pixels.

Método privado!

OJO: Inicialmente se tenía un algoritmo de busqueda exhaustiva de colores por cercanía a los de una paleta que era muy ineficiente. Actualmente ese algoritmo básico se mejoró aplicando una técnica de programación dinámica, que desmejora la presición de representacion de color (al usar un subcubo del espacio RGB de solo 64^3 elementos), pero da resultados de calidad similiar en 1/20 del tiempo del algoritmo original. Sin embargo, el esquema actual puede mejorarse por un algoritmo de coloreado por combinación (dithering) de error por difusión o alguna técnica que de mejores resultados visuales. En el módulo app/convert.c de gimp (1.2.5) se tienen algoritmos de ese estilo que toman en cuenta una paleta determinada. Queda pendiente estudiar cómo tomar ventaja de algo así.

Definición en la línea 1000 del archivo img_rgb.C.

References PIXEL_RGB::b, BYTE, Data, PIXEL_RGB::g, PALETA::importe_x(), PIXEL_RGB::r, PALETA::tabla, PALETA::tam_tabla, IMAGEN::x_tam, y IMAGEN::y_tam.

Referenciado por copiar_ximage(), y crear_imagenX_depth8().

Here is the call graph for this function:

void IMAGEN_RGB::copiar_ximage Display *  Mi_display,
XImage *  imagen
 

Copiado de los datos de imagen al arreglo de pixels de una estructura XImage.

Use este metodo solo en aplicaciones que usen el "XWindow System".

Definición en la línea 969 del archivo img_rgb.C.

References copiar_imagenX_depth16(), copiar_imagenX_depth24(), y copiar_imagenX_depth8().

Referenciado por pintar_logo_motif().

Here is the call graph for this function:

IMAGEN * IMAGEN_RGB::copie void   ) 
 

Reimplementado de IMAGEN.

Definición en la línea 429 del archivo img_rgb.C.

References BYTE, getpixel(), IMAGEN_RGB(), init(), putpixel(), IMAGEN::x_tam, y IMAGEN::y_tam.

Here is the call graph for this function:

XImage * IMAGEN_RGB::crear_imagenX_depth16 Display *  Mi_display  )  [private]
 

Version de RGB 24 bits a Visual 16 bits Metodo privado!

Definición en la línea 1233 del archivo img_rgb.C.

References copiar_imagenX_depth16(), IMAGEN::x_tam, y IMAGEN::y_tam.

Referenciado por exportar_ximage().

Here is the call graph for this function:

XImage * IMAGEN_RGB::crear_imagenX_depth24 Display *  Mi_display  )  [private]
 

Version de RGB 24 bits a Visual 24 bits Metodo privado!

Definición en la línea 1257 del archivo img_rgb.C.

References copiar_imagenX_depth24(), IMAGEN::x_tam, y IMAGEN::y_tam.

Referenciado por exportar_ximage().

Here is the call graph for this function:

XImage * IMAGEN_RGB::crear_imagenX_depth8 Display *  Mi_display  )  [private]
 

Version de RGB 24 bits a Visual 8 bits Metodo privado!

OJO: Esto debe mejorarse: Se propone crear una imagen con coloreado por combinacion (dithering), usando un algoritmo de difusion de error sobre los colores de la paleta global de la aplicacion.

Definición en la línea 1205 del archivo img_rgb.C.

References copiar_imagenX_depth8(), IMAGEN::x_tam, y IMAGEN::y_tam.

Referenciado por exportar_ximage().

Here is the call graph for this function:

void IMAGEN_RGB::desactivar_como_contexto_gl void   ) 
 

Definición en la línea 329 del archivo img_rgb.C.

References _contexto_osmesa.

void IMAGEN_RGB::elim void   )  [virtual]
 

Implements IMAGEN.

Definición en la línea 146 del archivo img_rgb.C.

References Data, IMAGEN::x_tam, y IMAGEN::y_tam.

Referenciado por importar_pcx(), importar_png(), init(), y ~IMAGEN_RGB().

IMAGEN_PAL * IMAGEN_RGB::exportar_a_grises PALETA Pal  )  [virtual]
 

Crea una nueva imagen, con las mismas dimensiones de la original pero en modo paleta y con grises.

Pal no se usa, solo esta aqui por compatibilidad con las versiones de este metodo en las clases hermanas. Aqui puede usarse NULL.

Retorna la imagen, o NULL si algo sale mal.

Se asume que la imagen resultante se usara con una paleta uniforme de 256 tonos de gris que van desde negro (en su posicion 0) hasta el blanco (en su posicion 255).

OJO: ESTA RUTINA DEBE GENERALIZARSE PARA CALCULAR EL UMBRAL DE MANERAS DISTINTAS

Implements IMAGEN.

Definición en la línea 382 del archivo img_rgb.C.

References BYTE, getpixel(), IMAGEN_PAL::init(), IMAGEN::nivel_de_gris(), IMAGEN_PAL::putcolorindex(), IMAGEN::x_tam, y IMAGEN::y_tam.

Here is the call graph for this function:

BOOLEAN IMAGEN_RGB::exportar_jpeg FILE *  fd,
int  calidad_jpeg
 

Definición en la línea 913 del archivo img_rgb.C.

References BYTE, Data, IMAGEN_exportar_jpeg(), IMAGEN::x_tam, y IMAGEN::y_tam.

Here is the call graph for this function:

void IMAGEN_RGB::exportar_palm int  xpos,
int  ypos
 

Definición en la línea 1367 del archivo img_rgb.C.

References BYTE, getpixel(), PALM_putpixel(), IMAGEN::x_tam, y IMAGEN::y_tam.

Here is the call graph for this function:

Pixmap IMAGEN_RGB::exportar_pixmap Display *  _display,
Screen *  _screen,
Window  _window
 

Definición en la línea 1291 del archivo img_rgb.C.

References exportar_ximage(), IMAGEN::x_tam, y IMAGEN::y_tam.

Referenciado por GUI_SUB_BOTONERA::crear_motif(), JED_MOTIF_INTERFACE::init_extra(), y LOGO::LOGO().

Here is the call graph for this function:

void IMAGEN_RGB::exportar_ppm FILE *  fd  ) 
 

Definición en la línea 936 del archivo img_rgb.C.

References Data, IMAGEN::x_tam, y IMAGEN::y_tam.

void IMAGEN_RGB::exportar_win32dc HDC  dc,
int  xpos,
int  ypos
 

Definición en la línea 1349 del archivo img_rgb.C.

References BYTE, getpixel(), IMAGEN::x_tam, y IMAGEN::y_tam.

Here is the call graph for this function:

XImage * IMAGEN_RGB::exportar_ximage Display *  Mi_display  ) 
 

Cuando se ejecuta una version XWindow (i.e.

Motif, entornos Unix), este metodo crea una estructura de imagen con su correspondiente arreglo de Pixels. El arreglo de datos de esta imagen se copia al arreglo de pixels de la imagen X, con el debido mapeo de valores, que es dependiente del hardware grafico y de detalles como la "profundidad" (i.e. los bits por pixel usados).

Definición en la línea 1165 del archivo img_rgb.C.

References crear_imagenX_depth16(), crear_imagenX_depth24(), y crear_imagenX_depth8().

Referenciado por exportar_pixmap(), y pintar_logo_motif().

Here is the call graph for this function:

void IMAGEN_RGB::getpixel int  x,
int  y,
BYTE r,
BYTE g,
BYTE b
[inline]
 

Definición en la línea 172 del archivo img_rgb.h.

References Data, PIXEL_RGB::r, IMAGEN::x_tam, y IMAGEN::y_tam.

Referenciado por aplicar_correccion_gamma(), combinar_stereo(), copie(), exportar_a_grises(), exportar_palm(), exportar_win32dc(), CUADRICULA::extraer_sub_imagen(), y IMAGEN_RGBA::generar_con_stencil().

BOOLEAN IMAGEN_RGB::importar_gl int  x,
int  y,
int  xtam,
int  ytam
 

Se crea a partir de la imagen generada por OpenGL en el contexto OpenGL actual.

Definición en la línea 337 del archivo img_rgb.C.

References Data, init(), IMAGEN::x_tam, y IMAGEN::y_tam.

Referenciado por VISOR_GEOMETRIA::pintar_gl().

Here is the call graph for this function:

BOOLEAN IMAGEN_RGB::importar_jpeg FILE *  fd  ) 
 

Definición en la línea 834 del archivo img_rgb.C.

References BYTE, Data, IMAGEN_importar_jpeg(), putpixel(), IMAGEN::x_tam, y IMAGEN::y_tam.

Referenciado por TROZO_GL::init().

Here is the call graph for this function:

BOOLEAN IMAGEN_RGB::importar_pcx FILE *  fd  ) 
 

Definición en la línea 594 del archivo img_rgb.C.

References BYTE, Data, elim(), putpixel(), IMAGEN::x_tam, y IMAGEN::y_tam.

Referenciado por LECTOR_QUAKE_MD2::leer().

Here is the call graph for this function:

BOOLEAN IMAGEN_RGB::importar_png FILE *  fd  ) 
 

Definición en la línea 687 del archivo img_rgb.C.

References BYTE, Data, elim(), init(), y putpixel().

Here is the call graph for this function:

BOOLEAN IMAGEN_RGB::importar_ppm FILE *  fd  ) 
 

Se crea a partir de los datos en un archivo binario en formato "PPM raw".

PRE: fd esta apuntando al inicio de datos (encabezado) de un archivo con informacion en formato PPM.

Definición en la línea 464 del archivo img_rgb.C.

References PIXEL_RGB::b, BYTE, Data, PIXEL_RGB::g, init(), PIXEL_RGB::r, IMAGEN::x_tam, y IMAGEN::y_tam.

Referenciado por cargar_imagen(), GUI_SUB_BOTONERA::crear_motif(), JED_MOTIF_INTERFACE::init_extra(), y LOGO::LOGO().

Here is the call graph for this function:

BOOLEAN IMAGEN_RGB::importar_sgirgb FILE *  fd  ) 
 

Definición en la línea 557 del archivo img_rgb.C.

References BYTE, Data, LECTOR_SGIRGB::elim(), init(), LECTOR_SGIRGB::init(), LECTOR_SGIRGB::leer(), LECTOR_SGIRGB::sizeZ, LECTOR_SGIRGB::x_tam, y LECTOR_SGIRGB::y_tam.

Here is the call graph for this function:

void IMAGEN_RGB::importar_win32dc HDC  dc,
int  xpos,
int  ypos,
int  ancho,
int  alto
 

Definición en la línea 1327 del archivo img_rgb.C.

References BYTE, init(), putpixel(), IMAGEN::x_tam, y IMAGEN::y_tam.

Here is the call graph for this function:

BOOLEAN IMAGEN_RGB::init int  width,
int  height
[virtual]
 

OJO: Si antes tenia algo y ahora no logra armar una nueva imagen, es destructiva y queda limpia.

Esto no facilita operaciones de Undo.

Retorna TRUE si todo sale bien y FALSE si algo falla.

Implements IMAGEN.

Definición en la línea 95 del archivo img_rgb.C.

References _anx_b, _anx_c, _anx_g, _anx_r, _anx_x, _anx_y, Data, elim(), IMAGEN::x_tam, y IMAGEN::y_tam.

Referenciado por combinar_stereo(), CUADRICULA::copiar_textura(), copie(), importar_gl(), importar_png(), importar_ppm(), importar_sgirgb(), y importar_win32dc().

Here is the call graph for this function:

void IMAGEN_RGB::linea int  x0,
int  y0,
int  x1,
int  y1,
BYTE  r,
BYTE  g,
BYTE  b
 

Definición en la línea 1460 del archivo img_rgb.C.

References putpixel(), IMAGEN::xtam(), y IMAGEN::ytam().

Here is the call graph for this function:

void IMAGEN_RGB::pintar_gl void   )  [virtual]
 

Implements IMAGEN.

Definición en la línea 228 del archivo img_rgb.C.

References Data, IMAGEN::x_tam, y IMAGEN::y_tam.

Referenciado por VISOR_GEOMETRIA::pintar_gl().

void IMAGEN_RGB::putpixel int  x,
int  y,
BYTE  r,
BYTE  g,
BYTE  b
[inline]
 

Definición en la línea 155 del archivo img_rgb.h.

References PIXEL_RGB::b, Data, PIXEL_RGB::g, PIXEL_RGB::r, IMAGEN::x_tam, y IMAGEN::y_tam.

Referenciado por anx_BYTE(), combinar_stereo(), copie(), RAYTRACER_CRIOLLO::ejecutar(), GLOBAL_DEM::exportar_imagen(), CUADRICULA::extraer_sub_imagen(), importar_jpeg(), importar_pcx(), importar_png(), importar_win32dc(), linea(), y tmp_degradecito().

void IMAGEN_RGB::tmp_degradecito int  mtipo  ) 
 

Metodo usado para generar imagenes de prueba.

Definición en la línea 1404 del archivo img_rgb.C.

References PIXEL_RGB::b, BYTE, PIXEL_RGB::g, putpixel(), PIXEL_RGB::r, IMAGEN::x_tam, y IMAGEN::y_tam.

Here is the call graph for this function:


Documentación de los datos miembro

BYTE IMAGEN_RGB::_anx_b [private]
 

Definición en la línea 47 del archivo img_rgb.h.

Referenciado por anx_BYTE(), IMAGEN_RGB(), y init().

BYTE IMAGEN_RGB::_anx_c [private]
 

Definición en la línea 48 del archivo img_rgb.h.

Referenciado por anx_BYTE(), IMAGEN_RGB(), y init().

BYTE IMAGEN_RGB::_anx_g [private]
 

Definición en la línea 46 del archivo img_rgb.h.

Referenciado por anx_BYTE(), IMAGEN_RGB(), y init().

BYTE IMAGEN_RGB::_anx_r [private]
 

Definición en la línea 45 del archivo img_rgb.h.

Referenciado por anx_BYTE(), IMAGEN_RGB(), y init().

int IMAGEN_RGB::_anx_x [private]
 

Definición en la línea 43 del archivo img_rgb.h.

Referenciado por anx_BYTE(), IMAGEN_RGB(), y init().

int IMAGEN_RGB::_anx_y [private]
 

Definición en la línea 44 del archivo img_rgb.h.

Referenciado por anx_BYTE(), IMAGEN_RGB(), y init().

OSMesaContext IMAGEN_RGB::_contexto_osmesa [private]
 

Definición en la línea 51 del archivo img_rgb.h.

Referenciado por activar_como_contexto_gl(), y desactivar_como_contexto_gl().

PIXEL_RGB** IMAGEN_RGB::Data [private]
 

Definición en la línea 39 del archivo img_rgb.h.

PIXEL_RGB* IMAGEN_RGB::Data [private]
 

Definición en la línea 35 del archivo img_rgb.h.

Referenciado por activar_como_contexto_gl(), activar_gl(), copiar_imagenX_depth16(), copiar_imagenX_depth24(), copiar_imagenX_depth8(), elim(), exportar_jpeg(), exportar_ppm(), getpixel(), IMAGEN_RGB(), importar_gl(), importar_jpeg(), importar_pcx(), importar_png(), importar_ppm(), importar_sgirgb(), init(), pintar_gl(), putpixel(), y ~IMAGEN_RGB().


La documentación para esta clase fué generada a partir de los siguientes archivos:
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.