diff options
author | Hubert Figuiere <hub@figuiere.net> | 2010-03-05 22:01:47 -0800 |
---|---|---|
committer | Hubert Figuiere <hub@figuiere.net> | 2010-03-05 22:01:47 -0800 |
commit | 91af77f1e4bac06946de99ac8b459bfceba71a44 (patch) | |
tree | 7c711d06995ed0c305316b2ebd923ce04d5f1dc6 | |
parent | 81d750df8576716a421787beea2a44141ac87aee (diff) |
- New demo ppmload to create a ppm out of the demosaicized image.
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | demo/Makefile.am | 6 | ||||
-rw-r--r-- | demo/ppmload.c | 77 |
3 files changed, 83 insertions, 1 deletions
@@ -34,6 +34,7 @@ demo/cfa demo/gdk demo/extensions demo/pixbufload +demo/ppmload lib/io/teststream test/ljpegtest test/extensions diff --git a/demo/Makefile.am b/demo/Makefile.am index bccf643..7acf016 100644 --- a/demo/Makefile.am +++ b/demo/Makefile.am @@ -4,7 +4,7 @@ if BUILD_GNOME_SUPPORT GNOME_BINARIES = gdk pixbufload endif -noinst_PROGRAMS = extensions thumb thumbc cfa ccfa $(GNOME_BINARIES) +noinst_PROGRAMS = extensions thumb thumbc cfa ccfa ppmload $(GNOME_BINARIES) INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/gnome/include \ @LIBGDKPIXBUF_CFLAGS@ @@ -40,3 +40,7 @@ gdk_LDFLAGS = -L$(top_builddir)/gnome -static pixbufload_SOURCES = pixbufload.c pixbufload_LDADD = $(LIBOPENRAWGNOME_LIBS) pixbufload_LDFLAGS = -L$(top_builddir)/gnome -static + +ppmload_SOURCES = ppmload.c +ppmload_LDADD = $(LIBOPENRAW_LIBS) +ppmload_LDFLAGS = -L$(top_builddir)/lib -static diff --git a/demo/ppmload.c b/demo/ppmload.c new file mode 100644 index 0000000..7cf118c --- /dev/null +++ b/demo/ppmload.c @@ -0,0 +1,77 @@ +/* + * libopenraw - ppmload.c + * + * Copyright (C) 2007, 2010 Hubert Figuiere + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + + + +#include <stdio.h> +#include <stdlib.h> + +#include <libopenraw/libopenraw.h> + +int +main(int argc, char **argv) +{ + const char *filename; + + if(argc < 2) { + return 1; + } + + filename = argv[1]; + + or_debug_set_level(DEBUG2); + + if(filename && *filename) { + ORRawFileRef raw_file = or_rawfile_new(filename, OR_RAWFILE_TYPE_UNKNOWN); + + if(raw_file) { + or_error err; + ORBitmapDataRef bitmapdata = or_bitmapdata_new(); + err = or_rawfile_get_rendered_image(raw_file, bitmapdata, 0); + if(err == OR_ERROR_NONE) { + uint32_t x, y; + FILE * f; + size_t size, written_size; + + or_bitmapdata_dimensions(bitmapdata, &x, &y); + printf(" --- dimensions x = %d, y = %d\n", x, y); + f = fopen("image.ppm", "wb"); + fprintf(f, "P6\n"); + fprintf(f, "%d %d\n", x - 2, y); + fprintf(f, "255\n"); + + size = or_bitmapdata_data_size(bitmapdata); + printf(" --- size = %ld\n", (long)size); + written_size = fwrite(or_bitmapdata_data(bitmapdata), 1, size, f); + if(written_size != size) { + printf("short read\n"); + } + fclose(f); + } + or_bitmapdata_release(bitmapdata); + or_rawfile_release(raw_file); + } + } + else { + printf("No input file name\n"); + } + + return 0; +} |