FreeImage_Save
DLL_API BOOL DLL_CALLCONV FreeImage_Save(FREE_IMAGE_FORMAT fif, FIBITMAP *dib, const char *filename, int flags FI_DEFAULT(0));
Esta función guarda a fichero un FIBITMAP previamente cargado. El primer parámetro define el tipo de mapa de bits a guardar. Por ejemplo, si se pasa FIF_BMP, se guardará un fichero BMP (una relación de los valores posibles para FREE_IMAGE_FORMAT están disponibles en la tabla 1). El segundo parámetro es el nombre del mapa de bits a guardar. Si el fichero ya existe, será sobreescrito. Hay que tener en cuenta que algunso plugins de guardado de mapas de bits tienen restricciones sobre los tipos de mapas de bits que pueden guardar. Por ejemplo, el plugin JPEG sólo puede guardar mapas de bits de 24 bits y de 8 bits de escalas de gris.*
El último parámetro se usa para modificar el comportamiento o habilitar alguna característica del plugin de mapa de bits. Cada plugin tiene su propio conjunto de parámetros.
* En el plugin JPEG de FreeImage, los mapas de bits con paletas de ocho bits se convierten de forma transparente a 24 bits cuando son guardados.
// this code assumes there is a bitmap loaded and // present in a variable called ‘bitmap’ if (FreeImage_Save(FIF_BMP, bitmap, “mybitmap.bmp”, 0)) { // bitmap successfully saved! }
Algunos procedimientos de guardado pueden recibir parámetros para modificar el comportamiento de guardado. Cuando el parámetro no está disponible o no se use, se puede pasar el valor 0, o <TYPE_OF_BITMAP>_DEFAULT (por ejemplo BMP_DEFAULT, ICO_DEFAULT, etc).
Tipo de mapa de bits | Flag | Descripción |
---|---|---|
FIF_BMP | BMP_DEFAULT | Guardar sin ninguna compresión |
BMP_SAVE_RLE | Comprimir el mapa de bits usando RLE. | |
FIF_EXR | EXR_DEFAULT | Ahorrar datos usando la compresión half piz-based wavelet. |
EXR_FLOAT | Ahorrar datos como float en lugar de half (no recomendado). | |
EXR_NONE | Guardar sin compresión. | |
EXR_ZIP | Guardar con compresión zlib, en bloques de 16 líneas. | |
EXR_PIZ | Guardar con compresión piz-based wavelet. | |
EXR_PXR24 | Guardar con pérdida usando compresión float 24-bit. | |
EXR_B44 | Guardar con 44% de pérdida usando compresión float - será del 22% cuando se combine con EXR_LC. | |
EXR_LC | Guardar imágenes con un canal de luminancia y dos de croma, en lugar de RGB (compresión con pérdida). | |
FIF_J2K | J2K_DEFAULT | Guardar con un ratio 16:1. |
Integer X in [1..512] | Guardar con un ratio X:1. | |
FIF_JP2 | JP2_DEFAULT | Guardar con un ratio 16:1. |
Integer X in [1..512] | Guardar con un ratio X:1. | |
FIF_JPEG | JPEG_DEFAULT | Guarda con buena calidad (75:1). |
JPEG_QUALITYSUPERB | Guarda con calida superior (100:1). | |
JPEG_QUALITYGOOD | Guarda con buena calidad (75:1). | |
JPEG_QUALITYNORMAL | Guarda con calidad normal (50:1). | |
JPEG_QUALITYAVERAGE | Guarda con calidad media (25:1). | |
JPEG_QUALITYBAD | Guarda con poca calidad (10:1). | |
Integer X in [0..100] | Guarda con calidad X:1. | |
JPEG_PROGRESSIVE | Guarda como un fichero JPEG progresivo (usar | para combinar con los flags de calidad JPEG). | |
JPEG_SUBSAMPLING_411 | Guarda con submuestreo de croma alto 4x1 (4:1:1). | |
JPEG_SUBSAMPLING_420 | Guarda con submuestreo de croma medio 2x2 (4:2:0) - valor por defecto. | |
JPEG_SUBSAMPLING_422 | Guarda con submuestreo de croma bajo 2x1 (4:2:2). | |
JPEG_SUBSAMPLING_444 | Guarda sin submuestreo de croma (4:4:4). | |
JPEG_OPTIMIZE | Al guardar, se calculan las tablas de codificación Huffman óptimas (puede reducir un pequeño tanto por ciento del tamaño del fichero). | |
JPEG_BASELINE | Guarda un JPEG básico, sin metadatos o marcas (usar | para combinar con otros flags JPEG). | |
FIF_JXR | JXR_DEFAULT | Guarda con calidad 80 y sin submuestreo de croma (4:4:4) - la calidad está entre [1..100), 100 significa compresión sin pérdida. |
Integer X in [1..100) | Guarda con calidad X:1, el submuestreo de croma se ajusta automáticamente de acuerdo con la calidad. Usar X=100 indica sin pérdida. | |
JXR_LOSSLESS | Guarda sin pérdida (calidad = 100). | |
JXR_PROGRESSIVE | Guarda un fichero JPEG-XR progresivo (usar | para combinar con flags de calidad. | |
FIF_PNG | PNG_DEFAULT | Guarda con nivel 6 de compresión ZLib y sin entrelazado. |
PNG_Z_BEST_SPEED | Guarda con nivel 1 de compresión ZLib (el valor por defecto es 6). | |
PNG_Z_DEFAULT_COMPRESSION | Guarda con nivel 6 de compresión ZLib (valor por defecto recomendado). | |
PNG_Z_BEST_COMPRESSION | Guarda con nivel 9 de compresión ZLib (el valor por defecto es 6). | |
PNG_Z_NO_COMPRESSION | Guarda sin compresión ZLib. | |
PNG_INTERLACED | Guarda usando entrelazado Adam7 (usar | para combinar con otros flags). | |
FIF_PBM, FIF_PGM, FIF_PPM | PNM_DEFAULT | Guarda el mapa de bits como un fichero binario. |
PNM_SAVE_RAW | Guarda el mapa de bits como un fichero binario. | |
PNM_SAVE_ASCII | Guarda el mapa de bits como un fichero ASCII. | |
FIF_TIFF | TIFF_DEFAULT | Guarda usando compresión CCITTFAX4 para mapas de bits de 1-bit y compresión LZW para el resto. |
TIFF_CMYK | Almacena etiquetas separadas CMYK (usar | para combinar con flags de compresión TIFF). | |
TIFF_PACKBITS | Guarda usando compresión PACKBITS. | |
TIFF_DEFLATE | Guarda usando compresión DEFLATE (también conocida como compresión ZLIB). | |
TIFF_ADOBE_DEFLATE | Guarda usando comrpesión ADOBE DEFLATE. | |
TIFF_NONE | Guarda sin usar compresión. | |
TIFF_CCITTFAX3 | Guarda usando codificación fax CCITT Grupo 3. | |
TIFF_CCITTFAX4 | Guarda usando codificación fax CCITT Grupo 4. | |
TIFF_LZW | Guarda usando compresión LZW. | |
TIFF_JPEG | Guarda usando compresión JPEG (sólo escala de grises de 8-bit y 24-bit. Por defecto LZW para otras profundidades de bits). | |
TIFF_LOGLUV | Guarda usando compresión LogLuv (sólo disponible con imágenes RGBF) – por defecto compresión LZW. | |
FIF_TARGA | TARGA_DEFAULT | Guarda sin compresión. |
TARGA_SAVE_RLE | Guarda con compresión RLE. | |
FIF_WEBP | WEBP_DEFAULT | Guarda con buena calidad (75:1). |
Integer X in [1..100] | Guarda con calidad X:1, donde X está entre be 0 (fichero más pequeño) y 100 (fichero más grande). | |
WEBP_LOSSLESS | Guarda sin pérdida. |
Tabla 4: Constantes de codificado opcionales.
Ver también FreeImage_FIFSupportsWriting para un ejemplo genérico que muestra cómo guardar una imagen.
Sintaxis
DLL_API BOOL DLL_CALLCONV FreeImage_Save(FREE_IMAGE_FORMAT fif, FIBITMAP *dib, const char *filename, int flags FI_DEFAULT(0));
Parámetros
fif: Define el tipo de mapa de bits a guardar.
dib: Puntero a mapa de bits.
filename: Nombre del fichero a guardar.
flags: Flags opcionales. (Ver FreeImage_Load).
Valor de retorno
True si el proceso se completó con éxito.