X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libqscale.h;h=d9e18e7440ed7d8eabb768c02bd54e1e4d0e767b;hb=115192a9fe4206be3bbe897daf0e5fc3e2561fe8;hp=fed58966837880f45469584ee640ea2d0f34656a;hpb=9d3e18175a68b3ffe71bb1a68c7fba0f9624d5f1;p=qscale diff --git a/libqscale.h b/libqscale.h index fed5896..d9e18e7 100644 --- a/libqscale.h +++ b/libqscale.h @@ -13,24 +13,32 @@ typedef struct { unsigned w1, h1; unsigned w2, h2; + /* Sampling factors */ + unsigned samp_h0, samp_v0; + unsigned samp_h1, samp_v1; + unsigned samp_h2, samp_v2; + /* The data itself */ JSAMPLE *data_y, *data_cb, *data_cr; } qscale_img; enum qscale_scaling_filter { LANCZOS = 0, + MITCHELL = 1, }; enum qscale_jpeg_mode { SEQUENTIAL = 0, - PROGRESSIVE = 1 + PROGRESSIVE = 1, }; qscale_img *qscale_load_jpeg(const char *filename); qscale_img *qscale_load_jpeg_from_stdio(FILE *file); -int qscale_save_jpeg(const qscale_img *image, const char *filename, unsigned jpeg_quality, enum qscale_jpeg_mode jpeg_mode); +int qscale_save_jpeg(const qscale_img *img, const char *filename, unsigned jpeg_quality, enum qscale_jpeg_mode jpeg_mode); +int qscale_save_jpeg_to_stdio(const qscale_img *img, FILE *file, unsigned jpeg_quality, enum qscale_jpeg_mode jpeg_mode); -qscale_img *qscale_scale(qscale_img *source, 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 *image); +qscale_img *qscale_clone(const qscale_img *img); +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) */