summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Hofmann <Johannes.Hofmann@gmx.de>2006-08-01 22:40:33 +0200
committerJohannes Hofmann <Johannes.Hofmann@gmx.de>2006-08-01 22:40:33 +0200
commitd40e2b31d77face2fb65c41cc4d901f01c5de5d1 (patch)
tree860e227b50fa3e3c26415d78cdb06e405a4143cf
parent97f03d296d77284c723d9ff8485fed51dc17c32c (diff)
implement JPEGOutputImage
-rw-r--r--src/JPEGOutputImage.H25
-rw-r--r--src/Makefile.am6
-rw-r--r--src/OutputImage.H14
3 files changed, 33 insertions, 12 deletions
diff --git a/src/JPEGOutputImage.H b/src/JPEGOutputImage.H
index 23ca25c..bf1c6c1 100644
--- a/src/JPEGOutputImage.H
+++ b/src/JPEGOutputImage.H
@@ -20,21 +20,36 @@
#ifndef JPEGOUTPUTIMAGE_H
#define JPEGOUTPUTIMAGE_H
+#include <stdio.h>
+extern "C" {
+#include <jpeglib.h>
+}
+
+#include "OutputImage.H"
class JPEGOutputImage : OutputImage {
+ private:
+ unsigned char *row;
+ char *file;
+ int w, h;
+ struct jpeg_compress_struct cinfo;
+ struct jpeg_error_mgr jerr;
+ FILE *fp;
+ int quality;
+
public:
- JPEGOutputImage();
+ JPEGOutputImage(const char *file, int quality = 90);
~JPEGOutputImage();
-
- int init(int w, int h);
-
- int done();
protected:
+ int init_internal(int w, int h);
+
int set_pixel_internal(int x, char r, char g, char b);
int next_line_internal();
+
+ int done_internal();
};
#endif
diff --git a/src/Makefile.am b/src/Makefile.am
index e8b384a..466b772 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -13,7 +13,8 @@ gipfel_SOURCES = \
Fl_Search_Chooser.cxx \
choose_hill.cxx \
Stitch.cxx \
- DataImage.cxx
+ OutputImage.cxx \
+ JPEGOutputImage.cxx
noinst_HEADERS = \
GipfelWidget.H \
@@ -27,5 +28,6 @@ noinst_HEADERS = \
Fl_Search_Chooser.H \
choose_hill.H \
Stitch.H \
- DataImage.H \
+ OutputImage.H \
+ JPEGOutputImage.H \
util.h
diff --git a/src/OutputImage.H b/src/OutputImage.H
index 65aca92..9a99548 100644
--- a/src/OutputImage.H
+++ b/src/OutputImage.H
@@ -23,7 +23,7 @@
class OutputImage {
private:
- int w, h;
+ int w, h, initialized, line;
public:
OutputImage();
@@ -39,7 +39,7 @@ class OutputImage {
int done();
protected:
- virtual int init_internal(int w1, h1);
+ virtual int init_internal(int w1, int h1);
virtual int set_pixel_internal(int x, char r, char g, char b);
@@ -49,14 +49,18 @@ class OutputImage {
};
class OutputImages {
+ private:
+ OutputImage **imgs;
+ int max_imgs;
+
public:
OutputImages();
~OutputImages();
- int add(OutputImage *i);
+ int add(OutputImage *img);
- int remove(OutputImage *i);
+ int remove(OutputImage *img);
int init(int w, int h);
@@ -65,6 +69,6 @@ class OutputImages {
int next_line();
int done();
-}
+};
#endif