]> git.sesse.net Git - qscale/blobdiff - libqscale.h
Move scaling into libqscale.
[qscale] / libqscale.h
index 85499f335303f8ea5523104ea5eb3dc0935d6abb..f9853c6ab232bf431ed9458912332c0ac59cc81f 100644 (file)
@@ -1,16 +1,17 @@
 #ifndef _LIBQSCALE_H
 #define _LIBQSCALE_H
 
+#include <stdio.h>
 #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) */