1/* $Id: strip_rw.c,v 1.5.2.1 2010-06-08 18:50:43 bfriesen Exp $ */ 2 3/* 4 * Copyright (c) 2004, Andrey Kiselev <dron@ak4719.spb.edu> 5 * 6 * Permission to use, copy, modify, distribute, and sell this software and 7 * its documentation for any purpose is hereby granted without fee, provided 8 * that (i) the above copyright notices and this permission notice appear in 9 * all copies of the software and related documentation, and (ii) the names of 10 * Sam Leffler and Silicon Graphics may not be used in any advertising or 11 * publicity relating to the software without the specific, prior written 12 * permission of Sam Leffler and Silicon Graphics. 13 * 14 * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 15 * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 16 * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 17 * 18 * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR 19 * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, 20 * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 21 * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 22 * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 23 * OF THIS SOFTWARE. 24 */ 25 26/* 27 * TIFF Library 28 * 29 * Test libtiff input/output routines. 30 */ 31 32#include "tif_config.h" 33 34#include <stdio.h> 35 36#ifdef HAVE_UNISTD_H 37# include <unistd.h> 38#endif 39 40#include "tiffio.h" 41#include "test_arrays.h" 42 43extern int 44create_image_striped(const char *, uint32, uint32, uint32, uint16, uint16, 45 uint16, uint16, uint16, uint16, const tdata_t, 46 const tsize_t); 47extern int 48read_image_striped(const char *, uint32, uint32, uint32, uint16, uint16, 49 uint16, uint16, uint16, uint16, const tdata_t, 50 const tsize_t); 51 52const char *filename = "strip_test.tiff"; 53 54int 55main(int argc, char **argv) 56{ 57 uint32 rowsperstrip; 58 uint16 compression; 59 uint16 spp, bps, photometric, sampleformat, planarconfig; 60 61 /* 62 * Test two special cases: image consisting from single line and image 63 * consisting from single column. 64 */ 65 rowsperstrip = 1; 66 compression = COMPRESSION_NONE; 67 spp = 1; 68 bps = 8; 69 photometric = PHOTOMETRIC_MINISBLACK; 70 sampleformat = SAMPLEFORMAT_UINT; 71 planarconfig = PLANARCONFIG_CONTIG; 72 73 if (create_image_striped(filename, XSIZE * YSIZE, 1, rowsperstrip, 74 compression, spp, bps, photometric, 75 sampleformat, planarconfig, 76 (const tdata_t) byte_array1, byte_array1_size) < 0) { 77 fprintf (stderr, "Can't create TIFF file %s.\n", filename); 78 goto failure; 79 } 80 if (read_image_striped(filename, XSIZE * YSIZE, 1, rowsperstrip, 81 compression, spp, bps, photometric, 82 sampleformat, planarconfig, 83 (const tdata_t) byte_array1, byte_array1_size) < 0) { 84 fprintf (stderr, "Can't read TIFF file %s.\n", filename); 85 goto failure; 86 } 87 unlink(filename); 88 89 if (create_image_striped(filename, 1, XSIZE * YSIZE, rowsperstrip, 90 compression, spp, bps, photometric, 91 sampleformat, planarconfig, 92 (const tdata_t) byte_array1, byte_array1_size) < 0) { 93 fprintf (stderr, "Can't create TIFF file %s.\n", filename); 94 goto failure; 95 } 96 if (read_image_striped(filename, 1, XSIZE * YSIZE, rowsperstrip, 97 compression, spp, bps, photometric, 98 sampleformat, planarconfig, 99 (const tdata_t) byte_array1, byte_array1_size) < 0) { 100 fprintf (stderr, "Can't read TIFF file %s.\n", filename); 101 goto failure; 102 } 103 unlink(filename); 104 105 /* 106 * Test one-channel image with different parameters. 107 */ 108 rowsperstrip = 1; 109 spp = 1; 110 bps = 8; 111 photometric = PHOTOMETRIC_MINISBLACK; 112 sampleformat = SAMPLEFORMAT_UINT; 113 planarconfig = PLANARCONFIG_CONTIG; 114 115 if (create_image_striped(filename, XSIZE, YSIZE, rowsperstrip, 116 compression, spp, bps, photometric, 117 sampleformat, planarconfig, 118 (const tdata_t) byte_array1, byte_array1_size) < 0) { 119 fprintf (stderr, "Can't create TIFF file %s.\n", filename); 120 goto failure; 121 } 122 if (read_image_striped(filename, XSIZE, YSIZE, rowsperstrip, 123 compression, spp, bps, photometric, 124 sampleformat, planarconfig, 125 (const tdata_t) byte_array1, byte_array1_size) < 0) { 126 fprintf (stderr, "Can't read TIFF file %s.\n", filename); 127 goto failure; 128 } 129 unlink(filename); 130 131 rowsperstrip = YSIZE; 132 if (create_image_striped(filename, XSIZE, YSIZE, rowsperstrip, 133 compression, spp, bps, photometric, 134 sampleformat, planarconfig, 135 (const tdata_t) byte_array1, byte_array1_size) < 0) { 136 fprintf (stderr, "Can't create TIFF file %s.\n", filename); 137 goto failure; 138 } 139 if (read_image_striped(filename, XSIZE, YSIZE, rowsperstrip, 140 compression, spp, bps, photometric, 141 sampleformat, planarconfig, 142 (const tdata_t) byte_array1, byte_array1_size) < 0) { 143 fprintf (stderr, "Can't read TIFF file %s.\n", filename); 144 goto failure; 145 } 146 unlink(filename); 147 148 return 0; 149 150failure: 151 unlink(filename); 152 return 1; 153} 154 155/* vim: set ts=8 sts=8 sw=8 noet: */ 156/* 157 * Local Variables: 158 * mode: c 159 * c-basic-offset: 8 160 * fill-column: 78 161 * End: 162 */ 163