diff options
author | Hub Figuiere <hub@figuiere.net> | 2012-01-02 13:33:56 -0800 |
---|---|---|
committer | Hub Figuiere <hub@figuiere.net> | 2012-01-02 14:14:53 -0800 |
commit | 24d0b34174898cace014dc4df1d363cddd8ebf18 (patch) | |
tree | cdc939c54a668662e09327763863475ebf269b12 /demo | |
parent | 7608d4416b4aabfb5863a7769805a2b400f4bdb0 (diff) |
mode fixes
re-indent
Diffstat (limited to 'demo')
-rw-r--r-- | demo/ccfa.c | 137 | ||||
-rw-r--r-- | demo/cfa.cpp | 119 | ||||
-rw-r--r-- | demo/extensions.cpp | 9 | ||||
-rw-r--r-- | demo/gdk.c | 59 | ||||
-rw-r--r-- | demo/pixbufload.c | 95 | ||||
-rw-r--r-- | demo/ppmload.c | 75 | ||||
-rw-r--r-- | demo/thumb.cpp | 163 | ||||
-rw-r--r-- | demo/thumbc.c | 177 |
8 files changed, 453 insertions, 381 deletions
diff --git a/demo/ccfa.c b/demo/ccfa.c index 8a2738b..0d7d955 100644 --- a/demo/ccfa.c +++ b/demo/ccfa.c @@ -32,78 +32,87 @@ int main(int argc, char** argv) { - ORRawDataRef rawdata; - or_error err; - int c; - uint32_t options; - FILE *f; - int keepCompressed = 0; - size_t written_size; - - if (argc < 2) { - fprintf(stderr, "missing parameter\n"); - return 1; - } - - do { - c = getopt(argc, argv, "r"); - if(c != -1) { - if(c == 'r') { - keepCompressed = 1; - } - } - } while(c != -1); - - options = (keepCompressed ? OR_OPTIONS_DONT_DECOMPRESS : 0); - err = or_get_extract_rawdata(argv[optind], options, - &rawdata); - - printf("data size = %ld\n", or_rawdata_data_size(rawdata)); - printf("data type = %d\n", or_rawdata_format(rawdata)); - - if(!keepCompressed && or_rawdata_format(rawdata) == OR_DATA_TYPE_CFA) { - uint32_t x, y, bpc; - or_rawdata_dimensions(rawdata, &x, &y); - bpc = or_rawdata_bpc(rawdata); - f = fopen("image.pgm", "wb"); - fprintf(f, "P5\n"); - fprintf(f, "%d %d\n", x, y); - fprintf(f, "%d\n", (1 << bpc) - 1); - } - else { - f = fopen("image.cfa", "wb"); - } - /* Convert data byte order to most significant byte first */ + ORRawDataRef rawdata; + or_error err; + int c; + uint32_t options; + FILE *f; + int keepCompressed = 0; + size_t written_size; + + if (argc < 2) { + fprintf(stderr, "missing parameter\n"); + return 1; + } + + do { + c = getopt(argc, argv, "r"); + if(c != -1) { + if(c == 'r') { + keepCompressed = 1; + } + } + } while(c != -1); + + options = (keepCompressed ? OR_OPTIONS_DONT_DECOMPRESS : 0); + err = or_get_extract_rawdata(argv[optind], options, + &rawdata); + + printf("data size = %ld\n", or_rawdata_data_size(rawdata)); + printf("data type = %d\n", or_rawdata_format(rawdata)); + + if(!keepCompressed && or_rawdata_format(rawdata) == OR_DATA_TYPE_CFA) { + uint32_t x, y, bpc; + or_rawdata_dimensions(rawdata, &x, &y); + bpc = or_rawdata_bpc(rawdata); + f = fopen("image.pgm", "wb"); + fprintf(f, "P5\n"); + fprintf(f, "%d %d\n", x, y); + fprintf(f, "%d\n", (1 << bpc) - 1); + } + else { + f = fopen("image.cfa", "wb"); + } + /* Convert data byte order to most significant byte first */ if(or_rawdata_bpc(rawdata) == 16) { - size_t size = or_rawdata_data_size(rawdata); - uint8_t* buf = (uint8_t*)malloc(size); - uint8_t* p = buf; + size_t size = or_rawdata_data_size(rawdata); + uint8_t* buf = (uint8_t*)malloc(size); + uint8_t* p = buf; uint16_t* n = (uint16_t*)or_rawdata_data(rawdata); - size_t i; - + size_t i; + for(i = 0; i < size / 2; i++) { unsigned char lo = n[i] & 0xFF; unsigned char hi = n[i] >> 8; p[i * 2] = hi; p[i * 2 + 1] = lo; } - written_size = fwrite(buf, 1, size, f); - free(buf); - if(written_size != size) { - printf("short read\n"); - } + written_size = fwrite(buf, 1, size, f); + free(buf); + if(written_size != size) { + printf("short read\n"); + } } - else { - size_t size = or_rawdata_data_size(rawdata); - written_size = fwrite(or_rawdata_data(rawdata), 1, size, f); - if(written_size != size) { - printf("short read\n"); - } - } - fclose(f); - - or_rawdata_release(rawdata); - - return 0; + else { + size_t size = or_rawdata_data_size(rawdata); + written_size = fwrite(or_rawdata_data(rawdata), 1, size, f); + if(written_size != size) { + printf("short read\n"); + } + } + fclose(f); + + or_rawdata_release(rawdata); + + return 0; } +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)) + indent-tabs-mode:nil + fill-column:80 + End: +*/ diff --git a/demo/cfa.cpp b/demo/cfa.cpp index 2f58927..a6ccae2 100644 --- a/demo/cfa.cpp +++ b/demo/cfa.cpp @@ -36,52 +36,52 @@ using boost::scoped_ptr; int main(int argc, char** argv) { - bool keepCompressed = false; - if (argc < 2) { - std::cerr << "missing parameter" << std::endl; - return 1; - } - - int c; - do { - c = getopt(argc, argv, "r"); - if(c != -1) { - if(c == 'r') { - keepCompressed = true; - } - } - } while(c != -1); - - OpenRaw::init(); - or_debug_set_level(DEBUG2); - FILE * f; - size_t written_size; - - scoped_ptr<OpenRaw::RawFile> raw_file(OpenRaw::RawFile::newRawFile(argv[optind])); - - OpenRaw::RawData rdata; - uint32_t options = (keepCompressed ? OR_OPTIONS_DONT_DECOMPRESS : 0); - raw_file->getRawData(rdata, options); - - if(keepCompressed) { - std::cout << "keep compressed" << std::endl; - } - std::cout << "data size = " << rdata.size() << std::endl; - std::cout << "data type = " << rdata.dataType() << std::endl; - - if(!keepCompressed && rdata.dataType() == OR_DATA_TYPE_CFA) { - f = fopen("image.pgm", "wb"); - fprintf(f, "P5\n"); - fprintf(f, "%d %d\n", rdata.width(), rdata.height()); - fprintf(f, "%d\n", (1 << rdata.bpc()) - 1); - } - else { - f = fopen("image.cfa", "wb"); - } + bool keepCompressed = false; + if (argc < 2) { + std::cerr << "missing parameter" << std::endl; + return 1; + } + + int c; + do { + c = getopt(argc, argv, "r"); + if(c != -1) { + if(c == 'r') { + keepCompressed = true; + } + } + } while(c != -1); + + OpenRaw::init(); + or_debug_set_level(DEBUG2); + FILE * f; + size_t written_size; + + scoped_ptr<OpenRaw::RawFile> raw_file(OpenRaw::RawFile::newRawFile(argv[optind])); + + OpenRaw::RawData rdata; + uint32_t options = (keepCompressed ? OR_OPTIONS_DONT_DECOMPRESS : 0); + raw_file->getRawData(rdata, options); + + if(keepCompressed) { + std::cout << "keep compressed" << std::endl; + } + std::cout << "data size = " << rdata.size() << std::endl; + std::cout << "data type = " << rdata.dataType() << std::endl; + + if(!keepCompressed && rdata.dataType() == OR_DATA_TYPE_CFA) { + f = fopen("image.pgm", "wb"); + fprintf(f, "P5\n"); + fprintf(f, "%d %d\n", rdata.width(), rdata.height()); + fprintf(f, "%d\n", (1 << rdata.bpc()) - 1); + } + else { + f = fopen("image.cfa", "wb"); + } // Convert data byte order to most significant byte first if(rdata.bpc() == 16) { - uint8_t* buf = (uint8_t*)malloc(rdata.size()); - uint8_t* p = buf; + uint8_t* buf = (uint8_t*)malloc(rdata.size()); + uint8_t* p = buf; uint16_t* n = reinterpret_cast<uint16_t*>(rdata.data()); for(size_t i = 0; i < rdata.size() / 2; i++) { unsigned char lo = n[i] & 0xFF; @@ -89,17 +89,26 @@ main(int argc, char** argv) p[i * 2] = hi; p[i * 2 + 1] = lo; } - written_size = fwrite(buf, 1, rdata.size(), f); - free(buf); + written_size = fwrite(buf, 1, rdata.size(), f); + free(buf); } - else { - written_size = fwrite(rdata.data(), 1, rdata.size(), f); - } - if (written_size != rdata.size()) { - printf("short write\n"); - } - fclose(f); - - return 0; + else { + written_size = fwrite(rdata.data(), 1, rdata.size(), f); + } + if (written_size != rdata.size()) { + printf("short write\n"); + } + fclose(f); + + return 0; } +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)) + indent-tabs-mode:nil + fill-column:80 + End: +*/ diff --git a/demo/extensions.cpp b/demo/extensions.cpp index 9ff116a..2c95653 100644 --- a/demo/extensions.cpp +++ b/demo/extensions.cpp @@ -38,3 +38,12 @@ int main(int /*argc*/, char ** /*argv*/) printf("No extensions found\n"); } } +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)) + indent-tabs-mode:nil + fill-column:80 + End: +*/ @@ -28,29 +28,38 @@ int main(int argc, char **argv) { - char *filename = argv[1]; - - (void)argc; - or_debug_set_level(DEBUG2); - g_type_init(); - - if(filename && *filename) - { - GdkPixbuf *pixbuf; - - pixbuf = or_gdkpixbuf_extract_rotated_thumbnail(filename, 160); - if(pixbuf) { - gdk_pixbuf_save (pixbuf, "gdk.jpg", "jpeg", NULL, - "quality", "100", NULL); - gdk_pixbuf_unref(pixbuf); - } - else { - printf("error\n"); - } - } - else { - printf("No input file name\n"); - } - - return 0; + char *filename = argv[1]; + + (void)argc; + or_debug_set_level(DEBUG2); + g_type_init(); + + if(filename && *filename) + { + GdkPixbuf *pixbuf; + + pixbuf = or_gdkpixbuf_extract_rotated_thumbnail(filename, 160); + if(pixbuf) { + gdk_pixbuf_save (pixbuf, "gdk.jpg", "jpeg", NULL, + "quality", "100", NULL); + gdk_pixbuf_unref(pixbuf); + } + else { + printf("error\n"); + } + } + else { + printf("No input file name\n"); + } + + return 0; } +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)) + indent-tabs-mode:nil + fill-column:80 + End: +*/ diff --git a/demo/pixbufload.c b/demo/pixbufload.c index 6a6440c..199405d 100644 --- a/demo/pixbufload.c +++ b/demo/pixbufload.c @@ -36,47 +36,56 @@ static void pixbuf_free(guchar * data, gpointer u) int main(int argc, char **argv) { - char *filename = argv[1]; - - (void)argc; - or_debug_set_level(DEBUG2); - g_type_init(); - - if(filename && *filename) - { - GdkPixbuf *pixbuf = NULL; - ORRawFileRef raw_file = or_rawfile_new(filename, OR_DATA_TYPE_NONE); - - 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; - x = y = 0; - or_bitmapdata_dimensions(bitmapdata, &x, &y); - pixbuf = gdk_pixbuf_new_from_data(or_bitmapdata_data(bitmapdata), - GDK_COLORSPACE_RGB, - FALSE, 8, x , y , - x * 3, - pixbuf_free, bitmapdata); - } - or_rawfile_release(raw_file); - } - - - if(pixbuf) { - gdk_pixbuf_save (pixbuf, "gdk-demosaic.jpg", "jpeg", NULL, - "quality", "100", NULL); - gdk_pixbuf_unref(pixbuf); - } - else { - printf("error\n"); - } - } - else { - printf("No input file name\n"); - } - - return 0; + char *filename = argv[1]; + + (void)argc; + or_debug_set_level(DEBUG2); + g_type_init(); + + if(filename && *filename) + { + GdkPixbuf *pixbuf = NULL; + ORRawFileRef raw_file = or_rawfile_new(filename, OR_DATA_TYPE_NONE); + + 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; + x = y = 0; + or_bitmapdata_dimensions(bitmapdata, &x, &y); + pixbuf = gdk_pixbuf_new_from_data(or_bitmapdata_data(bitmapdata), + GDK_COLORSPACE_RGB, + FALSE, 8, x , y , + x * 3, + pixbuf_free, bitmapdata); + } + or_rawfile_release(raw_file); + } + + + if(pixbuf) { + gdk_pixbuf_save (pixbuf, "gdk-demosaic.jpg", "jpeg", NULL, + "quality", "100", NULL); + gdk_pixbuf_unref(pixbuf); + } + else { + printf("error\n"); + } + } + else { + printf("No input file name\n"); + } + + return 0; } +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)) + indent-tabs-mode:nil + fill-column:80 + End: +*/ diff --git a/demo/ppmload.c b/demo/ppmload.c index cf6cf9f..36d0687 100644 --- a/demo/ppmload.c +++ b/demo/ppmload.c @@ -28,28 +28,28 @@ 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); + 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; - 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"); @@ -61,17 +61,26 @@ main(int argc, char **argv) printf(" --- size = %ld\n", (long)size); written_size = fwrite(or_bitmapdata_data(bitmapdata), 1, size, f); if(written_size != size) { - printf("short read\n"); + printf("short read\n"); } - fclose(f); - } - or_bitmapdata_release(bitmapdata); - or_rawfile_release(raw_file); - } - } - else { - printf("No input file name\n"); - } - - return 0; + fclose(f); + } + or_bitmapdata_release(bitmapdata); + or_rawfile_release(raw_file); + } + } + else { + printf("No input file name\n"); + } + + return 0; } +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)) + indent-tabs-mode:nil + fill-column:80 + End: +*/ diff --git a/demo/thumb.cpp b/demo/thumb.cpp index efe047a..4f17505 100644 --- a/demo/thumb.cpp +++ b/demo/thumb.cpp @@ -35,94 +35,103 @@ using boost::scoped_ptr; int main(int argc, char** argv) { - ::or_error err = OR_ERROR_NONE; + ::or_error err = OR_ERROR_NONE; - if (argc < 2) { - std::cerr << "missing parameter" << std::endl; - return 1; - } + if (argc < 2) { + std::cerr << "missing parameter" << std::endl; + return 1; + } - OpenRaw::init(); - or_debug_set_level(DEBUG2); - FILE * f; + OpenRaw::init(); + or_debug_set_level(DEBUG2); + FILE * f; - { - scoped_ptr<OpenRaw::RawFile> raw_file(OpenRaw::RawFile::newRawFile(argv[1])); - if(!raw_file) - { - std::cout << "Unable to open raw file.\n"; - return 1; - } - std::vector<uint32_t> list = raw_file->listThumbnailSizes(); + { + scoped_ptr<OpenRaw::RawFile> raw_file(OpenRaw::RawFile::newRawFile(argv[1])); + if(!raw_file) + { + std::cout << "Unable to open raw file.\n"; + return 1; + } + std::vector<uint32_t> list = raw_file->listThumbnailSizes(); - for(std::vector<uint32_t>::iterator i = list.begin(); - i != list.end(); ++i) - { - std::cout << "found " << *i << " pixels\n"; - } - } + for(std::vector<uint32_t>::iterator i = list.begin(); + i != list.end(); ++i) + { + std::cout << "found " << *i << " pixels\n"; + } + } - { - scoped_ptr<Thumbnail> thumb(Thumbnail::getAndExtractThumbnail(argv[1], - 160, err)); - if (thumb != NULL) { - size_t s; - std::cerr << "thumb data size =" << thumb->size() << std::endl; - std::cerr << "thumb data type =" << thumb->dataType() << std::endl; + { + scoped_ptr<Thumbnail> thumb(Thumbnail::getAndExtractThumbnail(argv[1], + 160, err)); + if (thumb != NULL) { + size_t s; + std::cerr << "thumb data size =" << thumb->size() << std::endl; + std::cerr << "thumb data type =" << thumb->dataType() << std::endl; - f = fopen("thumb.jpg", "wb"); - s = fwrite(thumb->data(), 1, thumb->size(), f); - if(s != thumb->size()) { - std::cerr << "short write of " << s << " bytes\n"; - } - fclose(f); - } - else { - std::cerr << "error = " << err << std::endl; - } - } + f = fopen("thumb.jpg", "wb"); + s = fwrite(thumb->data(), 1, thumb->size(), f); + if(s != thumb->size()) { + std::cerr << "short write of " << s << " bytes\n"; + } + fclose(f); + } + else { + std::cerr << "error = " << err << std::endl; + } + } - { - scoped_ptr<Thumbnail> thumb(Thumbnail::getAndExtractThumbnail(argv[1], - 640, err)); + { + scoped_ptr<Thumbnail> thumb(Thumbnail::getAndExtractThumbnail(argv[1], + 640, err)); - if (thumb != NULL) { - size_t s; - std::cerr << "thumb data size =" << thumb->size() << std::endl; - std::cerr << "thumb data type =" << thumb->dataType() << std::endl; + if (thumb != NULL) { + size_t s; + std::cerr << "thumb data size =" << thumb->size() << std::endl; + std::cerr << "thumb data type =" << thumb->dataType() << std::endl; - f = fopen("thumbl.jpg", "wb"); - s = fwrite(thumb->data(), 1, thumb->size(), f); - if(s != thumb->size()) { - std::cerr << "short write of " << s << " bytes\n"; - } - fclose(f); - } - else { - std::cerr << "error = " << err << std::endl; - } - } + f = fopen("thumbl.jpg", "wb"); + s = fwrite(thumb->data(), 1, thumb->size(), f); + if(s != thumb->size()) { + std::cerr << "short write of " << s << " bytes\n"; + } + fclose(f); + } + else { + std::cerr << "error = " << err << std::endl; + } + } - { - scoped_ptr<Thumbnail> thumb(Thumbnail::getAndExtractThumbnail(argv[1], - 2048, err)); - if (thumb != NULL) { - size_t s; - std::cerr << "preview data size =" << thumb->size() << std::endl; - std::cerr << "preview data type =" << thumb->dataType() << std::endl; + { + scoped_ptr<Thumbnail> thumb(Thumbnail::getAndExtractThumbnail(argv[1], + 2048, err)); + if (thumb != NULL) { + size_t s; + std::cerr << "preview data size =" << thumb->size() << std::endl; + std::cerr << "preview data type =" << thumb->dataType() << std::endl; - f = fopen("preview.jpg", "wb"); - s = fwrite(thumb->data(), 1, thumb->size(), f); - if(s != thumb->size()) { - std::cerr << "short write of " << s << " bytes\n"; - } - fclose(f); - } - else { - std::cerr << "error = " << err << std::endl; - } - } + f = fopen("preview.jpg", "wb"); + s = fwrite(thumb->data(), 1, thumb->size(), f); + if(s != thumb->size()) { + std::cerr << "short write of " << s << " bytes\n"; + } + fclose(f); + } + else { + std::cerr << "error = " << err << std::endl; + } + } - return 0; + return 0; } +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)) + indent-tabs-mode:nil + fill-column:80 + End: +*/ diff --git a/demo/thumbc.c b/demo/thumbc.c index a7a8863..288382a 100644 --- a/demo/thumbc.c +++ b/demo/thumbc.c @@ -29,88 +29,97 @@ int main(int argc, char **argv) { - char *filename; - int thumb_size = 160; - int opt; - ORThumbnailRef thumbnail = NULL; - - while ((opt = getopt(argc, argv, "s:")) != -1) { - switch(opt) { - case 's': - thumb_size = atoi(optarg); - break; - default: - break; - } - } - - if(optind >= argc) { - fprintf(stderr, "Missing filename\n"); - return 1; - } - filename = argv[optind]; - (void)argc; - - or_debug_set_level(DEBUG2); - - if(filename && *filename) - { - void *thumbnailData; - or_data_type thumbnailFormat; - size_t dataSize; - size_t writtenSize; - FILE *output; - uint32_t x, y; - or_error err; - - err = or_get_extract_thumbnail(filename, - thumb_size, &thumbnail); - - if (err == OR_ERROR_NONE) { - const char* outfname = "thumb.raw"; - thumbnailFormat = or_thumbnail_format(thumbnail); - dataSize = or_thumbnail_data_size(thumbnail); - or_thumbnail_dimensions(thumbnail, &x, &y); - - switch (thumbnailFormat) { - case OR_DATA_TYPE_JPEG: - printf("Thumbnail in JPEG format, thumb size is %u, %u\n", x, y); - outfname = "thumb.jpg"; - break; - case OR_DATA_TYPE_PIXMAP_8RGB: - printf("Thumbnail in 8RGB format, thumb size is %u, %u\n", x, y); - outfname = "thumb.ppm"; - break; - default: - printf("Thumbnail in UNKNOWN format, thumb size is %u, %u\n", x, y); - break; - } - output = fopen(outfname, "wb"); - thumbnailData = or_thumbnail_data(thumbnail); - if(thumbnailFormat == OR_DATA_TYPE_PIXMAP_8RGB) { - fprintf(output, "P6\n"); - fprintf(output, "%u\n%u\n", x, y); - fprintf(output, "%d\n", 255); - } - writtenSize = fwrite(thumbnailData, dataSize, 1, output); - if(writtenSize != dataSize) { - printf("short write\n"); - } - fclose(output); - printf("output %ld bytes in '%s'\n", dataSize, outfname); - err = or_thumbnail_release(thumbnail); - if (err != OR_ERROR_NONE) - { - printf("error release %d\n", err); - } - } - else { - printf("error %d\n", err); - } - } - else { - printf("No input file name\n"); - } - - return 0; + char *filename; + int thumb_size = 160; + int opt; + ORThumbnailRef thumbnail = NULL; + + while ((opt = getopt(argc, argv, "s:")) != -1) { + switch(opt) { + case 's': + thumb_size = atoi(optarg); + break; + default: + break; + } + } + + if(optind >= argc) { + fprintf(stderr, "Missing filename\n"); + return 1; + } + filename = argv[optind]; + (void)argc; + + or_debug_set_level(DEBUG2); + + if(filename && *filename) + { + void *thumbnailData; + or_data_type thumbnailFormat; + size_t dataSize; + size_t writtenSize; + FILE *output; + uint32_t x, y; + or_error err; + + err = or_get_extract_thumbnail(filename, + thumb_size, &thumbnail); + + if (err == OR_ERROR_NONE) { + const char* outfname = "thumb.raw"; + thumbnailFormat = or_thumbnail_format(thumbnail); + dataSize = or_thumbnail_data_size(thumbnail); + or_thumbnail_dimensions(thumbnail, &x, &y); + + switch (thumbnailFormat) { + case OR_DATA_TYPE_JPEG: + printf("Thumbnail in JPEG format, thumb size is %u, %u\n", x, y); + outfname = "thumb.jpg"; + break; + case OR_DATA_TYPE_PIXMAP_8RGB: + printf("Thumbnail in 8RGB format, thumb size is %u, %u\n", x, y); + outfname = "thumb.ppm"; + break; + default: + printf("Thumbnail in UNKNOWN format, thumb size is %u, %u\n", x, y); + break; + } + output = fopen(outfname, "wb"); + thumbnailData = or_thumbnail_data(thumbnail); + if(thumbnailFormat == OR_DATA_TYPE_PIXMAP_8RGB) { + fprintf(output, "P6\n"); + fprintf(output, "%u\n%u\n", x, y); + fprintf(output, "%d\n", 255); + } + writtenSize = fwrite(thumbnailData, dataSize, 1, output); + if(writtenSize != dataSize) { + printf("short write\n"); + } + fclose(output); + printf("output %ld bytes in '%s'\n", dataSize, outfname); + err = or_thumbnail_release(thumbnail); + if (err != OR_ERROR_NONE) + { + printf("error release %d\n", err); + } + } + else { + printf("error %d\n", err); + } + } + else { + printf("No input file name\n"); + } + + return 0; } +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)) + indent-tabs-mode:nil + fill-column:80 + End: +*/ |