X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libqscale.h;h=f9853c6ab232bf431ed9458912332c0ac59cc81f;hb=78acccc81264b96a60e355cdab42e15dc84b9b07;hp=85499f335303f8ea5523104ea5eb3dc0935d6abb;hpb=64fe9070c9d3cddc8529f8f009da50fdf33ca21b;p=qscale diff --git a/libqscale.h b/libqscale.h index 85499f3..f9853c6 100644 --- a/libqscale.h +++ b/libqscale.h @@ -1,16 +1,17 @@ #ifndef _LIBQSCALE_H #define _LIBQSCALE_H +#include #include "jpeglib.h" typedef struct { /* True image size */ - int width, height; + unsigned width, height; /* Component image sizes (possibly subsampled) */ - int w0, h0; - int w1, h1; - int w2, h2; + unsigned w0, h0; + unsigned w1, h1; + unsigned w2, h2; /* The data itself */ JSAMPLE *data_y, *data_cb, *data_cr; @@ -20,10 +21,16 @@ enum qscale_scaling_filter { LANCZOS = 0, }; +enum qscale_jpeg_mode { + SEQUENTIAL = 0, + PROGRESSIVE = 1 +}; + qscale_img *qscale_load_jpeg(const char *filename); -int qscale_save_jpeg(const qscale_img *image, const char *filename); +qscale_img *qscale_load_jpeg_from_stdio(FILE *file); +int qscale_save_jpeg(const qscale_img *img, const char *filename, unsigned jpeg_quality, enum qscale_jpeg_mode jpeg_mode); -qscale_img *qscale_scale(qscale_img *source, int width, int height, int samp_h0, int samp_v0, int samp_h1, int samp_v1, int samp_h2, int samp_v2, int jpeg_quality); -void qscale_destroy(qscale_img *image); +qscale_img *qscale_scale(qscale_img *src, unsigned width, unsigned height, unsigned samp_h0, unsigned samp_v0, unsigned samp_h1, unsigned samp_v1, unsigned samp_h2, unsigned samp_v2, enum qscale_scaling_filter scaling_filter); +void qscale_destroy(qscale_img *img); #endif /* !defined(_LIBQSCALE_H) */