FreeImage_JPEGCrop
DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCrop(const char *src_file, const char *dst_file, int left, int top, int right, int bottom);
Realiza un recorte sin pérdida en un fichero JPEG. A la entrada, src_file es el fichero JPEG de origen y dst_file el fichero JPEG de destino. Está permitido usar el mismo fichero de origen y destino: el fichero de origen será transformado y sobrescrito.
El rectángulo definido por los parámetros (left, top, right, bottom) es normalizado primero de modo que el valor de la coordenada izquierda sea menor que el de la derecha y el valor de la coordenada superior menor que el de la inferior. A continuación, el mapa de bits retornado queda definido por una anchura mayor o igual a (right - left) y una altura mayor o igual a (bottom - top) – ver la explicación más abajo.
Parámetros
- left: especifica la posición izquierda del rectángulo de recorte.
- top: especifica la posición superior del rectángulo de recorte.
- right: especifica la posición derecha del rectángulo de recorte.
- bottom: especifica la posición inferior del rectángulo de recorte.
FreeImage_JPEGCrop funciona reorganizando los datos comprimidos (coeficientes DCT), sin decodificar nunca por completo la imagen. De este modo, la operación de recorte es sin pérdida: no hay ninguna degradación de imagen, esto puede no ser cierto si se usa FreeImage_Load seguido por FreeImage_Copy, y después FreeImage_Save para realizar la misma conversión.
Para llevar a cabo esta operación sin pérdida, sin embargo, la anchura y altura del rectángulo de recorte deben ser ajustadas de modoq ue las dimensiones de la imagen sean múltiplo del tamaño iMCU (generalmente 8 o 16 pixels), porque la función sólo puede transformar bloques completos de datos de coeficientes DCT del modo deseado. Por esto la anchura o altura de salida pueden ser algo mayores que el tamaño de la imagen requerida.