FreeImage_Load
Esta función decodifica un mapa de bits, obtiene memoria para él y lo devuelve como un FIBITMAP. El primer parámetro define el tipo de mapa de bits a cargar. Por ejemplo, cuando es FIF_BMP, se carga un fichero BMP en memoria (un listado de posibles valores para las constantes FREE_IMAGE_FORMAT está disponible en la tabla 1). El segundo parámetro indica a FreeImage el fichero a decodificar. El último parámetro se usa para cambiar el comportamiento o activar una función sobre el mapa de bits en el plugin. Cada plugin tiene su propio conjunto de parámetros.
FIBITMAP *bitmap = FreeImage_Load(FIF_BMP, “mybitmap.bmp”, BMP_DEFAULT);
if (bitmap) {
// bitmap successfully loaded!
FreeImage_Unload(bitmap);
}
Algunos cargadores de mapas de bits pueden recibir parámetros para modificar el comportamiento de la carga. Cuando el parámetro no está disponible o no se usa se puede pasar el valor 0 ó <TYPE_OF_BITMAP>_DEFAULT (por ejemplo, BMP_DEFAULT, ICO_DEFAULT, etc).
Sintaxis
DLL_API FIBITMAP *DLL_CALLCONV FreeImage_Load(FREE_IMAGE_FORMAT fif, const char *filename, int flags FI_DEFAULT(0));
Parámetros
fif: Define el tipo de mapa de bits a cargar.
filename: Nombre del fichero a cargar.
flags: Flags opcionales.
| Tipo de mapa de bits | Flag | Descripción |
|---|---|---|
| <cualquier tipo> | FIF_LOAD_NOPIXELS | Cuando éste flag está soportado por el plugin, sólo se cargan los datos de cabecera
y posibles metadatos (incluyendo la miniatura incrustada)1 Cuando el flag no está soportado, se cargan los pixels. |
| FIF_GIF | GIF_DEFAULT | |
| GIF_LOAD256 | Carga la imagen como una imagen de 256 colores con entradas de la paleta sin usar, si es de 16 ó 2 colores. | |
| GIF_PLAYBACK | 'Reproduce' el GIF para generar cada cuadro (como) 32bpp) en lugar de retornar los datos de cuadros en bruto cuando se cargue. | |
| FIF_ICO | ICO_MAKEALPHA | Convertir a 32-bit y crear un canal alfa a partir de la máscara AND al cargar. |
| FIF_JPEG | JPEG_DEFAULT | Cargar el ficharo tan rápido como sea posible, sacrificando algo de calidad. |
| JPEG_FAST | Cargar el ficharo tan rápido como sea posible, sacrificando algo de calidad. | |
| JPEG_ACCURATE | Cargar el ficharo con la mejor calidad, sacrificando algo de velocidad. | |
| JPEG_CMYK | Este flag cargará mapas de bits CMYK como 32-bit CMYK separados (usar | para combinar con otros flags de carga). | |
| JPEG_GREYSCALE | Carga y convierte a imagen de 8 bits en escala de grises (más rápido que cargar como 24-bit y convertir a 8-bit). | |
| Entero X tal que flags = flags | (X << 16) | Carga y redimensiona el fichero tal que tamaño/X = max(ancho, alto)/X retornará una imagen escalada por 2, 4 u 8 (es decir, el tamaño requerido más apropiado).2 | |
| JPEG_EXIFROTATE | Carga y rota de acuerdo con la etiqueta Exif 'Orientation' si está disponible. | |
| FIF_JXR | JXR_DEFAULT | |
| FIF_PCD | PCD_DEFAULT | Una imagen PhotoCD viene en muchos tamaños. Este flag cargará el de tamaño 768 x 512 |
| PCD_BASE | Este flag cargará el de tamaño 768 x 512 | |
| PCD_BASEDIV4 | Este flag cargará el de tamaño 384 x 256 | |
| PCD_BASEDIV16 | Este flag cargará el de tamaño 192 x 128 | |
| FIF_PNG | PNG_IGNOREGAMMA | Evita la corrección gamma en la carga. |
| FIF_PSD | PSD_DEFAULT | Carga y convierte a RGB[A]. |
| PSD_CMYK | Lee etiquetas para CMYK separados (por defecto se convierte a RGB). | |
| PSD_LAB | Lee etiquetas para CIELab (por defecto se convierte a RGB). | |
| FIF_RAW | RAW_DEFAULT | Carga el fichero como RGB lineal de 48-bit. |
| RAW_PREVIEW | Intenta cargar la vista previa JPEG incrustada incluyendo datps Exif o por defecto a RGB 24-bit. | |
| RAW_DISPLAY | Carga el fichero como RGB 24-bit. | |
| RAW_HALFSIZE | Da como salida una imagen en color de mitad de tamaño. | |
| RAW_UNPROCESSED | Da como salida una imagen Bayer en bruo FIT_UINT16.3 | |
| FIF_TARGA | TARGA_LOAD_RGB888 | Si está activo se convierte de RGB555 y ARGB8888 -> RGB888. |
| FIF_TIFF | TIFF_CMYK | Este flag cargará mapas de bits CMYK como CMYK separados (por defecto es conversión a RGB). |
| FIF_WEBP | WEBP_DEFAULT |
Tabla 3: Constantes de decodificación opcionales.
Valor de retorno
Esta función retorna un FIBITMAP.
Observaciones
En lugar de indicar un valor fijo en el código para FREE_IMAGE_FORMAT cuando se llame a FreeImage_Load, es preferible usar una de las funciones de tipo de fichero de FreeImage, como FreeImage_GetFileType para diseñar un código más genérico, independiente de posibles cambios futuros en el API.
1 Ver FreeImage_HasPixels para ver un ejemplo de uso.
2 Ver FreeImage_MakeThumbnail para ver un ejemplo de uso.
3 Ver el modelo de metatados FIMD_COMMENTS para más información.