Freeimage.h

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 bitsFlagDescripción
FIF_BMPBMP_DEFAULTGuardar sin ninguna compresión
BMP_SAVE_RLEComprimir el mapa de bits usando RLE.
FIF_EXREXR_DEFAULTAhorrar datos usando la compresión half piz-based wavelet.
EXR_FLOATAhorrar datos como float en lugar de half (no recomendado).
EXR_NONEGuardar sin compresión.
EXR_ZIPGuardar con compresión zlib, en bloques de 16 líneas.
EXR_PIZGuardar con compresión piz-based wavelet.
EXR_PXR24Guardar con pérdida usando compresión float 24-bit.
EXR_B44Guardar con 44% de pérdida usando compresión float - será del 22% cuando se combine con EXR_LC.
EXR_LCGuardar imágenes con un canal de luminancia y dos de croma, en lugar de RGB (compresión con pérdida).
FIF_J2KJ2K_DEFAULTGuardar con un ratio 16:1.
Integer X in [1..512]Guardar con un ratio X:1.
FIF_JP2JP2_DEFAULTGuardar con un ratio 16:1.
Integer X in [1..512]Guardar con un ratio X:1.
FIF_JPEGJPEG_DEFAULTGuarda con buena calidad (75:1).
JPEG_QUALITYSUPERBGuarda con calida superior (100:1).
JPEG_QUALITYGOODGuarda con buena calidad (75:1).
JPEG_QUALITYNORMALGuarda con calidad normal (50:1).
JPEG_QUALITYAVERAGEGuarda con calidad media (25:1).
JPEG_QUALITYBADGuarda con poca calidad (10:1).
Integer X in [0..100]Guarda con calidad X:1.
JPEG_PROGRESSIVEGuarda como un fichero JPEG progresivo (usar | para combinar con los flags de calidad JPEG).
JPEG_SUBSAMPLING_411Guarda con submuestreo de croma alto 4x1 (4:1:1).
JPEG_SUBSAMPLING_420Guarda con submuestreo de croma medio 2x2 (4:2:0) - valor por defecto.
JPEG_SUBSAMPLING_422Guarda con submuestreo de croma bajo 2x1 (4:2:2).
JPEG_SUBSAMPLING_444Guarda sin submuestreo de croma (4:4:4).
JPEG_OPTIMIZEAl guardar, se calculan las tablas de codificación Huffman óptimas (puede reducir un pequeño tanto por ciento del tamaño del fichero).
JPEG_BASELINEGuarda un JPEG básico, sin metadatos o marcas (usar | para combinar con otros flags JPEG).
FIF_JXRJXR_DEFAULTGuarda 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_LOSSLESSGuarda sin pérdida (calidad = 100).
JXR_PROGRESSIVEGuarda un fichero JPEG-XR progresivo (usar | para combinar con flags de calidad.
FIF_PNGPNG_DEFAULTGuarda con nivel 6 de compresión ZLib y sin entrelazado.
PNG_Z_BEST_SPEEDGuarda con nivel 1 de compresión ZLib (el valor por defecto es 6).
PNG_Z_DEFAULT_COMPRESSIONGuarda con nivel 6 de compresión ZLib (valor por defecto recomendado).
PNG_Z_BEST_COMPRESSIONGuarda con nivel 9 de compresión ZLib (el valor por defecto es 6).
PNG_Z_NO_COMPRESSIONGuarda sin compresión ZLib.
PNG_INTERLACEDGuarda usando entrelazado Adam7 (usar | para combinar con otros flags).
FIF_PBM, FIF_PGM, FIF_PPMPNM_DEFAULTGuarda el mapa de bits como un fichero binario.
PNM_SAVE_RAWGuarda el mapa de bits como un fichero binario.
PNM_SAVE_ASCIIGuarda el mapa de bits como un fichero ASCII.
FIF_TIFFTIFF_DEFAULTGuarda usando compresión CCITTFAX4 para mapas de bits de 1-bit y compresión LZW para el resto.
TIFF_CMYKAlmacena etiquetas separadas CMYK (usar | para combinar con flags de compresión TIFF).
TIFF_PACKBITSGuarda usando compresión PACKBITS.
TIFF_DEFLATEGuarda usando compresión DEFLATE (también conocida como compresión ZLIB).
TIFF_ADOBE_DEFLATEGuarda usando comrpesión ADOBE DEFLATE.
TIFF_NONEGuarda sin usar compresión.
TIFF_CCITTFAX3Guarda usando codificación fax CCITT Grupo 3.
TIFF_CCITTFAX4Guarda usando codificación fax CCITT Grupo 4.
TIFF_LZWGuarda usando compresión LZW.
TIFF_JPEGGuarda usando compresión JPEG (sólo escala de grises de 8-bit y 24-bit. Por defecto LZW para otras profundidades de bits).
TIFF_LOGLUVGuarda usando compresión LogLuv (sólo disponible con imágenes RGBF) – por defecto compresión LZW.
FIF_TARGATARGA_DEFAULTGuarda sin compresión.
TARGA_SAVE_RLEGuarda con compresión RLE.
FIF_WEBPWEBP_DEFAULTGuarda 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_LOSSLESSGuarda 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.