]> git.sesse.net Git - qscale/blobdiff - libqscale.h
Link with LD=gcc; fixes a problem with missing reference to __stack_chk_fail_local.
[qscale] / libqscale.h
index e913b9cc5687dbdf2f0f85170539727c3051f5c9..409a9bb7488366ddee5770bd38489eaddae48a2a 100644 (file)
@@ -8,29 +8,40 @@ typedef struct {
        /* True image size */
        unsigned width, height;
 
+       /* 1 = B/W, 3 = YCbCr */        
+       unsigned num_components;
+
        /* Component image sizes (possibly subsampled) */
        unsigned w0, h0;
        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, 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) */