mirror of
https://github.com/love2d/megasource.git
synced 2026-08-17 11:11:35 +02:00
Add tiff 4.0.3.
This commit is contained in:
@@ -0,0 +1,292 @@
|
||||
# Tag Image File Format (TIFF) Software
|
||||
#
|
||||
# Copyright (C) 2004, Andrey Kiselev <dron@ak4719.spb.edu>
|
||||
#
|
||||
# Permission to use, copy, modify, distribute, and sell this software and
|
||||
# its documentation for any purpose is hereby granted without fee, provided
|
||||
# that (i) the above copyright notices and this permission notice appear in
|
||||
# all copies of the software and related documentation, and (ii) the names of
|
||||
# Sam Leffler and Silicon Graphics may not be used in any advertising or
|
||||
# publicity relating to the software without the specific, prior written
|
||||
# permission of Sam Leffler and Silicon Graphics.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
|
||||
# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
||||
# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
#
|
||||
# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
|
||||
# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
|
||||
# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
|
||||
# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
# OF THIS SOFTWARE.
|
||||
|
||||
# Process this file with automake to produce Makefile.in.
|
||||
|
||||
AUTOMAKE_OPTIONS = 1.12 color-tests parallel-tests foreign
|
||||
|
||||
LIBTIFF = $(top_builddir)/libtiff/libtiff.la
|
||||
|
||||
# Environment parameters to be used during tests
|
||||
TESTS_ENVIRONMENT = \
|
||||
MAKE="$(MAKE)" \
|
||||
MAKEFLAGS="$(MAKEFLAGS)" \
|
||||
MEMCHECK="$(MEMCHECK)"
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(TESTSCRIPTS) \
|
||||
$(IMAGES_EXTRA_DIST) \
|
||||
common.sh
|
||||
|
||||
# All of the tests to execute via 'make check'
|
||||
TESTS = $(check_PROGRAMS) $(TESTSCRIPTS)
|
||||
|
||||
# Tests which are expected to fail
|
||||
XFAIL_TESTS =
|
||||
|
||||
# Extra files which should be cleaned by 'make clean'
|
||||
CLEANFILES = test_packbits.tif o-*
|
||||
|
||||
# Executable programs which need to be built in order to support tests
|
||||
check_PROGRAMS = ascii_tag long_tag short_tag strip_rw rewrite raw_decode custom_dir
|
||||
|
||||
# Test scripts to execute
|
||||
TESTSCRIPTS = \
|
||||
bmp2tiff_palette.sh \
|
||||
bmp2tiff_rgb.sh \
|
||||
gif2tiff.sh \
|
||||
ppm2tiff_pbm.sh \
|
||||
ppm2tiff_pgm.sh \
|
||||
ppm2tiff_ppm.sh \
|
||||
tiffcp-g3.sh \
|
||||
tiffcp-g3-1d.sh \
|
||||
tiffcp-g3-1d-fill.sh \
|
||||
tiffcp-g3-2d.sh \
|
||||
tiffcp-g3-2d-fill.sh \
|
||||
tiffcp-g4.sh \
|
||||
tiffcp-logluv.sh \
|
||||
tiffcp-thumbnail.sh \
|
||||
tiffdump.sh \
|
||||
tiffinfo.sh \
|
||||
tiffcp-split.sh \
|
||||
tiffcp-split-join.sh \
|
||||
tiff2ps-PS1.sh \
|
||||
tiff2ps-PS2.sh \
|
||||
tiff2ps-PS3.sh \
|
||||
tiff2ps-EPS1.sh \
|
||||
tiff2pdf.sh \
|
||||
tiffcrop-doubleflip-logluv-3c-16b.sh \
|
||||
tiffcrop-doubleflip-minisblack-1c-16b.sh \
|
||||
tiffcrop-doubleflip-minisblack-1c-8b.sh \
|
||||
tiffcrop-doubleflip-minisblack-2c-8b-alpha.sh \
|
||||
tiffcrop-doubleflip-miniswhite-1c-1b.sh \
|
||||
tiffcrop-doubleflip-palette-1c-1b.sh \
|
||||
tiffcrop-doubleflip-palette-1c-4b.sh \
|
||||
tiffcrop-doubleflip-palette-1c-8b.sh \
|
||||
tiffcrop-doubleflip-rgb-3c-16b.sh \
|
||||
tiffcrop-doubleflip-rgb-3c-8b.sh \
|
||||
tiffcrop-extract-logluv-3c-16b.sh \
|
||||
tiffcrop-extract-minisblack-1c-16b.sh \
|
||||
tiffcrop-extract-minisblack-1c-8b.sh \
|
||||
tiffcrop-extract-minisblack-2c-8b-alpha.sh \
|
||||
tiffcrop-extract-miniswhite-1c-1b.sh \
|
||||
tiffcrop-extract-palette-1c-1b.sh \
|
||||
tiffcrop-extract-palette-1c-4b.sh \
|
||||
tiffcrop-extract-palette-1c-8b.sh \
|
||||
tiffcrop-extract-rgb-3c-16b.sh \
|
||||
tiffcrop-extract-rgb-3c-8b.sh \
|
||||
tiffcrop-extractz14-logluv-3c-16b.sh \
|
||||
tiffcrop-extractz14-minisblack-1c-16b.sh \
|
||||
tiffcrop-extractz14-minisblack-1c-8b.sh \
|
||||
tiffcrop-extractz14-minisblack-2c-8b-alpha.sh \
|
||||
tiffcrop-extractz14-miniswhite-1c-1b.sh \
|
||||
tiffcrop-extractz14-palette-1c-1b.sh \
|
||||
tiffcrop-extractz14-palette-1c-4b.sh \
|
||||
tiffcrop-extractz14-palette-1c-8b.sh \
|
||||
tiffcrop-extractz14-rgb-3c-16b.sh \
|
||||
tiffcrop-extractz14-rgb-3c-8b.sh \
|
||||
tiffcrop-R90-logluv-3c-16b.sh \
|
||||
tiffcrop-R90-minisblack-1c-16b.sh \
|
||||
tiffcrop-R90-minisblack-1c-8b.sh \
|
||||
tiffcrop-R90-minisblack-2c-8b-alpha.sh \
|
||||
tiffcrop-R90-miniswhite-1c-1b.sh \
|
||||
tiffcrop-R90-palette-1c-1b.sh \
|
||||
tiffcrop-R90-palette-1c-4b.sh \
|
||||
tiffcrop-R90-palette-1c-8b.sh \
|
||||
tiffcrop-R90-rgb-3c-16b.sh \
|
||||
tiffcrop-R90-rgb-3c-8b.sh \
|
||||
tiff2rgba-logluv-3c-16b.sh \
|
||||
tiff2rgba-minisblack-1c-16b.sh \
|
||||
tiff2rgba-minisblack-1c-8b.sh \
|
||||
tiff2rgba-minisblack-2c-8b-alpha.sh \
|
||||
tiff2rgba-miniswhite-1c-1b.sh \
|
||||
tiff2rgba-palette-1c-1b.sh \
|
||||
tiff2rgba-palette-1c-4b.sh \
|
||||
tiff2rgba-palette-1c-8b.sh \
|
||||
tiff2rgba-rgb-3c-16b.sh \
|
||||
tiff2rgba-rgb-3c-8b.sh \
|
||||
tiff2rgba-quad-tile.jpg.sh
|
||||
|
||||
# This list should contain all of the TIFF files in the 'images'
|
||||
# subdirectory which are intended to be used as input images for
|
||||
# tests. All of these files should use the extension ".tiff".
|
||||
TIFFIMAGES = \
|
||||
images/logluv-3c-16b.tiff \
|
||||
images/minisblack-1c-16b.tiff \
|
||||
images/minisblack-1c-8b.tiff \
|
||||
images/minisblack-2c-8b-alpha.tiff \
|
||||
images/miniswhite-1c-1b.tiff \
|
||||
images/palette-1c-1b.tiff \
|
||||
images/palette-1c-4b.tiff \
|
||||
images/palette-1c-8b.tiff \
|
||||
images/rgb-3c-16b.tiff \
|
||||
images/rgb-3c-8b.tiff \
|
||||
images/quad-tile.jpg.tiff
|
||||
|
||||
BMPIMAGES = \
|
||||
images/palette-1c-8b.bmp \
|
||||
images/rgb-3c-8b.bmp
|
||||
|
||||
GIFIMAGES = \
|
||||
images/palette-1c-8b.gif
|
||||
|
||||
PNMIMAGES = \
|
||||
images/minisblack-1c-8b.pgm \
|
||||
images/miniswhite-1c-1b.pbm \
|
||||
images/rgb-3c-8b.ppm
|
||||
|
||||
# This list should include all of the files in the 'images'
|
||||
# subdirectory which are intended to be distributed. This may include
|
||||
# files which are not currently used by the tests.
|
||||
IMAGES_EXTRA_DIST = \
|
||||
images/README.txt \
|
||||
$(BMPIMAGES) \
|
||||
$(GIFIMAGES) \
|
||||
$(PNMIMAGES) \
|
||||
$(TIFFIMAGES)
|
||||
|
||||
noinst_HEADERS = tifftest.h
|
||||
|
||||
ascii_tag_SOURCES = ascii_tag.c
|
||||
ascii_tag_LDADD = $(LIBTIFF)
|
||||
long_tag_SOURCES = long_tag.c check_tag.c
|
||||
long_tag_LDADD = $(LIBTIFF)
|
||||
short_tag_SOURCES = short_tag.c check_tag.c
|
||||
short_tag_LDADD = $(LIBTIFF)
|
||||
strip_rw_SOURCES = strip_rw.c strip.c test_arrays.c test_arrays.h
|
||||
strip_rw_LDADD = $(LIBTIFF)
|
||||
rewrite_SOURCES = rewrite_tag.c
|
||||
rewrite_LDADD = $(LIBTIFF)
|
||||
raw_decode_SOURCES = raw_decode.c
|
||||
raw_decode_LDADD = $(LIBTIFF)
|
||||
custom_dir_SOURCES = custom_dir.c
|
||||
custom_dir_LDADD = $(LIBTIFF)
|
||||
|
||||
AM_CPPFLAGS = -I$(top_srcdir)/libtiff
|
||||
|
||||
# memcheck: valgrind's memory access checker
|
||||
memcheck:
|
||||
$(MAKE) MEMCHECK='valgrind --tool=memcheck --leak-check=full --read-var-info=yes --track-origins=yes --num-callers=12 --quiet $(VALGRIND_EXTRA_OPTS)' check
|
||||
|
||||
# ptrcheck: valgrind's experimental pointer checking tool.
|
||||
ptrcheck:
|
||||
$(MAKE) MEMCHECK='valgrind --tool=exp-ptrcheck --quiet $(VALGRIND_EXTRA_OPTS)' check
|
||||
|
||||
generate-tiff2rgba-tests:
|
||||
for file in $(TIFFIMAGES) ; \
|
||||
do \
|
||||
base=`basename $$file .tiff` ; \
|
||||
testscript=$(srcdir)/tiff2rgba-$$base.sh ; \
|
||||
( \
|
||||
echo "#!/bin/sh" ; \
|
||||
echo "# Generated file, master is Makefile.am" ; \
|
||||
echo ". \$${srcdir:-.}/common.sh" ; \
|
||||
echo "infile=\"\$$srcdir/$$file\"" ; \
|
||||
echo "outfile=\"o-tiff2rgba-$$base.tiff\"" ; \
|
||||
echo "f_test_convert \"\$$TIFF2RGBA\" \$$infile \$$outfile" ; \
|
||||
echo "f_tiffinfo_validate \$$outfile" ; \
|
||||
) > $$testscript ; \
|
||||
chmod +x $$testscript ; \
|
||||
done
|
||||
|
||||
# Test rotations
|
||||
generate-tiffcrop-R90-tests:
|
||||
for file in $(TIFFIMAGES) ; \
|
||||
do \
|
||||
base=`basename $$file .tiff` ; \
|
||||
testscript=$(srcdir)/tiffcrop-R90-$$base.sh ; \
|
||||
( \
|
||||
echo "#!/bin/sh" ; \
|
||||
echo "# Generated file, master is Makefile.am" ; \
|
||||
echo ". \$${srcdir:-.}/common.sh" ; \
|
||||
echo "infile=\"\$$srcdir/$$file\"" ; \
|
||||
echo "outfile=\"o-tiffcrop-R90-$$base.tiff\"" ; \
|
||||
echo "f_test_convert \"\$$TIFFCROP -R90\" \$$infile \$$outfile" ; \
|
||||
echo "f_tiffinfo_validate \$$outfile" ; \
|
||||
) > $$testscript ; \
|
||||
chmod +x $$testscript ; \
|
||||
done
|
||||
|
||||
# Test flip (mirror)
|
||||
generate-tiffcrop-doubleflip-tests:
|
||||
for file in $(TIFFIMAGES) ; \
|
||||
do \
|
||||
base=`basename $$file .tiff` ; \
|
||||
testscript=$(srcdir)/tiffcrop-doubleflip-$$base.sh ; \
|
||||
( \
|
||||
echo "#!/bin/sh" ; \
|
||||
echo "# Generated file, master is Makefile.am" ; \
|
||||
echo ". \$${srcdir:-.}/common.sh" ; \
|
||||
echo "infile=\"\$$srcdir/$$file\"" ; \
|
||||
echo "outfile=\"o-tiffcrop-doubleflip-$$base.tiff\"" ; \
|
||||
echo "f_test_convert \"\$$TIFFCROP -F both\" \$$infile \$$outfile" ; \
|
||||
echo "f_tiffinfo_validate \$$outfile" ; \
|
||||
) > $$testscript ; \
|
||||
chmod +x $$testscript ; \
|
||||
done
|
||||
|
||||
# Test extracting a section 100 pixels wide and 100 pixels high
|
||||
generate-tiffcrop-extract-tests:
|
||||
for file in $(TIFFIMAGES) ; \
|
||||
do \
|
||||
base=`basename $$file .tiff` ; \
|
||||
testscript=$(srcdir)/tiffcrop-extract-$$base.sh ; \
|
||||
( \
|
||||
echo "#!/bin/sh" ; \
|
||||
echo "# Generated file, master is Makefile.am" ; \
|
||||
echo ". \$${srcdir:-.}/common.sh" ; \
|
||||
echo "infile=\"\$$srcdir/$$file\"" ; \
|
||||
echo "outfile=\"o-tiffcrop-extract-$$base.tiff\"" ; \
|
||||
echo "f_test_convert \"\$$TIFFCROP -U px -E top -X 60 -Y 60\" \$$infile \$$outfile" ; \
|
||||
echo "f_tiffinfo_validate \$$outfile" ; \
|
||||
) > $$testscript ; \
|
||||
chmod +x $$testscript ; \
|
||||
done
|
||||
|
||||
# Test extracting the first and fourth quarters from the left side.
|
||||
generate-tiffcrop-extractz14-tests:
|
||||
for file in $(TIFFIMAGES) ; \
|
||||
do \
|
||||
base=`basename $$file .tiff` ; \
|
||||
testscript=$(srcdir)/tiffcrop-extractz14-$$base.sh ; \
|
||||
( \
|
||||
echo "#!/bin/sh" ; \
|
||||
echo "# Generated file, master is Makefile.am" ; \
|
||||
echo ". \$${srcdir:-.}/common.sh" ; \
|
||||
echo "infile=\"\$$srcdir/$$file\"" ; \
|
||||
echo "outfile=\"o-tiffcrop-extractz14-$$base.tiff\"" ; \
|
||||
echo "f_test_convert \"\$$TIFFCROP -E left -Z1:4,2:4\" \$$infile \$$outfile" ; \
|
||||
echo "f_tiffinfo_validate \$$outfile" ; \
|
||||
) > $$testscript ; \
|
||||
chmod +x $$testscript ; \
|
||||
done
|
||||
|
||||
generate-tiffcrop-tests: \
|
||||
generate-tiffcrop-R90-tests \
|
||||
generate-tiffcrop-doubleflip-tests \
|
||||
generate-tiffcrop-extract-tests \
|
||||
generate-tiffcrop-extractz14-tests
|
||||
|
||||
generate-tests: \
|
||||
generate-tiff2rgba-tests \
|
||||
generate-tiffcrop-tests
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,177 @@
|
||||
/* $Id: ascii_tag.c,v 1.7 2008/04/15 13:32:12 dron Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2004, Andrey Kiselev <dron@ak4719.spb.edu>
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and
|
||||
* its documentation for any purpose is hereby granted without fee, provided
|
||||
* that (i) the above copyright notices and this permission notice appear in
|
||||
* all copies of the software and related documentation, and (ii) the names of
|
||||
* Sam Leffler and Silicon Graphics may not be used in any advertising or
|
||||
* publicity relating to the software without the specific, prior written
|
||||
* permission of Sam Leffler and Silicon Graphics.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
||||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
|
||||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
|
||||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
|
||||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
* OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* TIFF Library
|
||||
*
|
||||
* Module to test ASCII tags read/write functions.
|
||||
*/
|
||||
|
||||
#include "tif_config.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include "tiffio.h"
|
||||
|
||||
static const char filename[] = "ascii_test.tiff";
|
||||
|
||||
static const struct {
|
||||
ttag_t tag;
|
||||
const char *value;
|
||||
} ascii_tags[] = {
|
||||
{ TIFFTAG_DOCUMENTNAME, "Test TIFF image" },
|
||||
{ TIFFTAG_IMAGEDESCRIPTION, "Temporary test image" },
|
||||
{ TIFFTAG_MAKE, "This is not scanned image" },
|
||||
{ TIFFTAG_MODEL, "No scanner" },
|
||||
{ TIFFTAG_PAGENAME, "Test page" },
|
||||
{ TIFFTAG_SOFTWARE, "Libtiff library" },
|
||||
{ TIFFTAG_DATETIME, "2004:09:10 16:09:00" },
|
||||
{ TIFFTAG_ARTIST, "Andrey V. Kiselev" },
|
||||
{ TIFFTAG_HOSTCOMPUTER, "Debian GNU/Linux (Sarge)" },
|
||||
{ TIFFTAG_TARGETPRINTER, "No printer" },
|
||||
{ TIFFTAG_COPYRIGHT, "Copyright (c) 2004, Andrey Kiselev" },
|
||||
{ TIFFTAG_FAXSUBADDRESS, "Fax subaddress" },
|
||||
/* DGN tags */
|
||||
{ TIFFTAG_UNIQUECAMERAMODEL, "No camera" },
|
||||
{ TIFFTAG_CAMERASERIALNUMBER, "1234567890" }
|
||||
};
|
||||
#define NTAGS (sizeof (ascii_tags) / sizeof (ascii_tags[0]))
|
||||
|
||||
static const char ink_names[] = "Red\0Green\0Blue";
|
||||
const int ink_names_size = 15;
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
TIFF *tif;
|
||||
size_t i;
|
||||
unsigned char buf[] = { 0, 127, 255 };
|
||||
char *value;
|
||||
|
||||
/* Test whether we can write tags. */
|
||||
tif = TIFFOpen(filename, "w");
|
||||
if (!tif) {
|
||||
fprintf (stderr, "Can't create test TIFF file %s.\n", filename);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!TIFFSetField(tif, TIFFTAG_IMAGEWIDTH, 1)) {
|
||||
fprintf (stderr, "Can't set ImageWidth tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_IMAGELENGTH, 1)) {
|
||||
fprintf (stderr, "Can't set ImageLength tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 8)) {
|
||||
fprintf (stderr, "Can't set BitsPerSample tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, sizeof(buf))) {
|
||||
fprintf (stderr, "Can't set SamplesPerPixel tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG)) {
|
||||
fprintf (stderr, "Can't set PlanarConfiguration tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB)) {
|
||||
fprintf (stderr, "Can't set PhotometricInterpretation tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
for (i = 0; i < NTAGS; i++) {
|
||||
if (!TIFFSetField(tif, ascii_tags[i].tag,
|
||||
ascii_tags[i].value)) {
|
||||
fprintf(stderr, "Can't set tag %lu.\n",
|
||||
(unsigned long)ascii_tags[i].tag);
|
||||
goto failure;
|
||||
}
|
||||
}
|
||||
|
||||
/* InkNames tag has special form, so we handle it separately. */
|
||||
if (!TIFFSetField(tif, TIFFTAG_NUMBEROFINKS, 3)) {
|
||||
fprintf (stderr, "Can't set tag %d (NUMBEROFINKS).\n",
|
||||
TIFFTAG_NUMBEROFINKS);
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_INKNAMES, ink_names_size, ink_names)) {
|
||||
fprintf (stderr, "Can't set tag %d (INKNAMES).\n",
|
||||
TIFFTAG_INKNAMES);
|
||||
goto failure;
|
||||
}
|
||||
|
||||
/* Write dummy pixel data. */
|
||||
if (!TIFFWriteScanline(tif, buf, 0, 0) < 0) {
|
||||
fprintf (stderr, "Can't write image data.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
TIFFClose(tif);
|
||||
|
||||
/* Ok, now test whether we can read written values. */
|
||||
tif = TIFFOpen(filename, "r");
|
||||
if (!tif) {
|
||||
fprintf (stderr, "Can't open test TIFF file %s.\n", filename);
|
||||
return 1;
|
||||
}
|
||||
|
||||
for (i = 0; i < NTAGS; i++) {
|
||||
if (!TIFFGetField(tif, ascii_tags[i].tag, &value)
|
||||
|| strcmp(value, ascii_tags[i].value)) {
|
||||
fprintf(stderr, "Can't get tag %lu.\n",
|
||||
(unsigned long)ascii_tags[i].tag);
|
||||
goto failure;
|
||||
}
|
||||
}
|
||||
|
||||
if (!TIFFGetField(tif, TIFFTAG_INKNAMES, &value)
|
||||
|| memcmp(value, ink_names, ink_names_size)) {
|
||||
fprintf (stderr, "Can't get tag %d (INKNAMES).\n",
|
||||
TIFFTAG_INKNAMES);
|
||||
goto failure;
|
||||
}
|
||||
|
||||
TIFFClose(tif);
|
||||
|
||||
/* All tests passed; delete file and exit with success status. */
|
||||
unlink(filename);
|
||||
return 0;
|
||||
|
||||
failure:
|
||||
/*
|
||||
* Something goes wrong; close file and return unsuccessful status.
|
||||
* Do not remove the file for further manual investigation.
|
||||
*/
|
||||
TIFFClose(tif);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* vim: set ts=8 sts=8 sw=8 noet: */
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$IMG_PALETTE_1C_8B_BMP"
|
||||
outfile="o-bmp2tiff_palette.tiff"
|
||||
f_test_convert "$BMP2TIFF" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$IMG_RGB_3C_8B_BMP"
|
||||
outfile="o-bmp2tiff_rgb.tiff"
|
||||
f_test_convert "$BMP2TIFF" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,91 @@
|
||||
/* $Id: check_tag.c,v 1.3 2008/04/15 14:19:37 dron Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2004, Andrey Kiselev <dron@ak4719.spb.edu>
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and
|
||||
* its documentation for any purpose is hereby granted without fee, provided
|
||||
* that (i) the above copyright notices and this permission notice appear in
|
||||
* all copies of the software and related documentation, and (ii) the names of
|
||||
* Sam Leffler and Silicon Graphics may not be used in any advertising or
|
||||
* publicity relating to the software without the specific, prior written
|
||||
* permission of Sam Leffler and Silicon Graphics.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
||||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
|
||||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
|
||||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
|
||||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
* OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* TIFF Library
|
||||
*
|
||||
* Helper testing routines.
|
||||
*/
|
||||
|
||||
#include "tiffio.h"
|
||||
|
||||
int
|
||||
CheckShortField(TIFF *tif, const ttag_t field, const uint16 value)
|
||||
{
|
||||
uint16 tmp = 123;
|
||||
|
||||
if (!TIFFGetField(tif, field, &tmp)) {
|
||||
fprintf (stderr, "Problem fetching tag %lu.\n",
|
||||
(unsigned long) field);
|
||||
return -1;
|
||||
}
|
||||
if (tmp != value) {
|
||||
fprintf (stderr, "Wrong SHORT value fetched for tag %lu.\n",
|
||||
(unsigned long) field);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
CheckShortPairedField(TIFF *tif, const ttag_t field, const uint16 *values)
|
||||
{
|
||||
uint16 tmp[2] = { 123, 456 };
|
||||
|
||||
if (!TIFFGetField(tif, field, tmp, tmp + 1)) {
|
||||
fprintf (stderr, "Problem fetching tag %lu.\n",
|
||||
(unsigned long) field);
|
||||
return -1;
|
||||
}
|
||||
if (tmp[0] != values[0] || tmp[1] != values[1]) {
|
||||
fprintf (stderr, "Wrong SHORT PAIR fetched for tag %lu.\n",
|
||||
(unsigned long) field);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
CheckLongField(TIFF *tif, const ttag_t field, const uint32 value)
|
||||
{
|
||||
uint32 tmp = 123;
|
||||
|
||||
if (!TIFFGetField(tif, field, &tmp)) {
|
||||
fprintf (stderr, "Problem fetching tag %lu.\n",
|
||||
(unsigned long) field);
|
||||
return -1;
|
||||
}
|
||||
if (tmp != value) {
|
||||
fprintf (stderr, "Wrong LONG value fetched for tag %lu.\n",
|
||||
(unsigned long) field);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
# Common code fragment for tests
|
||||
#
|
||||
srcdir=${srcdir:-.}
|
||||
BUILDDIR=`pwd`
|
||||
SRCDIR=`dirname $0`
|
||||
SRCDIR=`cd $SRCDIR && pwd`
|
||||
TOPSRCDIR=`cd $srcdir/.. && pwd`
|
||||
TOOLS=`cd ../tools && pwd`
|
||||
IMAGES="${SRCDIR}/images"
|
||||
|
||||
# Aliases for built tools
|
||||
BMP2TIFF=${TOOLS}/bmp2tiff
|
||||
FAX2PS=${TOOLS}/fax2ps
|
||||
FAX2TIFF=${TOOLS}/fax2tiff
|
||||
GIF2TIFF=${TOOLS}/gif2tiff
|
||||
PAL2RGB=${TOOLS}/pal2rgb
|
||||
PPM2TIFF=${TOOLS}/ppm2tiff
|
||||
RAS2TIFF=${TOOLS}/ras2tiff
|
||||
RAW2TIFF=${TOOLS}/raw2tiff
|
||||
RGB2YCBCR=${TOOLS}/rgb2ycbcr
|
||||
THUMBNAIL=${TOOLS}/thumbnail
|
||||
TIFF2BW=${TOOLS}/tiff2bw
|
||||
TIFF2PDF=${TOOLS}/tiff2pdf
|
||||
TIFF2PS=${TOOLS}/tiff2ps
|
||||
TIFF2RGBA=${TOOLS}/tiff2rgba
|
||||
TIFFCMP=${TOOLS}/tiffcmp
|
||||
TIFFCP=${TOOLS}/tiffcp
|
||||
TIFFCROP=${TOOLS}/tiffcrop
|
||||
TIFFDITHER=${TOOLS}/tiffdither
|
||||
TIFFDUMP=${TOOLS}/tiffdump
|
||||
TIFFINFO=${TOOLS}/tiffinfo
|
||||
TIFFMEDIAN=${TOOLS}/tiffmedian
|
||||
TIFFSET=${TOOLS}/tiffset
|
||||
TIFFSPLIT=${TOOLS}/tiffsplit
|
||||
|
||||
# Aliases for input test files
|
||||
IMG_MINISBLACK_1C_16B=${IMAGES}/minisblack-1c-16b.tiff
|
||||
IMG_MINISBLACK_1C_8B=${IMAGES}/minisblack-1c-8b.tiff
|
||||
IMG_MINISWHITE_1C_1B=${IMAGES}/miniswhite-1c-1b.tiff
|
||||
IMG_PALETTE_1C_1B=${IMAGES}/palette-1c-1b.tiff
|
||||
IMG_PALETTE_1C_4B=${IMAGES}/palette-1c-4b.tiff
|
||||
IMG_PALETTE_1C_8B=${IMAGES}/palette-1c-8b.tiff
|
||||
IMG_RGB_3C_16B=${IMAGES}/rgb-3c-16b.tiff
|
||||
IMG_RGB_3C_8B=${IMAGES}/rgb-3c-8b.tiff
|
||||
IMG_MINISBLACK_2C_8B_ALPHA=${IMAGES}/minisblack-2c-8b-alpha.tiff
|
||||
|
||||
IMG_PALETTE_1C_8B_BMP=${IMAGES}/palette-1c-8b.bmp
|
||||
IMG_RGB_3C_8B_BMP=${IMAGES}/rgb-3c-8b.bmp
|
||||
|
||||
IMG_PALETTE_1C_8B_GIF=${IMAGES}/palette-1c-8b.gif
|
||||
|
||||
IMG_MINISWHITE_1C_1B_PBM=${IMAGES}/miniswhite-1c-1b.pbm
|
||||
IMG_MINISBLACK_1C_8B_PGM=${IMAGES}/minisblack-1c-8b.pgm
|
||||
IMG_RGB_3C_8B_PPM=${IMAGES}/rgb-3c-8b.ppm
|
||||
|
||||
# All uncompressed image files
|
||||
IMG_UNCOMPRESSED="${IMG_MINISBLACK_1C_16B} ${IMG_MINISBLACK_1C_8B} ${IMG_MINISWHITE_1C_1B} ${IMG_PALETTE_1C_1B} ${IMG_PALETTE_1C_4B} ${IMG_PALETTE_1C_4B} ${IMG_PALETTE_1C_8B} ${IMG_RGB_3C_8B}"
|
||||
|
||||
#
|
||||
# Test a simple convert-like command.
|
||||
#
|
||||
# f_test_convert command infile outfile
|
||||
f_test_convert ()
|
||||
{
|
||||
command=$1
|
||||
infile=$2
|
||||
outfile=$3
|
||||
rm -f $outfile
|
||||
echo "$MEMCHECK $command $infile $outfile"
|
||||
eval $MEMCHECK $command $infile $outfile
|
||||
status=$?
|
||||
if [ $status != 0 ] ; then
|
||||
echo "Returned failed status $status!"
|
||||
echo "Output (if any) is in \"${outfile}\"."
|
||||
exit $status
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Test a simple command which sends output to stdout
|
||||
#
|
||||
# f_test_stdout command infile outfile
|
||||
f_test_stdout ()
|
||||
{
|
||||
command=$1
|
||||
infile=$2
|
||||
outfile=$3
|
||||
rm -f $outfile
|
||||
echo "$MEMCHECK $command $infile > $outfile"
|
||||
eval $MEMCHECK $command $infile > $outfile
|
||||
status=$?
|
||||
if [ $status != 0 ] ; then
|
||||
echo "Returned failed status $status!"
|
||||
echo "Output (if any) is in \"${outfile}\"."
|
||||
exit $status
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Execute a simple command (e.g. tiffinfo) with one input file
|
||||
#
|
||||
# f_test_exec command infile
|
||||
f_test_reader ()
|
||||
{
|
||||
command=$1
|
||||
infile=$2
|
||||
echo "$MEMCHECK $command $infile"
|
||||
eval $MEMCHECK $command $infile
|
||||
status=$?
|
||||
if [ $status != 0 ] ; then
|
||||
echo "Returned failed status $status!"
|
||||
exit $status
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# Execute tiffinfo on a specified file to validate it
|
||||
#
|
||||
# f_tiffinfo_validate infile
|
||||
f_tiffinfo_validate ()
|
||||
{
|
||||
f_test_reader "$TIFFINFO -D" $1
|
||||
}
|
||||
|
||||
if test "$VERBOSE" = TRUE
|
||||
then
|
||||
set -x
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,247 @@
|
||||
/* $Id: custom_dir.c,v 1.2 2012-06-06 05:26:37 fwarmerdam Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2012, Frank Warmerdam <warmerdam@pobox.com>
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and
|
||||
* its documentation for any purpose is hereby granted without fee, provided
|
||||
* that (i) the above copyright notices and this permission notice appear in
|
||||
* all copies of the software and related documentation, and (ii) the names of
|
||||
* Sam Leffler and Silicon Graphics may not be used in any advertising or
|
||||
* publicity relating to the software without the specific, prior written
|
||||
* permission of Sam Leffler and Silicon Graphics.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
||||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
|
||||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
|
||||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
|
||||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
* OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* TIFF Library
|
||||
*
|
||||
* Module to handling of custom directories like EXIF.
|
||||
*/
|
||||
|
||||
#include "tif_config.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include "tiffio.h"
|
||||
#include "tif_dir.h"
|
||||
#include "tifftest.h"
|
||||
|
||||
static const char filename[] = "custom_dir.tif";
|
||||
|
||||
#define SPP 3 /* Samples per pixel */
|
||||
const uint16 width = 1;
|
||||
const uint16 length = 1;
|
||||
const uint16 bps = 8;
|
||||
const uint16 photometric = PHOTOMETRIC_RGB;
|
||||
const uint16 rows_per_strip = 1;
|
||||
const uint16 planarconfig = PLANARCONFIG_CONTIG;
|
||||
|
||||
static TIFFField
|
||||
customFields[] = {
|
||||
{ TIFFTAG_IMAGEWIDTH, -1, -1, TIFF_ASCII, 0, TIFF_SETGET_ASCII, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "Custom1", NULL },
|
||||
{ TIFFTAG_DOTRANGE, -1, -1, TIFF_ASCII, 0, TIFF_SETGET_ASCII, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "Custom2", NULL },
|
||||
};
|
||||
|
||||
static TIFFFieldArray customFieldArray = { tfiatOther, 0, 2, customFields };
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
TIFF *tif;
|
||||
unsigned char buf[SPP] = { 0, 127, 255 };
|
||||
uint64 dir_offset = 0, dir_offset2 = 0;
|
||||
uint64 read_dir_offset = 0, read_dir_offset2 = 0;
|
||||
uint64 *dir_offset2_ptr = NULL;
|
||||
char *ascii_value;
|
||||
uint16 count16 = 0;
|
||||
|
||||
|
||||
/* We write the main directory as a simple image. */
|
||||
tif = TIFFOpen(filename, "w+");
|
||||
if (!tif) {
|
||||
fprintf (stderr, "Can't create test TIFF file %s.\n", filename);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!TIFFSetField(tif, TIFFTAG_IMAGEWIDTH, width)) {
|
||||
fprintf (stderr, "Can't set ImageWidth tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_IMAGELENGTH, length)) {
|
||||
fprintf (stderr, "Can't set ImageLength tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, bps)) {
|
||||
fprintf (stderr, "Can't set BitsPerSample tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, SPP)) {
|
||||
fprintf (stderr, "Can't set SamplesPerPixel tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_ROWSPERSTRIP, rows_per_strip)) {
|
||||
fprintf (stderr, "Can't set SamplesPerPixel tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_PLANARCONFIG, planarconfig)) {
|
||||
fprintf (stderr, "Can't set PlanarConfiguration tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, photometric)) {
|
||||
fprintf (stderr, "Can't set PhotometricInterpretation tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
/* Write dummy pixel data. */
|
||||
if (!TIFFWriteScanline(tif, buf, 0, 0) < 0) {
|
||||
fprintf (stderr, "Can't write image data.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
if (!TIFFWriteDirectory( tif )) {
|
||||
fprintf (stderr, "TIFFWriteDirectory() failed.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
/*
|
||||
* Now create an EXIF directory.
|
||||
*/
|
||||
if (TIFFCreateEXIFDirectory(tif) != 0) {
|
||||
fprintf (stderr, "TIFFCreateEXIFDirectory() failed.\n" );
|
||||
goto failure;
|
||||
}
|
||||
|
||||
if (!TIFFSetField( tif, EXIFTAG_SPECTRALSENSITIVITY, "EXIF Spectral Sensitivity")) {
|
||||
fprintf (stderr, "Can't write SPECTRALSENSITIVITY\n" );
|
||||
goto failure;
|
||||
}
|
||||
|
||||
if (!TIFFWriteCustomDirectory( tif, &dir_offset )) {
|
||||
fprintf (stderr, "TIFFWriteCustomDirectory() with EXIF failed.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
/*
|
||||
* Now create a custom directory with tags that conflict with mainline
|
||||
* TIFF tags.
|
||||
*/
|
||||
|
||||
TIFFFreeDirectory( tif );
|
||||
if (TIFFCreateCustomDirectory(tif, &customFieldArray) != 0) {
|
||||
fprintf (stderr, "TIFFCreateEXIFDirectory() failed.\n" );
|
||||
goto failure;
|
||||
}
|
||||
|
||||
if (!TIFFSetField( tif, TIFFTAG_IMAGEWIDTH, "*Custom1")) { /* not really IMAGEWIDTH */
|
||||
fprintf (stderr, "Can't write pseudo-IMAGEWIDTH.\n" );
|
||||
goto failure;
|
||||
}
|
||||
|
||||
if (!TIFFSetField( tif, TIFFTAG_DOTRANGE, "*Custom2")) { /* not really DOTWIDTH */
|
||||
fprintf (stderr, "Can't write pseudo-DOTWIDTH.\n" );
|
||||
goto failure;
|
||||
}
|
||||
|
||||
if (!TIFFWriteCustomDirectory( tif, &dir_offset2 )) {
|
||||
fprintf (stderr, "TIFFWriteCustomDirectory() with EXIF failed.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
/*
|
||||
* Go back to the first directory, and add the EXIFIFD pointer.
|
||||
*/
|
||||
TIFFSetDirectory(tif, 0);
|
||||
TIFFSetField(tif, TIFFTAG_EXIFIFD, dir_offset );
|
||||
TIFFSetField(tif, TIFFTAG_SUBIFD, 1, &dir_offset2 );
|
||||
|
||||
TIFFClose(tif);
|
||||
|
||||
/* Ok, now test whether we can read written values in the EXIF directory. */
|
||||
tif = TIFFOpen(filename, "r");
|
||||
|
||||
TIFFGetField(tif, TIFFTAG_EXIFIFD, &read_dir_offset );
|
||||
if( read_dir_offset != dir_offset ) {
|
||||
fprintf (stderr, "Did not get expected EXIFIFD.\n" );
|
||||
goto failure;
|
||||
}
|
||||
|
||||
TIFFGetField(tif, TIFFTAG_SUBIFD, &count16, &dir_offset2_ptr );
|
||||
read_dir_offset2 = dir_offset2_ptr[0];
|
||||
if( read_dir_offset2 != dir_offset2 || count16 != 1) {
|
||||
fprintf (stderr, "Did not get expected SUBIFD.\n" );
|
||||
goto failure;
|
||||
}
|
||||
|
||||
if( !TIFFReadEXIFDirectory(tif, read_dir_offset) ) {
|
||||
fprintf (stderr, "TIFFReadEXIFDirectory() failed.\n" );
|
||||
goto failure;
|
||||
}
|
||||
|
||||
if (!TIFFGetField( tif, EXIFTAG_SPECTRALSENSITIVITY, &ascii_value) ) {
|
||||
fprintf (stderr, "reading SPECTRALSENSITIVITY failed.\n" );
|
||||
goto failure;
|
||||
}
|
||||
|
||||
if( strcmp(ascii_value,"EXIF Spectral Sensitivity") != 0) {
|
||||
fprintf (stderr, "got wrong SPECTRALSENSITIVITY value.\n" );
|
||||
goto failure;
|
||||
}
|
||||
|
||||
/* Try reading the Custom directory */
|
||||
|
||||
if( !TIFFReadCustomDirectory(tif, read_dir_offset2, &customFieldArray) ) {
|
||||
fprintf (stderr, "TIFFReadCustomDirectory() failed.\n" );
|
||||
goto failure;
|
||||
}
|
||||
|
||||
if (!TIFFGetField( tif, TIFFTAG_IMAGEWIDTH, &ascii_value) ) {
|
||||
fprintf (stderr, "reading pseudo-IMAGEWIDTH failed.\n" );
|
||||
goto failure;
|
||||
}
|
||||
|
||||
if( strcmp(ascii_value,"*Custom1") != 0) {
|
||||
fprintf (stderr, "got wrong pseudo-IMAGEWIDTH value.\n" );
|
||||
goto failure;
|
||||
}
|
||||
|
||||
if (!TIFFGetField( tif, TIFFTAG_DOTRANGE, &ascii_value) ) {
|
||||
fprintf (stderr, "reading pseudo-DOTRANGE failed.\n" );
|
||||
goto failure;
|
||||
}
|
||||
|
||||
if( strcmp(ascii_value,"*Custom2") != 0) {
|
||||
fprintf (stderr, "got wrong pseudo-DOTRANGE value.\n" );
|
||||
goto failure;
|
||||
}
|
||||
|
||||
TIFFClose(tif);
|
||||
|
||||
/* All tests passed; delete file and exit with success status. */
|
||||
unlink(filename);
|
||||
return 0;
|
||||
|
||||
failure:
|
||||
/*
|
||||
* Something goes wrong; close file and return unsuccessful status.
|
||||
* Do not remove the file for further manual investigation.
|
||||
*/
|
||||
TIFFClose(tif);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* vim: set ts=8 sts=8 sw=8 noet: */
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$IMG_PALETTE_1C_8B_GIF"
|
||||
outfile="o-gif2tiff.tiff"
|
||||
f_test_convert "$GIF2TIFF" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,29 @@
|
||||
The test files in this directory mostly have dimension 157x151.
|
||||
The naming convention is
|
||||
|
||||
photometric-channels-bits.tiff
|
||||
|
||||
minisblack-1c-16b.tiff
|
||||
minisblack-1c-8b.tiff
|
||||
miniswhite-1c-1b.tiff
|
||||
palette-1c-1b.tiff
|
||||
palette-1c-4b.tiff
|
||||
palette-1c-8b.tiff
|
||||
rgb-3c-16b.tiff
|
||||
rgb-3c-8b.tiff
|
||||
|
||||
logluv-3c-16b.tiff: logluv compression/photometric interp
|
||||
minisblack-2c-8b-alpha.tiff: grey+alpha
|
||||
|
||||
BMP files (anchient BMPv2 since v3 does not work):
|
||||
|
||||
palette-1c-8b.bmp
|
||||
rgb-3c-8b.bmp
|
||||
|
||||
GIF files (anchient GIF '87 since modern GIF does not work):
|
||||
palette-1c-8b.gif
|
||||
|
||||
PNM files:
|
||||
minisblack-1c-8b.pgm
|
||||
miniswhite-1c-1b.pbm
|
||||
rgb-3c-8b.ppm
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 70 KiB |
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,156 @@
|
||||
/* $Id: long_tag.c,v 1.4 2008/03/28 01:42:06 bfriesen Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2004, Andrey Kiselev <dron@ak4719.spb.edu>
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and
|
||||
* its documentation for any purpose is hereby granted without fee, provided
|
||||
* that (i) the above copyright notices and this permission notice appear in
|
||||
* all copies of the software and related documentation, and (ii) the names of
|
||||
* Sam Leffler and Silicon Graphics may not be used in any advertising or
|
||||
* publicity relating to the software without the specific, prior written
|
||||
* permission of Sam Leffler and Silicon Graphics.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
||||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
|
||||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
|
||||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
|
||||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
* OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* TIFF Library
|
||||
*
|
||||
* Module to test LONG tags read/write functions.
|
||||
*/
|
||||
|
||||
#include "tif_config.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include "tiffio.h"
|
||||
|
||||
extern int CheckLongField(TIFF *, ttag_t, uint32);
|
||||
|
||||
const char *filename = "long_test.tiff";
|
||||
|
||||
static struct Tags {
|
||||
ttag_t tag;
|
||||
short count;
|
||||
uint32 value;
|
||||
} long_tags[] = {
|
||||
{ TIFFTAG_SUBFILETYPE, 1, FILETYPE_REDUCEDIMAGE|FILETYPE_PAGE|FILETYPE_MASK }
|
||||
};
|
||||
#define NTAGS (sizeof (long_tags) / sizeof (long_tags[0]))
|
||||
|
||||
const uint32 width = 1;
|
||||
const uint32 length = 1;
|
||||
const uint32 rows_per_strip = 1;
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
TIFF *tif;
|
||||
unsigned int i;
|
||||
unsigned char buf[3] = { 0, 127, 255 };
|
||||
(void) argc;
|
||||
(void) argv;
|
||||
|
||||
/* Test whether we can write tags. */
|
||||
tif = TIFFOpen(filename, "w");
|
||||
if (!tif) {
|
||||
fprintf (stderr, "Can't create test TIFF file %s.\n", filename);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!TIFFSetField(tif, TIFFTAG_IMAGEWIDTH, width)) {
|
||||
fprintf (stderr, "Can't set ImageWidth tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_IMAGELENGTH, length)) {
|
||||
fprintf (stderr, "Can't set ImageLength tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 8)) {
|
||||
fprintf (stderr, "Can't set BitsPerSample tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, 3)) {
|
||||
fprintf (stderr, "Can't set SamplesPerPixel tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_ROWSPERSTRIP, rows_per_strip)) {
|
||||
fprintf (stderr, "Can't set SamplesPerPixel tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG)) {
|
||||
fprintf (stderr, "Can't set PlanarConfiguration tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB)) {
|
||||
fprintf (stderr, "Can't set PhotometricInterpretation tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
for (i = 0; i < NTAGS; i++) {
|
||||
if (!TIFFSetField(tif, long_tags[i].tag,
|
||||
long_tags[i].value)) {
|
||||
fprintf(stderr, "Can't set tag %d.\n",
|
||||
(int)long_tags[i].tag);
|
||||
goto failure;
|
||||
}
|
||||
}
|
||||
|
||||
/* Write dummy pixel data. */
|
||||
if (!TIFFWriteScanline(tif, buf, 0, 0) < 0) {
|
||||
fprintf (stderr, "Can't write image data.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
TIFFClose(tif);
|
||||
|
||||
/* Ok, now test whether we can read written values. */
|
||||
tif = TIFFOpen(filename, "r");
|
||||
if (!tif) {
|
||||
fprintf (stderr, "Can't open test TIFF file %s.\n", filename);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (CheckLongField(tif, TIFFTAG_IMAGEWIDTH, width) < 0)
|
||||
goto failure;
|
||||
|
||||
if (CheckLongField(tif, TIFFTAG_IMAGELENGTH, length) < 0)
|
||||
goto failure;
|
||||
|
||||
if (CheckLongField(tif, TIFFTAG_ROWSPERSTRIP, rows_per_strip) < 0)
|
||||
goto failure;
|
||||
|
||||
for (i = 0; i < NTAGS; i++) {
|
||||
if (CheckLongField(tif, long_tags[i].tag,
|
||||
long_tags[i].value) < 0)
|
||||
goto failure;
|
||||
}
|
||||
|
||||
TIFFClose(tif);
|
||||
|
||||
/* All tests passed; delete file and exit with success status. */
|
||||
unlink(filename);
|
||||
return 0;
|
||||
|
||||
failure:
|
||||
/* Something goes wrong; close file and return unsuccessful status. */
|
||||
TIFFClose(tif);
|
||||
unlink(filename);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* vim: set ts=8 sts=8 sw=8 noet: */
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$IMG_MINISWHITE_1C_1B_PBM"
|
||||
outfile="o-ppm2tiff_pbm.tiff"
|
||||
f_test_convert "$PPM2TIFF" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$IMG_MINISBLACK_1C_8B_PGM"
|
||||
outfile="o-ppm2tiff_pgm.tiff"
|
||||
f_test_convert "$PPM2TIFF" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$IMG_RGB_3C_8B_PPM"
|
||||
outfile="o-ppm2tiff_ppm.tiff"
|
||||
f_test_convert "$PPM2TIFF" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,254 @@
|
||||
/* $Id: raw_decode.c,v 1.4 2012-07-06 17:05:16 bfriesen Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2012, Frank Warmerdam <warmerdam@pobox.com>
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and
|
||||
* its documentation for any purpose is hereby granted without fee, provided
|
||||
* that (i) the above copyright notices and this permission notice appear in
|
||||
* all copies of the software and related documentation, and (ii) the names of
|
||||
* Sam Leffler and Silicon Graphics may not be used in any advertising or
|
||||
* publicity relating to the software without the specific, prior written
|
||||
* permission of Sam Leffler and Silicon Graphics.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
||||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
|
||||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
|
||||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
|
||||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
* OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* TIFF Library
|
||||
*
|
||||
* The objective of this test suite is to test the JPEGRawDecode()
|
||||
* interface via TIFReadEncodedTile(). This function with YCbCr subsampling
|
||||
* is a frequent source of bugs.
|
||||
*/
|
||||
|
||||
#include "tif_config.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include "tiffio.h"
|
||||
|
||||
#include "jpeglib.h" /* Needed for JPEG_LIB_VERSION */
|
||||
|
||||
static unsigned char cluster_0[] = { 0, 0, 2, 0, 138, 139 };
|
||||
static unsigned char cluster_64[] = { 0, 0, 9, 6, 134, 119 };
|
||||
static unsigned char cluster_128[] = { 44, 40, 63, 59, 230, 95 };
|
||||
|
||||
static int check_cluster( int cluster, unsigned char *buffer, unsigned char *expected_cluster ) {
|
||||
unsigned char *target = buffer + cluster*6;
|
||||
|
||||
if (memcmp(target, expected_cluster, 6) == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
fprintf( stderr, "Cluster %d did not match expected results.\n", cluster );
|
||||
fprintf( stderr,
|
||||
"Expect: %3d %3d %3d %3d\n"
|
||||
" %3d %3d\n",
|
||||
expected_cluster[0], expected_cluster[1],
|
||||
expected_cluster[4], expected_cluster[5],
|
||||
expected_cluster[2], expected_cluster[3] );
|
||||
fprintf( stderr,
|
||||
" Got: %3d %3d %3d %3d\n"
|
||||
" %3d %3d\n",
|
||||
target[0], target[1],
|
||||
target[4], target[5],
|
||||
target[2], target[3] );
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int check_rgb_pixel( int pixel, int red, int green, int blue, unsigned char *buffer ) {
|
||||
unsigned char *rgb = buffer + 3 * pixel;
|
||||
|
||||
if( rgb[0] == red && rgb[1] == green && rgb[2] == blue ) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
fprintf( stderr, "Pixel %d did not match expected results.\n", pixel );
|
||||
fprintf( stderr, "Expect: %3d %3d %3d\n", red, green, blue );
|
||||
fprintf( stderr, " Got: %3d %3d %3d\n", rgb[0], rgb[1], rgb[2] );
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int check_rgba_pixel( int pixel, int red, int green, int blue, int alpha, uint32 *buffer ) {
|
||||
/* RGBA images are upside down - adjust for normal ordering */
|
||||
int adjusted_pixel = pixel % 128 + (127 - (pixel/128)) * 128;
|
||||
uint32 rgba = buffer[adjusted_pixel];
|
||||
|
||||
if( TIFFGetR(rgba) == (uint32) red && TIFFGetG(rgba) == (uint32) green &&
|
||||
TIFFGetB(rgba) == (uint32) blue && TIFFGetA(rgba) == (uint32) alpha ) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
fprintf( stderr, "Pixel %d did not match expected results.\n", pixel );
|
||||
fprintf( stderr, "Expect: %3d %3d %3d %3d\n", red, green, blue, alpha );
|
||||
fprintf( stderr, " Got: %3d %3d %3d %3d\n",
|
||||
TIFFGetR(rgba), TIFFGetG(rgba), TIFFGetB(rgba), TIFFGetA(rgba) );
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
TIFF *tif;
|
||||
static const char *srcfilerel = "images/quad-tile.jpg.tiff";
|
||||
char *srcdir = NULL;
|
||||
char srcfile[1024];
|
||||
unsigned short h, v;
|
||||
int status;
|
||||
unsigned char *buffer;
|
||||
uint32 *rgba_buffer;
|
||||
tsize_t sz, szout;
|
||||
unsigned int pixel_status = 0;
|
||||
|
||||
(void) argc;
|
||||
(void) argv;
|
||||
|
||||
if ((srcdir = getenv("srcdir")) == NULL) {
|
||||
srcdir = ".";
|
||||
}
|
||||
if ((strlen(srcdir) + 1 + strlen(srcfilerel)) >= sizeof(srcfile)) {
|
||||
fprintf( stderr, "srcdir too long %s\n", srcdir);
|
||||
exit( 1 );
|
||||
}
|
||||
strcpy(srcfile,srcdir);
|
||||
strcat(srcfile,"/");
|
||||
strcat(srcfile,srcfilerel);
|
||||
|
||||
tif = TIFFOpen(srcfile,"r");
|
||||
if ( tif == NULL ) {
|
||||
fprintf( stderr, "Could not open %s\n", srcfile);
|
||||
exit( 1 );
|
||||
}
|
||||
|
||||
status = TIFFGetField(tif,TIFFTAG_YCBCRSUBSAMPLING, &h, &v);
|
||||
if ( status == 0 || h != 2 || v != 2) {
|
||||
fprintf( stderr, "Could not retrieve subsampling tag.\n" );
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/*
|
||||
* What is the appropriate size of a YCbCr encoded tile?
|
||||
*/
|
||||
sz = TIFFTileSize(tif);
|
||||
if( sz != 24576) {
|
||||
fprintf(stderr, "tiles are %d bytes\n", (int)sz);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
buffer = (unsigned char *) malloc(sz);
|
||||
|
||||
/*
|
||||
* Read a tile in decompressed form, but still YCbCr subsampled.
|
||||
*/
|
||||
szout = TIFFReadEncodedTile(tif,9,buffer,sz);
|
||||
if (szout != sz) {
|
||||
fprintf( stderr,
|
||||
"Did not get expected result code from TIFFReadEncodedTile()(%d instead of %d)\n",
|
||||
(int) szout, (int) sz );
|
||||
return 1;
|
||||
}
|
||||
|
||||
if( check_cluster( 0, buffer, cluster_0 )
|
||||
|| check_cluster( 64, buffer, cluster_64 )
|
||||
|| check_cluster( 128, buffer, cluster_128 ) ) {
|
||||
exit(1);
|
||||
}
|
||||
free(buffer);
|
||||
|
||||
/*
|
||||
* Read a tile using the built-in conversion to RGB format provided by the JPEG library.
|
||||
*/
|
||||
TIFFSetField(tif, TIFFTAG_JPEGCOLORMODE, JPEGCOLORMODE_RGB);
|
||||
|
||||
sz = TIFFTileSize(tif);
|
||||
if( sz != 128*128*3) {
|
||||
fprintf(stderr, "tiles are %d bytes\n", (int)sz);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
buffer = (unsigned char *) malloc(sz);
|
||||
|
||||
szout = TIFFReadEncodedTile(tif,9,buffer,sz);
|
||||
if (szout != sz) {
|
||||
fprintf( stderr,
|
||||
"Did not get expected result code from TIFFReadEncodedTile()(%d instead of %d)\n",
|
||||
(int) szout, (int) sz );
|
||||
return 1;
|
||||
}
|
||||
|
||||
#if JPEG_LIB_VERSION >= 70
|
||||
pixel_status |= check_rgb_pixel( 0, 18, 0, 41, buffer );
|
||||
pixel_status |= check_rgb_pixel( 64, 0, 0, 0, buffer );
|
||||
pixel_status |= check_rgb_pixel( 512, 5, 34, 196, buffer );
|
||||
#else
|
||||
pixel_status |= check_rgb_pixel( 0, 15, 0, 18, buffer );
|
||||
pixel_status |= check_rgb_pixel( 64, 0, 0, 2, buffer );
|
||||
pixel_status |= check_rgb_pixel( 512, 6, 36, 182, buffer );
|
||||
#endif
|
||||
|
||||
free( buffer );
|
||||
|
||||
TIFFClose(tif);
|
||||
|
||||
/*
|
||||
* Reopen and test reading using the RGBA interface.
|
||||
*/
|
||||
tif = TIFFOpen(srcfile,"r");
|
||||
|
||||
sz = 128 * 128 * sizeof(uint32);
|
||||
rgba_buffer = (uint32 *) malloc(sz);
|
||||
|
||||
if (!TIFFReadRGBATile( tif, 1*128, 2*128, rgba_buffer )) {
|
||||
fprintf( stderr, "TIFFReadRGBATile() returned failure code.\n" );
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Currently TIFFReadRGBATile() just uses JPEGCOLORMODE_RGB so this
|
||||
* trivally matches the last results. Eventually we should actually
|
||||
* accomplish it from the YCbCr subsampled buffer ourselves in which
|
||||
* case the results may be subtly different but similar.
|
||||
*/
|
||||
#if JPEG_LIB_VERSION >= 70
|
||||
pixel_status |= check_rgba_pixel( 0, 18, 0, 41, 255, rgba_buffer );
|
||||
pixel_status |= check_rgba_pixel( 64, 0, 0, 0, 255, rgba_buffer );
|
||||
pixel_status |= check_rgba_pixel( 512, 5, 34, 196, 255, rgba_buffer );
|
||||
#else
|
||||
pixel_status |= check_rgba_pixel( 0, 15, 0, 18, 255, rgba_buffer );
|
||||
pixel_status |= check_rgba_pixel( 64, 0, 0, 2, 255, rgba_buffer );
|
||||
pixel_status |= check_rgba_pixel( 512, 6, 36, 182, 255, rgba_buffer );
|
||||
#endif
|
||||
|
||||
free( rgba_buffer );
|
||||
TIFFClose(tif);
|
||||
|
||||
if (pixel_status) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
exit( 0 );
|
||||
}
|
||||
|
||||
/* vim: set ts=8 sts=8 sw=8 noet: */
|
||||
/*
|
||||
* Local Variables:
|
||||
* mode: c
|
||||
* c-basic-offset: 8
|
||||
* fill-column: 78
|
||||
* End:
|
||||
*/
|
||||
@@ -0,0 +1,346 @@
|
||||
/* $Id: rewrite_tag.c,v 1.5 2012-06-13 04:38:55 fwarmerdam Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2007, Frank Warmerdam <warmerdam@pobox.com>
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and
|
||||
* its documentation for any purpose is hereby granted without fee, provided
|
||||
* that (i) the above copyright notices and this permission notice appear in
|
||||
* all copies of the software and related documentation, and (ii) the names of
|
||||
* Sam Leffler and Silicon Graphics may not be used in any advertising or
|
||||
* publicity relating to the software without the specific, prior written
|
||||
* permission of Sam Leffler and Silicon Graphics.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
||||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
|
||||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
|
||||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
|
||||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
* OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* TIFF Library
|
||||
*
|
||||
* Module to test _TIFFRewriteField().
|
||||
*/
|
||||
|
||||
#include "tif_config.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include "tiffio.h"
|
||||
#include "tiffiop.h"
|
||||
|
||||
const uint32 width = 10;
|
||||
const uint32 length = 40;
|
||||
const uint32 rows_per_strip = 1;
|
||||
|
||||
int test_packbits()
|
||||
|
||||
{
|
||||
TIFF *tif;
|
||||
int i;
|
||||
unsigned char buf[10] = {0,0,0,0,0,0,0,0,0,0};
|
||||
|
||||
int length = 20;
|
||||
const char *filename = "test_packbits.tif";
|
||||
|
||||
/* Test whether we can write tags. */
|
||||
tif = TIFFOpen(filename, "w");
|
||||
|
||||
if (!tif) {
|
||||
fprintf (stderr, "Can't create test TIFF file %s.\n", filename);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!TIFFSetField(tif, TIFFTAG_COMPRESSION, COMPRESSION_PACKBITS)) {
|
||||
fprintf (stderr, "Can't set Compression tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_IMAGEWIDTH, width)) {
|
||||
fprintf (stderr, "Can't set ImageWidth tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_IMAGELENGTH, length)) {
|
||||
fprintf (stderr, "Can't set ImageLength tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 8)) {
|
||||
fprintf (stderr, "Can't set BitsPerSample tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, 1)) {
|
||||
fprintf (stderr, "Can't set SamplesPerPixel tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_ROWSPERSTRIP, rows_per_strip)) {
|
||||
fprintf (stderr, "Can't set SamplesPerPixel tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG)) {
|
||||
fprintf (stderr, "Can't set PlanarConfiguration tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
for (i = 0; i < length; i++ )
|
||||
{
|
||||
if( !TIFFWriteEncodedStrip( tif, i, buf, 10 ) )
|
||||
{
|
||||
fprintf (stderr, "Can't write image data.\n");
|
||||
goto failure;
|
||||
}
|
||||
}
|
||||
|
||||
TIFFClose(tif);
|
||||
|
||||
/* Test whether we can write tags. */
|
||||
|
||||
tif = TIFFOpen(filename, "r+");
|
||||
|
||||
if (!tif) {
|
||||
fprintf (stderr, "Can't create test TIFF file %s.\n", filename);
|
||||
return 1;
|
||||
}
|
||||
|
||||
buf[3] = 17;
|
||||
buf[6] = 12;
|
||||
|
||||
if( !TIFFWriteEncodedStrip( tif, 6, buf, 10 ) )
|
||||
{
|
||||
fprintf (stderr, "Can't write image data.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
TIFFClose(tif);
|
||||
|
||||
unlink(filename);
|
||||
|
||||
return 0;
|
||||
|
||||
failure:
|
||||
/* Something goes wrong; close file and return unsuccessful status. */
|
||||
TIFFClose(tif);
|
||||
/* unlink(filename); */
|
||||
|
||||
return 1;
|
||||
|
||||
}
|
||||
|
||||
/************************************************************************/
|
||||
/* rewrite_test() */
|
||||
/************************************************************************/
|
||||
int rewrite_test( const char *filename, int length, int bigtiff,
|
||||
uint64 base_value )
|
||||
|
||||
{
|
||||
TIFF *tif;
|
||||
int i;
|
||||
unsigned char buf[10] = {5,6,7,8,9,10,11,12,13,14};
|
||||
uint64 *rowoffset, *rowbytes;
|
||||
uint64 *upd_rowoffset;
|
||||
uint64 *upd_bytecount;
|
||||
|
||||
/* Test whether we can write tags. */
|
||||
if( bigtiff )
|
||||
tif = TIFFOpen(filename, "w8");
|
||||
else
|
||||
tif = TIFFOpen(filename, "w4");
|
||||
|
||||
if (!tif) {
|
||||
fprintf (stderr, "Can't create test TIFF file %s.\n", filename);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!TIFFSetField(tif, TIFFTAG_COMPRESSION, COMPRESSION_PACKBITS)) {
|
||||
fprintf (stderr, "Can't set Compression tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_IMAGEWIDTH, width)) {
|
||||
fprintf (stderr, "Can't set ImageWidth tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_IMAGELENGTH, length)) {
|
||||
fprintf (stderr, "Can't set ImageLength tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 8)) {
|
||||
fprintf (stderr, "Can't set BitsPerSample tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, 1)) {
|
||||
fprintf (stderr, "Can't set SamplesPerPixel tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_ROWSPERSTRIP, rows_per_strip)) {
|
||||
fprintf (stderr, "Can't set SamplesPerPixel tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG)) {
|
||||
fprintf (stderr, "Can't set PlanarConfiguration tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
for (i = 0; i < length; i++ )
|
||||
{
|
||||
if( !TIFFWriteScanline( tif, buf, i, 0 ) )
|
||||
{
|
||||
fprintf (stderr, "Can't write image data.\n");
|
||||
goto failure;
|
||||
}
|
||||
}
|
||||
|
||||
TIFFClose(tif);
|
||||
|
||||
/* Ok, now test whether we can read written values. */
|
||||
tif = TIFFOpen(filename, "r+");
|
||||
if (!tif) {
|
||||
fprintf (stderr, "Can't open test TIFF file %s.\n", filename);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if( !TIFFGetField( tif, TIFFTAG_STRIPOFFSETS, &rowoffset ) )
|
||||
{
|
||||
fprintf (stderr, "Can't fetch STRIPOFFSETS.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
if( !TIFFGetField( tif, TIFFTAG_STRIPBYTECOUNTS, &rowbytes ) )
|
||||
{
|
||||
fprintf (stderr, "Can't fetch STRIPBYTECOUNTS.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
upd_rowoffset = (uint64 *) _TIFFmalloc(sizeof(uint64) * length);
|
||||
for( i = 0; i < length; i++ )
|
||||
upd_rowoffset[i] = base_value + i*10;
|
||||
|
||||
if( !_TIFFRewriteField( tif, TIFFTAG_STRIPOFFSETS, TIFF_LONG8,
|
||||
length, upd_rowoffset ) )
|
||||
{
|
||||
fprintf (stderr, "Can't rewrite STRIPOFFSETS.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
_TIFFfree( upd_rowoffset );
|
||||
|
||||
upd_bytecount = (uint64 *) _TIFFmalloc(sizeof(uint64) * length);
|
||||
for( i = 0; i < length; i++ )
|
||||
upd_bytecount[i] = 100 + i*10;
|
||||
|
||||
if( !_TIFFRewriteField( tif, TIFFTAG_STRIPBYTECOUNTS, TIFF_LONG8,
|
||||
length, upd_bytecount ) )
|
||||
{
|
||||
fprintf (stderr, "Can't rewrite STRIPBYTECOUNTS.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
_TIFFfree( upd_bytecount );
|
||||
|
||||
TIFFClose(tif);
|
||||
|
||||
/* Reopen file and read back to verify contents */
|
||||
|
||||
tif = TIFFOpen(filename, "r");
|
||||
if (!tif) {
|
||||
fprintf (stderr, "Can't open test TIFF file %s.\n", filename);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if( !TIFFGetField( tif, TIFFTAG_STRIPOFFSETS, &rowoffset ) )
|
||||
{
|
||||
fprintf (stderr, "Can't fetch STRIPOFFSETS.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
for( i = 0; i < length; i++ )
|
||||
{
|
||||
uint64 expect = base_value + i*10;
|
||||
|
||||
if( rowoffset[i] != expect )
|
||||
{
|
||||
fprintf( stderr,
|
||||
"%s:STRIPOFFSETS[%d]: Got %X:%08X instead of %X:%08X.\n",
|
||||
filename, i,
|
||||
(int) (rowoffset[i] >> 32),
|
||||
(int) (rowoffset[i]&0xFFFFFFFF),
|
||||
(int) (expect >> 32),
|
||||
(int) (expect & 0xFFFFFFFF) );
|
||||
goto failure;
|
||||
}
|
||||
}
|
||||
|
||||
if( !TIFFGetField( tif, TIFFTAG_STRIPBYTECOUNTS, &rowbytes ) )
|
||||
{
|
||||
fprintf (stderr, "Can't fetch STRIPBYTECOUNTS.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
for( i = 0; i < length; i++ )
|
||||
{
|
||||
uint64 expect = 100 + i*10;
|
||||
|
||||
if( rowbytes[i] != expect )
|
||||
{
|
||||
fprintf( stderr,
|
||||
"%s:STRIPBYTECOUNTS[%d]: Got %X:%08X instead of %X:%08X.\n",
|
||||
filename, i,
|
||||
(int) (rowbytes[i] >> 32),
|
||||
(int) (rowbytes[i] & 0xFFFFFFFF),
|
||||
(int) (expect >> 32),
|
||||
(int) (expect & 0xFFFFFFFF) );
|
||||
goto failure;
|
||||
}
|
||||
}
|
||||
|
||||
TIFFClose( tif );
|
||||
|
||||
/* All tests passed; delete file and exit with success status. */
|
||||
unlink(filename);
|
||||
return 0;
|
||||
|
||||
failure:
|
||||
/* Something goes wrong; close file and return unsuccessful status. */
|
||||
TIFFClose(tif);
|
||||
/* unlink(filename); */
|
||||
|
||||
return 1;
|
||||
|
||||
}
|
||||
|
||||
/************************************************************************/
|
||||
/* main() */
|
||||
/************************************************************************/
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
(void) argc;
|
||||
(void) argv;
|
||||
int failure = 0;
|
||||
|
||||
failure |= test_packbits();
|
||||
|
||||
/* test fairly normal use */
|
||||
failure |= rewrite_test( "rewrite1.tif", 10, 0, 100 );
|
||||
failure |= rewrite_test( "rewrite2.tif", 10, 1, 100 );
|
||||
|
||||
/* test case of fitting all in directory entry */
|
||||
failure |= rewrite_test( "rewrite3.tif", 1, 0, 100 );
|
||||
failure |= rewrite_test( "rewrite4.tif", 1, 1, 100 );
|
||||
|
||||
/* test with very large values that don't fit in 4bytes (bigtiff only) */
|
||||
failure |= rewrite_test( "rewrite5.tif", 1000, 1, 0x6000000000ULL );
|
||||
failure |= rewrite_test( "rewrite6.tif", 1, 1, 0x6000000000ULL );
|
||||
|
||||
return failure;
|
||||
}
|
||||
|
||||
/* vim: set ts=8 sts=8 sw=8 noet: */
|
||||
@@ -0,0 +1,205 @@
|
||||
/* $Id: short_tag.c,v 1.8 2008/04/15 14:20:30 dron Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2004, Andrey Kiselev <dron@ak4719.spb.edu>
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and
|
||||
* its documentation for any purpose is hereby granted without fee, provided
|
||||
* that (i) the above copyright notices and this permission notice appear in
|
||||
* all copies of the software and related documentation, and (ii) the names of
|
||||
* Sam Leffler and Silicon Graphics may not be used in any advertising or
|
||||
* publicity relating to the software without the specific, prior written
|
||||
* permission of Sam Leffler and Silicon Graphics.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
||||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
|
||||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
|
||||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
|
||||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
* OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* TIFF Library
|
||||
*
|
||||
* Module to test SHORT tags read/write functions.
|
||||
*/
|
||||
|
||||
#include "tif_config.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include "tiffio.h"
|
||||
#include "tifftest.h"
|
||||
|
||||
static const char filename[] = "short_test.tiff";
|
||||
|
||||
#define SPP 3 /* Samples per pixel */
|
||||
const uint16 width = 1;
|
||||
const uint16 length = 1;
|
||||
const uint16 bps = 8;
|
||||
const uint16 photometric = PHOTOMETRIC_RGB;
|
||||
const uint16 rows_per_strip = 1;
|
||||
const uint16 planarconfig = PLANARCONFIG_CONTIG;
|
||||
|
||||
static const struct {
|
||||
const ttag_t tag;
|
||||
const uint16 value;
|
||||
} short_single_tags[] = {
|
||||
{ TIFFTAG_COMPRESSION, COMPRESSION_NONE },
|
||||
{ TIFFTAG_FILLORDER, FILLORDER_MSB2LSB },
|
||||
{ TIFFTAG_ORIENTATION, ORIENTATION_BOTRIGHT },
|
||||
{ TIFFTAG_RESOLUTIONUNIT, RESUNIT_INCH },
|
||||
{ TIFFTAG_MINSAMPLEVALUE, 23 },
|
||||
{ TIFFTAG_MAXSAMPLEVALUE, 241 },
|
||||
{ TIFFTAG_INKSET, INKSET_MULTIINK },
|
||||
{ TIFFTAG_NUMBEROFINKS, SPP },
|
||||
{ TIFFTAG_SAMPLEFORMAT, SAMPLEFORMAT_UINT }
|
||||
};
|
||||
#define NSINGLETAGS (sizeof(short_single_tags) / sizeof(short_single_tags[0]))
|
||||
|
||||
static const struct {
|
||||
const ttag_t tag;
|
||||
const uint16 values[2];
|
||||
} short_paired_tags[] = {
|
||||
{ TIFFTAG_PAGENUMBER, {1, 1} },
|
||||
{ TIFFTAG_HALFTONEHINTS, {0, 255} },
|
||||
{ TIFFTAG_DOTRANGE, {8, 16} },
|
||||
{ TIFFTAG_YCBCRSUBSAMPLING, {2, 1} }
|
||||
};
|
||||
#define NPAIREDTAGS (sizeof(short_paired_tags) / sizeof(short_paired_tags[0]))
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
TIFF *tif;
|
||||
size_t i;
|
||||
unsigned char buf[SPP] = { 0, 127, 255 };
|
||||
|
||||
/* Test whether we can write tags. */
|
||||
tif = TIFFOpen(filename, "w");
|
||||
if (!tif) {
|
||||
fprintf (stderr, "Can't create test TIFF file %s.\n", filename);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!TIFFSetField(tif, TIFFTAG_IMAGEWIDTH, width)) {
|
||||
fprintf (stderr, "Can't set ImageWidth tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_IMAGELENGTH, length)) {
|
||||
fprintf (stderr, "Can't set ImageLength tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, bps)) {
|
||||
fprintf (stderr, "Can't set BitsPerSample tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, SPP)) {
|
||||
fprintf (stderr, "Can't set SamplesPerPixel tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_ROWSPERSTRIP, rows_per_strip)) {
|
||||
fprintf (stderr, "Can't set SamplesPerPixel tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_PLANARCONFIG, planarconfig)) {
|
||||
fprintf (stderr, "Can't set PlanarConfiguration tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, photometric)) {
|
||||
fprintf (stderr, "Can't set PhotometricInterpretation tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
for (i = 0; i < NSINGLETAGS; i++) {
|
||||
if (!TIFFSetField(tif, short_single_tags[i].tag,
|
||||
short_single_tags[i].value)) {
|
||||
fprintf(stderr, "Can't set tag %lu.\n",
|
||||
(unsigned long)short_single_tags[i].tag);
|
||||
goto failure;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < NPAIREDTAGS; i++) {
|
||||
if (!TIFFSetField(tif, short_paired_tags[i].tag,
|
||||
short_paired_tags[i].values[0],
|
||||
short_paired_tags[i].values[1])) {
|
||||
fprintf(stderr, "Can't set tag %lu.\n",
|
||||
(unsigned long)short_paired_tags[i].tag);
|
||||
goto failure;
|
||||
}
|
||||
}
|
||||
|
||||
/* Write dummy pixel data. */
|
||||
if (!TIFFWriteScanline(tif, buf, 0, 0) < 0) {
|
||||
fprintf (stderr, "Can't write image data.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
TIFFClose(tif);
|
||||
|
||||
/* Ok, now test whether we can read written values. */
|
||||
tif = TIFFOpen(filename, "r");
|
||||
if (!tif) {
|
||||
fprintf (stderr, "Can't open test TIFF file %s.\n", filename);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (CheckLongField(tif, TIFFTAG_IMAGEWIDTH, width) < 0)
|
||||
goto failure;
|
||||
|
||||
if (CheckLongField(tif, TIFFTAG_IMAGELENGTH, length) < 0)
|
||||
goto failure;
|
||||
|
||||
if (CheckShortField(tif, TIFFTAG_BITSPERSAMPLE, bps) < 0)
|
||||
goto failure;
|
||||
|
||||
if (CheckShortField(tif, TIFFTAG_PHOTOMETRIC, photometric) < 0)
|
||||
goto failure;
|
||||
|
||||
if (CheckShortField(tif, TIFFTAG_SAMPLESPERPIXEL, SPP) < 0)
|
||||
goto failure;
|
||||
|
||||
if (CheckLongField(tif, TIFFTAG_ROWSPERSTRIP, rows_per_strip) < 0)
|
||||
goto failure;
|
||||
|
||||
if (CheckShortField(tif, TIFFTAG_PLANARCONFIG, planarconfig) < 0)
|
||||
goto failure;
|
||||
|
||||
for (i = 0; i < NSINGLETAGS; i++) {
|
||||
if (CheckShortField(tif, short_single_tags[i].tag,
|
||||
short_single_tags[i].value) < 0)
|
||||
goto failure;
|
||||
}
|
||||
|
||||
for (i = 0; i < NPAIREDTAGS; i++) {
|
||||
if (CheckShortPairedField(tif, short_paired_tags[i].tag,
|
||||
short_paired_tags[i].values) < 0)
|
||||
goto failure;
|
||||
}
|
||||
|
||||
TIFFClose(tif);
|
||||
|
||||
/* All tests passed; delete file and exit with success status. */
|
||||
unlink(filename);
|
||||
return 0;
|
||||
|
||||
failure:
|
||||
/*
|
||||
* Something goes wrong; close file and return unsuccessful status.
|
||||
* Do not remove the file for further manual investigation.
|
||||
*/
|
||||
TIFFClose(tif);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* vim: set ts=8 sts=8 sw=8 noet: */
|
||||
@@ -0,0 +1,290 @@
|
||||
/* $Id: strip.c,v 1.4 2008/03/28 01:42:06 bfriesen Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2004, Andrey Kiselev <dron@ak4719.spb.edu>
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and
|
||||
* its documentation for any purpose is hereby granted without fee, provided
|
||||
* that (i) the above copyright notices and this permission notice appear in
|
||||
* all copies of the software and related documentation, and (ii) the names of
|
||||
* Sam Leffler and Silicon Graphics may not be used in any advertising or
|
||||
* publicity relating to the software without the specific, prior written
|
||||
* permission of Sam Leffler and Silicon Graphics.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
||||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
|
||||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
|
||||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
|
||||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
* OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* TIFF Library
|
||||
*
|
||||
* Functions to test strip interface of libtiff.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "tiffio.h"
|
||||
|
||||
int
|
||||
write_strips(TIFF *tif, const tdata_t array, const tsize_t size)
|
||||
{
|
||||
tstrip_t strip, nstrips;
|
||||
tsize_t stripsize, offset;
|
||||
|
||||
stripsize = TIFFStripSize(tif);
|
||||
if (!stripsize) {
|
||||
fprintf (stderr, "Wrong size of strip.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
nstrips = TIFFNumberOfStrips(tif);
|
||||
for (offset = 0, strip = 0;
|
||||
offset < size && strip < nstrips;
|
||||
offset+=stripsize, strip++) {
|
||||
/*
|
||||
* Properly write last strip.
|
||||
*/
|
||||
tsize_t bufsize = size - offset;
|
||||
if (bufsize > stripsize)
|
||||
bufsize = stripsize;
|
||||
|
||||
if (TIFFWriteEncodedStrip(tif, strip, (char *)array + offset,
|
||||
bufsize) != bufsize) {
|
||||
fprintf (stderr, "Can't write strip %lu.\n",
|
||||
(unsigned long)strip);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
read_strips(TIFF *tif, const tdata_t array, const tsize_t size)
|
||||
{
|
||||
tstrip_t strip, nstrips;
|
||||
tsize_t stripsize, offset;
|
||||
tdata_t buf = NULL;
|
||||
|
||||
stripsize = TIFFStripSize(tif);
|
||||
if (!stripsize) {
|
||||
fprintf (stderr, "Wrong size of strip.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
buf = _TIFFmalloc(stripsize);
|
||||
if (!buf) {
|
||||
fprintf (stderr, "Can't allocate space for strip buffer.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
nstrips = TIFFNumberOfStrips(tif);
|
||||
for (offset = 0, strip = 0;
|
||||
offset < size && strip < nstrips;
|
||||
offset+=stripsize, strip++) {
|
||||
/*
|
||||
* Properly read last strip.
|
||||
*/
|
||||
tsize_t bufsize = size - offset;
|
||||
if (bufsize > stripsize)
|
||||
bufsize = stripsize;
|
||||
|
||||
if (TIFFReadEncodedStrip(tif, strip, buf, -1) != bufsize) {
|
||||
fprintf (stderr, "Can't read strip %lu.\n",
|
||||
(unsigned long)strip);
|
||||
return -1;
|
||||
}
|
||||
if (memcmp(buf, (char *)array + offset, bufsize) != 0) {
|
||||
fprintf (stderr, "Wrong data read for strip %lu.\n",
|
||||
(unsigned long)strip);
|
||||
_TIFFfree(buf);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
_TIFFfree(buf);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
create_image_striped(const char *name, uint32 width, uint32 length,
|
||||
uint32 rowsperstrip, uint16 compression,
|
||||
uint16 spp, uint16 bps, uint16 photometric,
|
||||
uint16 sampleformat, uint16 planarconfig,
|
||||
const tdata_t array, const tsize_t size)
|
||||
{
|
||||
TIFF *tif;
|
||||
|
||||
/* Test whether we can write tags. */
|
||||
tif = TIFFOpen(name, "w");
|
||||
if (!tif)
|
||||
goto openfailure;
|
||||
|
||||
if (!TIFFSetField(tif, TIFFTAG_IMAGEWIDTH, width)) {
|
||||
fprintf (stderr, "Can't set ImageWidth tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_IMAGELENGTH, length)) {
|
||||
fprintf (stderr, "Can't set ImageLength tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, bps)) {
|
||||
fprintf (stderr, "Can't set BitsPerSample tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, spp)) {
|
||||
fprintf (stderr, "Can't set SamplesPerPixel tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_ROWSPERSTRIP, rowsperstrip)) {
|
||||
fprintf (stderr, "Can't set RowsPerStrip tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_PLANARCONFIG, planarconfig)) {
|
||||
fprintf (stderr, "Can't set PlanarConfiguration tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, photometric)) {
|
||||
fprintf (stderr, "Can't set PhotometricInterpretation tag.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
if (write_strips(tif, array, size) < 0) {
|
||||
fprintf (stderr, "Can't write image data.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
TIFFClose(tif);
|
||||
return 0;
|
||||
|
||||
failure:
|
||||
TIFFClose(tif);
|
||||
openfailure:
|
||||
fprintf (stderr, "Can't create test TIFF file %s:\n"
|
||||
" ImageWidth=%ld, ImageLength=%ld, RowsPerStrip=%ld, Compression=%d,\n"
|
||||
" BitsPerSample=%d, SamplesPerPixel=%d, SampleFormat=%d,\n"
|
||||
" PlanarConfiguration=%d, PhotometricInterpretation=%d.\n",
|
||||
name, (long) width, (long) length, (long) rowsperstrip,
|
||||
compression, bps, spp, sampleformat, planarconfig,
|
||||
photometric);
|
||||
return -1;
|
||||
}
|
||||
|
||||
int
|
||||
read_image_striped(const char *name, uint32 width, uint32 length,
|
||||
uint32 rowsperstrip, uint16 compression,
|
||||
uint16 spp, uint16 bps, uint16 photometric,
|
||||
uint16 sampleformat, uint16 planarconfig,
|
||||
const tdata_t array, const tsize_t size)
|
||||
{
|
||||
TIFF *tif;
|
||||
uint16 value_u16;
|
||||
uint32 value_u32;
|
||||
|
||||
/* Test whether we can read written values. */
|
||||
tif = TIFFOpen(name, "r");
|
||||
if (!tif)
|
||||
goto openfailure;
|
||||
|
||||
if (TIFFIsTiled(tif)) {
|
||||
fprintf (stderr, "Can't read image %s, it is tiled.\n",
|
||||
name);
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &value_u32)
|
||||
|| value_u32 != width) {
|
||||
fprintf (stderr, "Can't get tag %d.\n", TIFFTAG_IMAGEWIDTH);
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &value_u32)
|
||||
|| value_u32 != length) {
|
||||
fprintf (stderr, "Can't get tag %d.\n", TIFFTAG_IMAGELENGTH);
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFGetField(tif, TIFFTAG_BITSPERSAMPLE, &value_u16)
|
||||
|| value_u16 != bps) {
|
||||
fprintf (stderr, "Can't get tag %d.\n", TIFFTAG_BITSPERSAMPLE);
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFGetField(tif, TIFFTAG_PHOTOMETRIC, &value_u16)
|
||||
|| value_u16 != photometric) {
|
||||
fprintf (stderr, "Can't get tag %d.\n", TIFFTAG_PHOTOMETRIC);
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFGetField(tif, TIFFTAG_SAMPLESPERPIXEL, &value_u16)
|
||||
|| value_u16 != spp) {
|
||||
fprintf (stderr, "Can't get tag %d.\n", TIFFTAG_SAMPLESPERPIXEL);
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFGetField(tif, TIFFTAG_ROWSPERSTRIP, &value_u32)
|
||||
|| value_u32 != rowsperstrip) {
|
||||
fprintf (stderr, "Can't get tag %d.\n", TIFFTAG_ROWSPERSTRIP);
|
||||
goto failure;
|
||||
}
|
||||
if (!TIFFGetField(tif, TIFFTAG_PLANARCONFIG, &value_u16)
|
||||
|| value_u16 != planarconfig) {
|
||||
fprintf (stderr, "Can't get tag %d.\n", TIFFTAG_PLANARCONFIG);
|
||||
goto failure;
|
||||
}
|
||||
|
||||
if (read_strips(tif, array, size) < 0) {
|
||||
fprintf (stderr, "Can't read image data.\n");
|
||||
goto failure;
|
||||
}
|
||||
|
||||
TIFFClose(tif);
|
||||
return 0;
|
||||
|
||||
failure:
|
||||
TIFFClose(tif);
|
||||
openfailure:
|
||||
fprintf (stderr, "Can't read test TIFF file %s:\n"
|
||||
" ImageWidth=%ld, ImageLength=%ld, RowsPerStrip=%ld, Compression=%d,\n"
|
||||
" BitsPerSample=%d, SamplesPerPixel=%d, SampleFormat=%d,\n"
|
||||
" PlanarConfiguration=%d, PhotometricInterpretation=%d.\n",
|
||||
name, (long) width, (long) length, (long) rowsperstrip,
|
||||
compression, bps, spp, sampleformat, planarconfig,
|
||||
photometric);
|
||||
return -1;
|
||||
}
|
||||
|
||||
int
|
||||
write_scanlines(TIFF *tif, const tdata_t array, const tsize_t size)
|
||||
{
|
||||
uint32 length, row;
|
||||
tsize_t scanlinesize, offset;
|
||||
(void) size;
|
||||
|
||||
if (!TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &length)) {
|
||||
fprintf (stderr, "Can't get tag %d.\n", TIFFTAG_IMAGELENGTH);
|
||||
return -1;
|
||||
}
|
||||
|
||||
scanlinesize = TIFFScanlineSize(tif);
|
||||
if (!scanlinesize) {
|
||||
fprintf (stderr, "Wrong size of scanline.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
for (offset = 0, row = 0; row < length; offset+=scanlinesize, row++) {
|
||||
if (TIFFWriteScanline(tif, (char *)array + offset, row, 0) < 0) {
|
||||
fprintf (stderr,
|
||||
"Can't write image data at row %lu.\n", (long) row);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* vim: set ts=8 sts=8 sw=8 noet: */
|
||||
@@ -0,0 +1,157 @@
|
||||
/* $Id: strip_rw.c,v 1.6 2008/03/28 01:42:07 bfriesen Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2004, Andrey Kiselev <dron@ak4719.spb.edu>
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and
|
||||
* its documentation for any purpose is hereby granted without fee, provided
|
||||
* that (i) the above copyright notices and this permission notice appear in
|
||||
* all copies of the software and related documentation, and (ii) the names of
|
||||
* Sam Leffler and Silicon Graphics may not be used in any advertising or
|
||||
* publicity relating to the software without the specific, prior written
|
||||
* permission of Sam Leffler and Silicon Graphics.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
||||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
|
||||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
|
||||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
|
||||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
* OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* TIFF Library
|
||||
*
|
||||
* Test libtiff input/output routines.
|
||||
*/
|
||||
|
||||
#include "tif_config.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include "tiffio.h"
|
||||
#include "test_arrays.h"
|
||||
|
||||
extern int
|
||||
create_image_striped(const char *, uint32, uint32, uint32, uint16, uint16,
|
||||
uint16, uint16, uint16, uint16, const tdata_t,
|
||||
const tsize_t);
|
||||
extern int
|
||||
read_image_striped(const char *, uint32, uint32, uint32, uint16, uint16,
|
||||
uint16, uint16, uint16, uint16, const tdata_t,
|
||||
const tsize_t);
|
||||
|
||||
const char *filename = "strip_test.tiff";
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
uint32 rowsperstrip;
|
||||
uint16 compression;
|
||||
uint16 spp, bps, photometric, sampleformat, planarconfig;
|
||||
(void) argc;
|
||||
(void) argv;
|
||||
|
||||
/*
|
||||
* Test two special cases: image consisting from single line and image
|
||||
* consisting from single column.
|
||||
*/
|
||||
rowsperstrip = 1;
|
||||
compression = COMPRESSION_NONE;
|
||||
spp = 1;
|
||||
bps = 8;
|
||||
photometric = PHOTOMETRIC_MINISBLACK;
|
||||
sampleformat = SAMPLEFORMAT_UINT;
|
||||
planarconfig = PLANARCONFIG_CONTIG;
|
||||
|
||||
if (create_image_striped(filename, XSIZE * YSIZE, 1, rowsperstrip,
|
||||
compression, spp, bps, photometric,
|
||||
sampleformat, planarconfig,
|
||||
(const tdata_t) byte_array1, byte_array1_size) < 0) {
|
||||
fprintf (stderr, "Can't create TIFF file %s.\n", filename);
|
||||
goto failure;
|
||||
}
|
||||
if (read_image_striped(filename, XSIZE * YSIZE, 1, rowsperstrip,
|
||||
compression, spp, bps, photometric,
|
||||
sampleformat, planarconfig,
|
||||
(const tdata_t) byte_array1, byte_array1_size) < 0) {
|
||||
fprintf (stderr, "Can't read TIFF file %s.\n", filename);
|
||||
goto failure;
|
||||
}
|
||||
unlink(filename);
|
||||
|
||||
if (create_image_striped(filename, 1, XSIZE * YSIZE, rowsperstrip,
|
||||
compression, spp, bps, photometric,
|
||||
sampleformat, planarconfig,
|
||||
(const tdata_t) byte_array1, byte_array1_size) < 0) {
|
||||
fprintf (stderr, "Can't create TIFF file %s.\n", filename);
|
||||
goto failure;
|
||||
}
|
||||
if (read_image_striped(filename, 1, XSIZE * YSIZE, rowsperstrip,
|
||||
compression, spp, bps, photometric,
|
||||
sampleformat, planarconfig,
|
||||
(const tdata_t) byte_array1, byte_array1_size) < 0) {
|
||||
fprintf (stderr, "Can't read TIFF file %s.\n", filename);
|
||||
goto failure;
|
||||
}
|
||||
unlink(filename);
|
||||
|
||||
/*
|
||||
* Test one-channel image with different parameters.
|
||||
*/
|
||||
rowsperstrip = 1;
|
||||
spp = 1;
|
||||
bps = 8;
|
||||
photometric = PHOTOMETRIC_MINISBLACK;
|
||||
sampleformat = SAMPLEFORMAT_UINT;
|
||||
planarconfig = PLANARCONFIG_CONTIG;
|
||||
|
||||
if (create_image_striped(filename, XSIZE, YSIZE, rowsperstrip,
|
||||
compression, spp, bps, photometric,
|
||||
sampleformat, planarconfig,
|
||||
(const tdata_t) byte_array1, byte_array1_size) < 0) {
|
||||
fprintf (stderr, "Can't create TIFF file %s.\n", filename);
|
||||
goto failure;
|
||||
}
|
||||
if (read_image_striped(filename, XSIZE, YSIZE, rowsperstrip,
|
||||
compression, spp, bps, photometric,
|
||||
sampleformat, planarconfig,
|
||||
(const tdata_t) byte_array1, byte_array1_size) < 0) {
|
||||
fprintf (stderr, "Can't read TIFF file %s.\n", filename);
|
||||
goto failure;
|
||||
}
|
||||
unlink(filename);
|
||||
|
||||
rowsperstrip = YSIZE;
|
||||
if (create_image_striped(filename, XSIZE, YSIZE, rowsperstrip,
|
||||
compression, spp, bps, photometric,
|
||||
sampleformat, planarconfig,
|
||||
(const tdata_t) byte_array1, byte_array1_size) < 0) {
|
||||
fprintf (stderr, "Can't create TIFF file %s.\n", filename);
|
||||
goto failure;
|
||||
}
|
||||
if (read_image_striped(filename, XSIZE, YSIZE, rowsperstrip,
|
||||
compression, spp, bps, photometric,
|
||||
sampleformat, planarconfig,
|
||||
(const tdata_t) byte_array1, byte_array1_size) < 0) {
|
||||
fprintf (stderr, "Can't read TIFF file %s.\n", filename);
|
||||
goto failure;
|
||||
}
|
||||
unlink(filename);
|
||||
|
||||
return 0;
|
||||
|
||||
failure:
|
||||
unlink(filename);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* vim: set ts=8 sts=8 sw=8 noet: */
|
||||
@@ -0,0 +1,829 @@
|
||||
/* $Id: test_arrays.c,v 1.3 2006/03/23 14:54:02 dron Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2004, Andrey Kiselev <dron@ak4719.spb.edu>
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and
|
||||
* its documentation for any purpose is hereby granted without fee, provided
|
||||
* that (i) the above copyright notices and this permission notice appear in
|
||||
* all copies of the software and related documentation, and (ii) the names of
|
||||
* Sam Leffler and Silicon Graphics may not be used in any advertising or
|
||||
* publicity relating to the software without the specific, prior written
|
||||
* permission of Sam Leffler and Silicon Graphics.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
||||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
|
||||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
|
||||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
|
||||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
* OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* TIFF Library
|
||||
*
|
||||
* Numerical arrays used to test libtiff's read/write functions.
|
||||
*/
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#include "test_arrays.h"
|
||||
|
||||
const unsigned char byte_array1[XSIZE * YSIZE]=
|
||||
{
|
||||
86, 84, 86, 90, 89, 85, 90, 78, 77, 79, 75, 77, 79, 86,
|
||||
87, 83, 82, 87, 89, 88, 86, 87, 88, 87, 81, 84, 85, 85,
|
||||
84, 86, 88, 91, 96, 95, 97, 95, 89,
|
||||
85, 82, 81, 88, 89, 85, 89, 83, 74, 79, 76, 77, 80, 87,
|
||||
87, 84, 84, 88, 90, 89, 87, 85, 87, 88, 83, 80, 82, 84,
|
||||
85, 87, 90, 95, 96, 95, 95, 92, 90,
|
||||
85, 81, 79, 84, 90, 87, 88, 88, 73, 79, 75, 76, 79, 88,
|
||||
88, 87, 85, 90, 92, 89, 88, 88, 87, 86, 84, 82, 82, 83,
|
||||
87, 89, 93, 94, 93, 93, 92, 92, 96,
|
||||
85, 82, 76, 80, 88, 89, 88, 89, 73, 80, 75, 75, 77, 89,
|
||||
92, 93, 91, 89, 94, 92, 90, 89, 88, 84, 84, 82, 82, 85,
|
||||
88, 91, 94, 93, 93, 89, 90, 96, 96,
|
||||
87, 83, 75, 77, 83, 89, 90, 90, 74, 78, 76, 76, 76, 84,
|
||||
94, 100, 89, 92, 94, 92, 90, 89, 90, 85, 84, 83, 83, 87,
|
||||
91, 92, 88, 92, 91, 88, 90, 97, 95,
|
||||
89, 83, 74, 77, 82, 84, 90, 92, 78, 72, 76, 75, 75, 81,
|
||||
95, 101, 95, 92, 95, 93, 90, 89, 90, 87, 86, 84, 86, 88,
|
||||
90, 90, 87, 90, 89, 90, 89, 98, 98,
|
||||
92, 84, 75, 76, 81, 81, 86, 91, 81, 72, 74, 74, 75, 81,
|
||||
104, 108, 93, 92, 95, 94, 88, 87, 89, 87, 85, 85, 88, 89,
|
||||
93, 91, 88, 88, 91, 88, 91, 106, 108,
|
||||
93, 89, 78, 75, 77, 80, 85, 86, 85, 73, 72, 73, 74, 79,
|
||||
102, 101, 88, 92, 93, 91, 87, 87, 86, 87, 85, 86, 88, 89,
|
||||
94, 94, 90, 88, 85, 86, 98, 109, 113,
|
||||
92, 93, 83, 76, 74, 79, 84, 85, 81, 75, 72, 73, 74, 79,
|
||||
105, 86, 86, 92, 96, 98, 104, 86, 85, 85, 85, 88, 90, 90,
|
||||
93, 92, 88, 87, 86, 89, 97, 110, 109,
|
||||
92, 93, 89, 78, 79, 78, 89, 84, 75, 76, 73, 72, 73, 78,
|
||||
105, 83, 82, 88, 83, 107, 95, 84, 85, 84, 86, 87, 90, 91,
|
||||
92, 90, 88, 87, 89, 90, 91, 99, 107,
|
||||
96, 94, 91, 82, 84, 86, 91, 87, 75, 74, 73, 73, 73, 77,
|
||||
101, 86, 83, 89, 92, 99, 98, 86, 86, 87, 83, 84, 89, 89,
|
||||
92, 92, 92, 96, 96, 87, 91, 90, 98,
|
||||
96, 97, 94, 87, 88, 89, 92, 90, 79, 72, 73, 73, 74, 77,
|
||||
100, 92, 84, 86, 98, 100, 92, 87, 88, 88, 84, 83, 87, 89,
|
||||
91, 94, 94, 96, 93, 87, 87, 84, 109,
|
||||
93, 92, 95, 92, 94, 93, 92, 91, 82, 72, 73, 74, 74, 76,
|
||||
95, 89, 85, 84, 102, 89, 85, 88, 94, 86, 82, 83, 82, 91,
|
||||
94, 97, 90, 92, 85, 90, 85, 79, 125,
|
||||
89, 96, 94, 90, 94, 95, 91, 91, 85, 76, 72, 73, 74, 75,
|
||||
88, 100, 83, 84, 84, 83, 85, 88, 90, 85, 84, 83, 84, 88,
|
||||
92, 93, 90, 89, 84, 90, 94, 79, 139,
|
||||
93, 97, 97, 93, 92, 95, 91, 90, 87, 81, 74, 73, 73, 74,
|
||||
85, 97, 95, 95, 89, 86, 86, 92, 87, 85, 84, 90, 86, 85,
|
||||
91, 87, 87, 86, 93, 124, 140, 106, 143,
|
||||
101, 95, 97, 97, 96, 95, 84, 88, 87, 82, 78, 73, 73, 74,
|
||||
82, 92, 104, 95, 88, 89, 87, 89, 86, 85, 86, 87, 87, 81,
|
||||
81, 83, 91, 106, 131, 153, 151, 123, 133,
|
||||
99, 101, 102, 99, 96, 90, 83, 82, 85, 84, 79, 76, 74, 74,
|
||||
78, 81, 89, 96, 90, 93, 88, 88, 86, 88, 89, 95, 89, 82,
|
||||
81, 85, 104, 118, 141, 160, 129, 137, 147,
|
||||
103, 104, 98, 99, 90, 88, 81, 76, 81, 83, 79, 77, 75, 75,
|
||||
75, 76, 80, 90, 94, 87, 86, 87, 92, 85, 85, 85, 87, 87,
|
||||
89, 91, 112, 115, 145, 154, 145, 141, 147,
|
||||
106, 103, 100, 99, 92, 82, 78, 75, 78, 81, 79, 77, 77, 78,
|
||||
78, 76, 77, 81, 89, 87, 84, 84, 90, 86, 85, 84, 80, 85,
|
||||
97, 104, 119, 119, 149, 147, 144, 146, 152,
|
||||
107, 105, 103, 100, 93, 83, 78, 74, 74, 79, 78, 77, 76, 78,
|
||||
80, 79, 76, 78, 83, 84, 81, 81, 84, 83, 82, 78, 78, 85,
|
||||
86, 97, 105, 114, 145, 146, 148, 147, 150,
|
||||
107, 105, 103, 97, 92, 84, 72, 72, 75, 77, 76, 75, 76, 79,
|
||||
80, 80, 77, 76, 82, 81, 80, 81, 80, 80, 80, 77, 74, 74,
|
||||
73, 77, 91, 110, 132, 141, 152, 152, 145,
|
||||
107, 105, 103, 96, 92, 86, 73, 71, 73, 75, 75, 76, 76, 78,
|
||||
80, 80, 80, 98, 80, 80, 82, 82, 80, 78, 76, 73, 71, 72,
|
||||
71, 74, 80, 108, 119, 136, 158, 142, 137,
|
||||
107, 104, 101, 97, 85, 87, 75, 70, 70, 74, 74, 75, 77, 78,
|
||||
80, 82, 110, 117, 110, 78, 81, 83, 81, 78, 76, 73, 71, 69,
|
||||
68, 71, 74, 95, 120, 138, 148, 143, 139
|
||||
};
|
||||
|
||||
const size_t byte_array1_size = sizeof(byte_array1);
|
||||
|
||||
const unsigned char byte_array2[YSIZE * XSIZE] =
|
||||
{
|
||||
77, 73, 76, 80, 79, 75, 82, 65, 62, 64, 59, 59, 61, 72,
|
||||
70, 67, 65, 70, 71, 70, 68, 66, 65, 67, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 65, 63, 63, 62,
|
||||
75, 71, 71, 79, 81, 75, 81, 73, 59, 65, 60, 60, 64, 73,
|
||||
73, 68, 66, 70, 72, 71, 68, 66, 66, 67, 66, 66, 66, 67,
|
||||
67, 67, 66, 67, 66, 64, 63, 63, 63,
|
||||
76, 71, 66, 73, 81, 78, 80, 79, 59, 66, 60, 59, 62, 74,
|
||||
74, 71, 67, 70, 73, 71, 68, 66, 65, 65, 66, 66, 67, 67,
|
||||
67, 67, 67, 67, 66, 64, 64, 64, 64,
|
||||
76, 72, 64, 68, 79, 81, 80, 80, 59, 68, 60, 59, 60, 75,
|
||||
75, 73, 67, 68, 73, 72, 68, 66, 65, 63, 67, 67, 67, 67,
|
||||
68, 67, 67, 66, 65, 64, 65, 65, 65,
|
||||
79, 72, 63, 66, 73, 80, 83, 82, 60, 65, 61, 61, 60, 66,
|
||||
75, 75, 65, 70, 73, 72, 68, 66, 65, 64, 68, 67, 68, 68,
|
||||
68, 67, 67, 66, 65, 65, 65, 66, 65,
|
||||
81, 73, 62, 65, 72, 74, 82, 85, 66, 59, 62, 60, 60, 63,
|
||||
75, 76, 68, 69, 72, 72, 68, 66, 66, 65, 67, 68, 68, 68,
|
||||
68, 68, 66, 66, 64, 66, 65, 66, 66,
|
||||
84, 74, 64, 64, 70, 71, 78, 84, 70, 58, 60, 59, 59, 63,
|
||||
75, 80, 73, 67, 72, 72, 68, 66, 66, 65, 66, 68, 68, 68,
|
||||
68, 68, 66, 65, 65, 65, 66, 67, 68,
|
||||
87, 81, 66, 63, 65, 68, 76, 76, 75, 59, 58, 59, 59, 60,
|
||||
71, 92, 65, 64, 74, 72, 69, 67, 65, 65, 65, 68, 69, 68,
|
||||
69, 67, 65, 65, 65, 65, 67, 68, 69,
|
||||
86, 86, 73, 64, 62, 67, 75, 76, 70, 61, 58, 58, 59, 60,
|
||||
81, 68, 59, 63, 74, 90, 99, 67, 65, 65, 64, 67, 68, 68,
|
||||
68, 67, 65, 65, 66, 65, 66, 68, 68,
|
||||
85, 85, 80, 66, 67, 67, 81, 74, 62, 63, 59, 58, 58, 60,
|
||||
93, 61, 59, 59, 68, 115, 76, 67, 66, 64, 64, 66, 68, 68,
|
||||
68, 66, 65, 65, 66, 65, 64, 65, 69,
|
||||
90, 87, 83, 71, 74, 77, 83, 79, 63, 60, 59, 59, 58, 58,
|
||||
90, 61, 59, 59, 67, 80, 71, 68, 66, 64, 63, 63, 68, 68,
|
||||
68, 66, 65, 66, 67, 65, 64, 62, 87,
|
||||
91, 92, 86, 76, 78, 81, 85, 82, 67, 59, 59, 59, 59, 60,
|
||||
88, 72, 59, 60, 74, 80, 70, 67, 66, 64, 62, 60, 65, 68,
|
||||
67, 66, 65, 67, 66, 64, 62, 59, 111,
|
||||
84, 84, 87, 85, 87, 85, 84, 84, 72, 59, 59, 59, 59, 59,
|
||||
73, 71, 62, 59, 100, 70, 70, 67, 66, 64, 60, 58, 58, 67,
|
||||
68, 66, 65, 66, 64, 63, 59, 56, 131,
|
||||
80, 90, 87, 83, 88, 89, 84, 83, 76, 64, 59, 59, 59, 58,
|
||||
59, 97, 64, 62, 71, 68, 70, 73, 66, 63, 61, 58, 58, 62,
|
||||
67, 66, 64, 65, 63, 63, 61, 57, 149,
|
||||
86, 91, 92, 87, 85, 88, 83, 81, 78, 69, 61, 59, 59, 59,
|
||||
59, 61, 83, 72, 67, 67, 69, 69, 66, 64, 61, 72, 56, 57,
|
||||
64, 64, 64, 64, 65, 115, 150, 93, 151,
|
||||
97, 89, 91, 92, 89, 88, 74, 80, 78, 71, 65, 59, 58, 59,
|
||||
58, 59, 71, 72, 67, 70, 70, 69, 67, 64, 63, 66, 56, 54,
|
||||
57, 59, 64, 87, 139, 162, 160, 128, 141,
|
||||
94, 96, 97, 94, 89, 82, 71, 70, 76, 73, 67, 61, 59, 59,
|
||||
58, 59, 61, 71, 67, 75, 70, 68, 70, 65, 63, 63, 59, 56,
|
||||
54, 55, 90, 121, 149, 168, 138, 144, 157,
|
||||
99, 100, 93, 93, 82, 80, 70, 62, 70, 72, 67, 63, 60, 60,
|
||||
58, 58, 60, 68, 70, 70, 69, 68, 79, 68, 64, 62, 60, 59,
|
||||
57, 57, 88, 120, 151, 162, 154, 149, 155,
|
||||
103, 99, 95, 94, 84, 73, 67, 62, 65, 69, 67, 64, 63, 64,
|
||||
63, 59, 60, 65, 71, 69, 69, 67, 78, 65, 63, 61, 59, 61,
|
||||
60, 68, 100, 128, 155, 155, 152, 155, 164,
|
||||
104, 102, 99, 95, 86, 74, 67, 61, 61, 66, 65, 63, 63, 64,
|
||||
65, 63, 60, 63, 70, 69, 67, 67, 67, 65, 62, 60, 58, 57,
|
||||
62, 58, 71, 117, 150, 154, 157, 155, 163,
|
||||
104, 101, 99, 91, 84, 74, 59, 59, 62, 64, 63, 61, 62, 64,
|
||||
64, 64, 61, 60, 69, 68, 67, 69, 67, 65, 62, 59, 58, 57,
|
||||
57, 56, 59, 104, 137, 147, 159, 161, 158,
|
||||
104, 101, 99, 90, 85, 77, 60, 57, 60, 62, 62, 62, 63, 64,
|
||||
65, 65, 66, 100, 67, 67, 69, 69, 67, 65, 63, 60, 58, 56,
|
||||
54, 55, 56, 77, 122, 142, 166, 157, 150,
|
||||
104, 101, 97, 92, 77, 79, 64, 57, 57, 62, 62, 62, 64, 65,
|
||||
66, 65, 115, 138, 129, 64, 68, 70, 68, 66, 64, 60, 58, 56,
|
||||
53, 53, 56, 62, 115, 143, 157, 156, 159
|
||||
};
|
||||
|
||||
const size_t byte_array2_size = sizeof(byte_array2);
|
||||
|
||||
const unsigned char byte_array3[YSIZE * XSIZE] =
|
||||
{
|
||||
211, 221, 216, 201, 205, 216, 195, 236, 244, 237, 250, 250, 248, 218,
|
||||
223, 232, 236, 224, 221, 221, 227, 231, 232, 227, 229, 227, 227, 225,
|
||||
227, 225, 226, 226, 226, 228, 234, 234, 234, 216, 226, 228, 205, 200,
|
||||
214, 198, 215, 250, 233, 247, 250, 242, 219, 220, 229, 235, 225, 217,
|
||||
220, 227, 232, 230, 228, 229, 228, 227, 224, 225, 223, 226, 225, 226,
|
||||
230, 233, 233, 234, 213, 227, 237, 220, 200, 204, 202, 201, 248, 231,
|
||||
246, 250, 245, 214, 215, 223, 232, 225, 218, 218, 225, 230, 232, 231,
|
||||
229, 227, 225, 224, 223, 226, 224, 225, 228, 229, 230, 232, 231, 215,
|
||||
223, 242, 233, 206, 200, 201, 197, 250, 227, 250, 249, 248, 211, 212,
|
||||
216, 233, 229, 216, 218, 225, 230, 232, 237, 226, 224, 224, 223, 225,
|
||||
225, 224, 225, 228, 229, 231, 229, 231, 208, 220, 247, 238, 221, 202,
|
||||
194, 194, 245, 237, 247, 247, 249, 234, 210, 212, 237, 222, 219, 217,
|
||||
226, 229, 232, 235, 222, 222, 223, 223, 223, 224, 224, 227, 226, 229,
|
||||
229, 228, 231, 200, 221, 247, 239, 224, 217, 196, 189, 229, 248, 245,
|
||||
248, 250, 241, 210, 210, 230, 225, 218, 218, 224, 230, 230, 229, 224,
|
||||
222, 222, 222, 222, 223, 225, 226, 231, 226, 228, 229, 230, 191, 216,
|
||||
246, 245, 226, 228, 207, 191, 221, 251, 248, 249, 251, 245, 214, 214,
|
||||
233, 229, 217, 217, 224, 229, 230, 229, 225, 220, 223, 221, 222, 224,
|
||||
224, 227, 230, 227, 226, 229, 230, 187, 199, 238, 248, 242, 231, 213,
|
||||
211, 209, 246, 248, 251, 251, 250, 226, 215, 236, 237, 217, 215, 222,
|
||||
226, 229, 229, 227, 222, 222, 223, 222, 225, 227, 228, 226, 227, 228,
|
||||
228, 230, 188, 189, 221, 243, 247, 237, 215, 209, 223, 241, 248, 248,
|
||||
250, 248, 228, 234, 251, 239, 219, 210, 205, 224, 229, 228, 230, 221,
|
||||
223, 223, 222, 226, 229, 228, 224, 227, 229, 230, 232, 190, 190, 201,
|
||||
235, 236, 238, 198, 214, 243, 238, 248, 248, 250, 249, 215, 244, 250,
|
||||
250, 240, 168, 220, 224, 228, 230, 231, 226, 221, 224, 223, 226, 230,
|
||||
227, 226, 226, 230, 233, 234, 179, 185, 195, 224, 215, 210, 195, 204,
|
||||
239, 245, 250, 250, 252, 254, 216, 243, 249, 249, 233, 210, 215, 223,
|
||||
227, 230, 234, 234, 224, 223, 223, 227, 230, 226, 226, 228, 231, 235,
|
||||
212, 178, 174, 190, 211, 207, 199, 189, 194, 230, 250, 250, 250, 253,
|
||||
253, 222, 225, 250, 248, 218, 216, 217, 225, 226, 232, 239, 242, 229,
|
||||
223, 224, 229, 230, 225, 228, 230, 236, 241, 183, 194, 194, 185, 190,
|
||||
185, 190, 191, 191, 219, 250, 251, 250, 253, 254, 241, 225, 246, 249,
|
||||
198, 217, 220, 224, 225, 234, 241, 242, 246, 224, 223, 227, 229, 227,
|
||||
228, 234, 237, 245, 149, 203, 178, 182, 193, 185, 179, 191, 194, 211,
|
||||
236, 252, 252, 254, 254, 253, 192, 240, 244, 235, 224, 220, 229, 224,
|
||||
236, 239, 243, 244, 236, 224, 229, 230, 229, 231, 230, 233, 244, 128,
|
||||
188, 177, 171, 184, 191, 182, 196, 197, 208, 224, 247, 253, 255, 252,
|
||||
250, 248, 226, 216, 228, 230, 220, 220, 227, 234, 237, 231, 247, 244,
|
||||
231, 231, 229, 228, 229, 182, 128, 196, 118, 160, 182, 174, 172, 179,
|
||||
183, 216, 203, 206, 220, 236, 253, 254, 253, 253, 249, 225, 219, 232,
|
||||
230, 220, 224, 227, 233, 237, 234, 244, 250, 245, 240, 224, 212, 174,
|
||||
123, 124, 176, 127, 171, 163, 161, 167, 177, 198, 221, 228, 212, 215,
|
||||
233, 245, 252, 255, 253, 252, 251, 223, 231, 216, 222, 227, 231, 231,
|
||||
234, 227, 238, 245, 249, 244, 210, 177, 124, 129, 134, 124, 113, 156,
|
||||
155, 172, 168, 197, 201, 224, 247, 224, 219, 233, 242, 249, 250, 252,
|
||||
254, 252, 230, 230, 224, 224, 225, 225, 227, 232, 232, 235, 239, 239,
|
||||
241, 213, 178, 131, 128, 128, 120, 114, 149, 157, 165, 168, 191, 218,
|
||||
231, 246, 237, 226, 234, 241, 243, 239, 244, 252, 249, 237, 225, 226,
|
||||
224, 227, 220, 229, 235, 235, 239, 238, 236, 230, 204, 177, 125, 131,
|
||||
127, 117, 111, 146, 151, 158, 166, 187, 215, 230, 246, 246, 231, 238,
|
||||
243, 246, 243, 241, 244, 253, 245, 226, 226, 229, 229, 229, 231, 236,
|
||||
238, 241, 240, 241, 235, 224, 188, 134, 123, 127, 116, 116, 144, 151,
|
||||
158, 173, 190, 214, 251, 250, 243, 236, 242, 249, 246, 241, 241, 244,
|
||||
251, 251, 228, 230, 230, 226, 232, 231, 236, 241, 243, 244, 243, 243,
|
||||
235, 200, 150, 128, 122, 119, 117, 144, 151, 156, 176, 190, 207, 246,
|
||||
253, 244, 239, 244, 246, 244, 242, 240, 243, 249, 198, 239, 234, 226,
|
||||
226, 228, 234, 238, 241, 244, 245, 247, 250, 244, 219, 182, 138, 118,
|
||||
118, 116, 143, 150, 162, 173, 208, 205, 238, 253, 251, 241, 244, 244,
|
||||
242, 243, 238, 246, 193, 146, 173, 246, 231, 223, 230, 232, 236, 240,
|
||||
245, 247, 252, 252, 245, 233, 195, 138, 114, 118, 108
|
||||
};
|
||||
|
||||
const size_t byte_array3_size = sizeof(byte_array3);
|
||||
|
||||
const float array_float1[YSIZE * XSIZE] =
|
||||
{
|
||||
234.866, 229.404, 234.866, 245.790, 243.059, 232.135, 245.790, 213.018,
|
||||
210.287, 215.749, 204.825, 210.287, 215.749, 234.866, 237.597, 226.673,
|
||||
223.942, 237.597, 243.059, 240.328, 234.866, 237.597, 240.328, 237.597,
|
||||
221.211, 229.404, 232.135, 232.135, 229.404, 234.866, 240.328, 248.521,
|
||||
262.176, 259.445, 264.907, 259.445, 243.059,
|
||||
232.135, 223.942, 221.211, 240.328, 243.059, 232.135, 243.059, 226.673,
|
||||
202.094, 215.749, 207.556, 210.287, 218.480, 237.597, 237.597, 229.404,
|
||||
229.404, 240.328, 245.790, 243.059, 237.597, 232.135, 237.597, 240.328,
|
||||
226.673, 218.480, 223.942, 229.404, 232.135, 237.597, 245.790, 259.445,
|
||||
262.176, 259.445, 259.445, 251.252, 245.790,
|
||||
232.135, 221.211, 215.749, 229.404, 245.790, 237.597, 240.328, 240.328,
|
||||
199.363, 215.749, 204.825, 207.556, 215.749, 240.328, 240.328, 237.597,
|
||||
232.135, 245.790, 251.252, 243.059, 240.328, 240.328, 237.597, 234.866,
|
||||
229.404, 223.942, 223.942, 226.673, 237.597, 243.059, 253.983, 256.714,
|
||||
253.983, 253.983, 251.252, 251.252, 262.176,
|
||||
232.135, 223.942, 207.556, 218.480, 240.328, 243.059, 240.328, 243.059,
|
||||
199.363, 218.480, 204.825, 204.825, 210.287, 243.059, 251.252, 253.983,
|
||||
248.521, 243.059, 256.714, 251.252, 245.790, 243.059, 240.328, 229.404,
|
||||
229.404, 223.942, 223.942, 232.135, 240.328, 248.521, 256.714, 253.983,
|
||||
253.983, 243.059, 245.790, 262.176, 262.176,
|
||||
237.597, 226.673, 204.825, 210.287, 226.673, 243.059, 245.790, 245.790,
|
||||
202.094, 213.018, 207.556, 207.556, 207.556, 229.404, 256.714, 273.100,
|
||||
243.059, 251.252, 256.714, 251.252, 245.790, 243.059, 245.790, 232.135,
|
||||
229.404, 226.673, 226.673, 237.597, 248.521, 251.252, 240.328, 251.252,
|
||||
248.521, 240.328, 245.790, 264.907, 259.445,
|
||||
243.059, 226.673, 202.094, 210.287, 223.942, 229.404, 245.790, 251.252,
|
||||
213.018, 196.632, 207.556, 204.825, 204.825, 221.211, 259.445, 275.831,
|
||||
259.445, 251.252, 259.445, 253.983, 245.790, 243.059, 245.790, 237.597,
|
||||
234.866, 229.404, 234.866, 240.328, 245.790, 245.790, 237.597, 245.790,
|
||||
243.059, 245.790, 243.059, 267.638, 267.638,
|
||||
251.252, 229.404, 204.825, 207.556, 221.211, 221.211, 234.866, 248.521,
|
||||
221.211, 196.632, 202.094, 202.094, 204.825, 221.211, 284.024, 294.948,
|
||||
253.983, 251.252, 259.445, 256.714, 240.328, 237.597, 243.059, 237.597,
|
||||
232.135, 232.135, 240.328, 243.059, 253.983, 248.521, 240.328, 240.328,
|
||||
248.521, 240.328, 248.521, 289.486, 294.948,
|
||||
253.983, 243.059, 213.018, 204.825, 210.287, 218.480, 232.135, 234.866,
|
||||
232.135, 199.363, 196.632, 199.363, 202.094, 215.749, 278.562, 275.831,
|
||||
240.328, 251.252, 253.983, 248.521, 237.597, 237.597, 234.866, 237.597,
|
||||
232.135, 234.866, 240.328, 243.059, 256.714, 256.714, 245.790, 240.328,
|
||||
232.135, 234.866, 267.638, 297.679, 308.603,
|
||||
251.252, 253.983, 226.673, 207.556, 202.094, 215.749, 229.404, 232.135,
|
||||
221.211, 204.825, 196.632, 199.363, 202.094, 215.749, 286.755, 234.866,
|
||||
234.866, 251.252, 262.176, 267.638, 284.024, 234.866, 232.135, 232.135,
|
||||
232.135, 240.328, 245.790, 245.790, 253.983, 251.252, 240.328, 237.597,
|
||||
234.866, 243.059, 264.907, 300.410, 297.679,
|
||||
251.252, 253.983, 243.059, 213.018, 215.749, 213.018, 243.059, 229.404,
|
||||
204.825, 207.556, 199.363, 196.632, 199.363, 213.018, 286.755, 226.673,
|
||||
223.942, 240.328, 226.673, 292.217, 259.445, 229.404, 232.135, 229.404,
|
||||
234.866, 237.597, 245.790, 248.521, 251.252, 245.790, 240.328, 237.597,
|
||||
243.059, 245.790, 248.521, 270.369, 292.217,
|
||||
262.176, 256.714, 248.521, 223.942, 229.404, 234.866, 248.521, 237.597,
|
||||
204.825, 202.094, 199.363, 199.363, 199.363, 210.287, 275.831, 234.866,
|
||||
226.673, 243.059, 251.252, 270.369, 267.638, 234.866, 234.866, 237.597,
|
||||
226.673, 229.404, 243.059, 243.059, 251.252, 251.252, 251.252, 262.176,
|
||||
262.176, 237.597, 248.521, 245.790, 267.638,
|
||||
262.176, 264.907, 256.714, 237.597, 240.328, 243.059, 251.252, 245.790,
|
||||
215.749, 196.632, 199.363, 199.363, 202.094, 210.287, 273.100, 251.252,
|
||||
229.404, 234.866, 267.638, 273.100, 251.252, 237.597, 240.328, 240.328,
|
||||
229.404, 226.673, 237.597, 243.059, 248.521, 256.714, 256.714, 262.176,
|
||||
253.983, 237.597, 237.597, 229.404, 297.679,
|
||||
253.983, 251.252, 259.445, 251.252, 256.714, 253.983, 251.252, 248.521,
|
||||
223.942, 196.632, 199.363, 202.094, 202.094, 207.556, 259.445, 243.059,
|
||||
232.135, 229.404, 278.562, 243.059, 232.135, 240.328, 256.714, 234.866,
|
||||
223.942, 226.673, 223.942, 248.521, 256.714, 264.907, 245.790, 251.252,
|
||||
232.135, 245.790, 232.135, 215.749, 341.375,
|
||||
243.059, 262.176, 256.714, 245.790, 256.714, 259.445, 248.521, 248.521,
|
||||
232.135, 207.556, 196.632, 199.363, 202.094, 204.825, 240.328, 273.100,
|
||||
226.673, 229.404, 229.404, 226.673, 232.135, 240.328, 245.790, 232.135,
|
||||
229.404, 226.673, 229.404, 240.328, 251.252, 253.983, 245.790, 243.059,
|
||||
229.404, 245.790, 256.714, 215.749, 379.609,
|
||||
253.983, 264.907, 264.907, 253.983, 251.252, 259.445, 248.521, 245.790,
|
||||
237.597, 221.211, 202.094, 199.363, 199.363, 202.094, 232.135, 264.907,
|
||||
259.445, 259.445, 243.059, 234.866, 234.866, 251.252, 237.597, 232.135,
|
||||
229.404, 245.790, 234.866, 232.135, 248.521, 237.597, 237.597, 234.866,
|
||||
253.983, 338.644, 382.340, 289.486, 390.533,
|
||||
275.831, 259.445, 264.907, 264.907, 262.176, 259.445, 229.404, 240.328,
|
||||
237.597, 223.942, 213.018, 199.363, 199.363, 202.094, 223.942, 251.252,
|
||||
284.024, 259.445, 240.328, 243.059, 237.597, 243.059, 234.866, 232.135,
|
||||
234.866, 237.597, 237.597, 221.211, 221.211, 226.673, 248.521, 289.486,
|
||||
357.761, 417.843, 412.381, 335.913, 363.223,
|
||||
270.369, 275.831, 278.562, 270.369, 262.176, 245.790, 226.673, 223.942,
|
||||
232.135, 229.404, 215.749, 207.556, 202.094, 202.094, 213.018, 221.211,
|
||||
243.059, 262.176, 245.790, 253.983, 240.328, 240.328, 234.866, 240.328,
|
||||
243.059, 259.445, 243.059, 223.942, 221.211, 232.135, 284.024, 322.258,
|
||||
385.071, 436.960, 352.299, 374.147, 401.457,
|
||||
281.293, 284.024, 267.638, 270.369, 245.790, 240.328, 221.211, 207.556,
|
||||
221.211, 226.673, 215.749, 210.287, 204.825, 204.825, 204.825, 207.556,
|
||||
218.480, 245.790, 256.714, 237.597, 234.866, 237.597, 251.252, 232.135,
|
||||
232.135, 232.135, 237.597, 237.597, 243.059, 248.521, 305.872, 314.065,
|
||||
395.995, 420.574, 395.995, 385.071, 401.457,
|
||||
289.486, 281.293, 273.100, 270.369, 251.252, 223.942, 213.018, 204.825,
|
||||
213.018, 221.211, 215.749, 210.287, 210.287, 213.018, 213.018, 207.556,
|
||||
210.287, 221.211, 243.059, 237.597, 229.404, 229.404, 245.790, 234.866,
|
||||
232.135, 229.404, 218.480, 232.135, 264.907, 284.024, 324.989, 324.989,
|
||||
406.919, 401.457, 393.264, 398.726, 415.112,
|
||||
292.217, 286.755, 281.293, 273.100, 253.983, 226.673, 213.018, 202.094,
|
||||
202.094, 215.749, 213.018, 210.287, 207.556, 213.018, 218.480, 215.749,
|
||||
207.556, 213.018, 226.673, 229.404, 221.211, 221.211, 229.404, 226.673,
|
||||
223.942, 213.018, 213.018, 232.135, 234.866, 264.907, 286.755, 311.334,
|
||||
395.995, 398.726, 404.188, 401.457, 409.650,
|
||||
292.217, 286.755, 281.293, 264.907, 251.252, 229.404, 196.632, 196.632,
|
||||
204.825, 210.287, 207.556, 204.825, 207.556, 215.749, 218.480, 218.480,
|
||||
210.287, 207.556, 223.942, 221.211, 218.480, 221.211, 218.480, 218.480,
|
||||
218.480, 210.287, 202.094, 202.094, 199.363, 210.287, 248.521, 300.410,
|
||||
360.492, 385.071, 415.112, 415.112, 395.995,
|
||||
292.217, 286.755, 281.293, 262.176, 251.252, 234.866, 199.363, 193.901,
|
||||
199.363, 204.825, 204.825, 207.556, 207.556, 213.018, 218.480, 218.480,
|
||||
218.480, 267.638, 218.480, 218.480, 223.942, 223.942, 218.480, 213.018,
|
||||
207.556, 199.363, 193.901, 196.632, 193.901, 202.094, 218.480, 294.948,
|
||||
324.989, 371.416, 431.498, 387.802, 374.147,
|
||||
292.217, 284.024, 275.831, 264.907, 232.135, 237.597, 204.825, 191.170,
|
||||
191.170, 202.094, 202.094, 204.825, 210.287, 213.018, 218.480, 223.942,
|
||||
300.410, 319.527, 300.410, 213.018, 221.211, 226.673, 221.211, 213.018,
|
||||
207.556, 199.363, 193.901, 188.439, 185.708, 193.901, 202.094, 259.445,
|
||||
327.720, 376.878, 404.188, 390.533, 379.609
|
||||
};
|
||||
|
||||
const size_t array_float1_size = sizeof(array_float1);
|
||||
|
||||
const float array_float2[YSIZE * XSIZE] =
|
||||
{
|
||||
210.287, 199.363, 207.556, 218.480, 215.749, 204.825, 223.942, 177.515,
|
||||
169.322, 174.784, 161.129, 161.129, 166.591, 196.632, 191.170, 182.977,
|
||||
177.515, 191.170, 193.901, 191.170, 185.708, 180.246, 177.515, 182.977,
|
||||
180.246, 180.246, 180.246, 180.246, 180.246, 180.246, 180.246, 180.246,
|
||||
180.246, 177.515, 172.053, 172.053, 169.322,
|
||||
204.825, 193.901, 193.901, 215.749, 221.211, 204.825, 221.211, 199.363,
|
||||
161.129, 177.515, 163.860, 163.860, 174.784, 199.363, 199.363, 185.708,
|
||||
180.246, 191.170, 196.632, 193.901, 185.708, 180.246, 180.246, 182.977,
|
||||
180.246, 180.246, 180.246, 182.977, 182.977, 182.977, 180.246, 182.977,
|
||||
180.246, 174.784, 172.053, 172.053, 172.053,
|
||||
207.556, 193.901, 180.246, 199.363, 221.211, 213.018, 218.480, 215.749,
|
||||
161.129, 180.246, 163.860, 161.129, 169.322, 202.094, 202.094, 193.901,
|
||||
182.977, 191.170, 199.363, 193.901, 185.708, 180.246, 177.515, 177.515,
|
||||
180.246, 180.246, 182.977, 182.977, 182.977, 182.977, 182.977, 182.977,
|
||||
180.246, 174.784, 174.784, 174.784, 174.784,
|
||||
207.556, 196.632, 174.784, 185.708, 215.749, 221.211, 218.480, 218.480,
|
||||
161.129, 185.708, 163.860, 161.129, 163.860, 204.825, 204.825, 199.363,
|
||||
182.977, 185.708, 199.363, 196.632, 185.708, 180.246, 177.515, 172.053,
|
||||
182.977, 182.977, 182.977, 182.977, 185.708, 182.977, 182.977, 180.246,
|
||||
177.515, 174.784, 177.515, 177.515, 177.515,
|
||||
215.749, 196.632, 172.053, 180.246, 199.363, 218.480, 226.673, 223.942,
|
||||
163.860, 177.515, 166.591, 166.591, 163.860, 180.246, 204.825, 204.825,
|
||||
177.515, 191.170, 199.363, 196.632, 185.708, 180.246, 177.515, 174.784,
|
||||
185.708, 182.977, 185.708, 185.708, 185.708, 182.977, 182.977, 180.246,
|
||||
177.515, 177.515, 177.515, 180.246, 177.515,
|
||||
221.211, 199.363, 169.322, 177.515, 196.632, 202.094, 223.942, 232.135,
|
||||
180.246, 161.129, 169.322, 163.860, 163.860, 172.053, 204.825, 207.556,
|
||||
185.708, 188.439, 196.632, 196.632, 185.708, 180.246, 180.246, 177.515,
|
||||
182.977, 185.708, 185.708, 185.708, 185.708, 185.708, 180.246, 180.246,
|
||||
174.784, 180.246, 177.515, 180.246, 180.246,
|
||||
229.404, 202.094, 174.784, 174.784, 191.170, 193.901, 213.018, 229.404,
|
||||
191.170, 158.398, 163.860, 161.129, 161.129, 172.053, 204.825, 218.480,
|
||||
199.363, 182.977, 196.632, 196.632, 185.708, 180.246, 180.246, 177.515,
|
||||
180.246, 185.708, 185.708, 185.708, 185.708, 185.708, 180.246, 177.515,
|
||||
177.515, 177.515, 180.246, 182.977, 185.708,
|
||||
237.597, 221.211, 180.246, 172.053, 177.515, 185.708, 207.556, 207.556,
|
||||
204.825, 161.129, 158.398, 161.129, 161.129, 163.860, 193.901, 251.252,
|
||||
177.515, 174.784, 202.094, 196.632, 188.439, 182.977, 177.515, 177.515,
|
||||
177.515, 185.708, 188.439, 185.708, 188.439, 182.977, 177.515, 177.515,
|
||||
177.515, 177.515, 182.977, 185.708, 188.439,
|
||||
234.866, 234.866, 199.363, 174.784, 169.322, 182.977, 204.825, 207.556,
|
||||
191.170, 166.591, 158.398, 158.398, 161.129, 163.860, 221.211, 185.708,
|
||||
161.129, 172.053, 202.094, 245.790, 270.369, 182.977, 177.515, 177.515,
|
||||
174.784, 182.977, 185.708, 185.708, 185.708, 182.977, 177.515, 177.515,
|
||||
180.246, 177.515, 180.246, 185.708, 185.708,
|
||||
232.135, 232.135, 218.480, 180.246, 182.977, 182.977, 221.211, 202.094,
|
||||
169.322, 172.053, 161.129, 158.398, 158.398, 163.860, 253.983, 166.591,
|
||||
161.129, 161.129, 185.708, 314.065, 207.556, 182.977, 180.246, 174.784,
|
||||
174.784, 180.246, 185.708, 185.708, 185.708, 180.246, 177.515, 177.515,
|
||||
180.246, 177.515, 174.784, 177.515, 188.439,
|
||||
245.790, 237.597, 226.673, 193.901, 202.094, 210.287, 226.673, 215.749,
|
||||
172.053, 163.860, 161.129, 161.129, 158.398, 158.398, 245.790, 166.591,
|
||||
161.129, 161.129, 182.977, 218.480, 193.901, 185.708, 180.246, 174.784,
|
||||
172.053, 172.053, 185.708, 185.708, 185.708, 180.246, 177.515, 180.246,
|
||||
182.977, 177.515, 174.784, 169.322, 237.597,
|
||||
248.521, 251.252, 234.866, 207.556, 213.018, 221.211, 232.135, 223.942,
|
||||
182.977, 161.129, 161.129, 161.129, 161.129, 163.860, 240.328, 196.632,
|
||||
161.129, 163.860, 202.094, 218.480, 191.170, 182.977, 180.246, 174.784,
|
||||
169.322, 163.860, 177.515, 185.708, 182.977, 180.246, 177.515, 182.977,
|
||||
180.246, 174.784, 169.322, 161.129, 303.141,
|
||||
229.404, 229.404, 237.597, 232.135, 237.597, 232.135, 229.404, 229.404,
|
||||
196.632, 161.129, 161.129, 161.129, 161.129, 161.129, 199.363, 193.901,
|
||||
169.322, 161.129, 273.100, 191.170, 191.170, 182.977, 180.246, 174.784,
|
||||
163.860, 158.398, 158.398, 182.977, 185.708, 180.246, 177.515, 180.246,
|
||||
174.784, 172.053, 161.129, 152.936, 357.761,
|
||||
218.480, 245.790, 237.597, 226.673, 240.328, 243.059, 229.404, 226.673,
|
||||
207.556, 174.784, 161.129, 161.129, 161.129, 158.398, 161.129, 264.907,
|
||||
174.784, 169.322, 193.901, 185.708, 191.170, 199.363, 180.246, 172.053,
|
||||
166.591, 158.398, 158.398, 169.322, 182.977, 180.246, 174.784, 177.515,
|
||||
172.053, 172.053, 166.591, 155.667, 406.919,
|
||||
234.866, 248.521, 251.252, 237.597, 232.135, 240.328, 226.673, 221.211,
|
||||
213.018, 188.439, 166.591, 161.129, 161.129, 161.129, 161.129, 166.591,
|
||||
226.673, 196.632, 182.977, 182.977, 188.439, 188.439, 180.246, 174.784,
|
||||
166.591, 196.632, 152.936, 155.667, 174.784, 174.784, 174.784, 174.784,
|
||||
177.515, 314.065, 409.650, 253.983, 412.381,
|
||||
264.907, 243.059, 248.521, 251.252, 243.059, 240.328, 202.094, 218.480,
|
||||
213.018, 193.901, 177.515, 161.129, 158.398, 161.129, 158.398, 161.129,
|
||||
193.901, 196.632, 182.977, 191.170, 191.170, 188.439, 182.977, 174.784,
|
||||
172.053, 180.246, 152.936, 147.474, 155.667, 161.129, 174.784, 237.597,
|
||||
379.609, 442.422, 436.960, 349.568, 385.071,
|
||||
256.714, 262.176, 264.907, 256.714, 243.059, 223.942, 193.901, 191.170,
|
||||
207.556, 199.363, 182.977, 166.591, 161.129, 161.129, 158.398, 161.129,
|
||||
166.591, 193.901, 182.977, 204.825, 191.170, 185.708, 191.170, 177.515,
|
||||
172.053, 172.053, 161.129, 152.936, 147.474, 150.205, 245.790, 330.451,
|
||||
406.919, 458.808, 376.878, 393.264, 428.767,
|
||||
270.369, 273.100, 253.983, 253.983, 223.942, 218.480, 191.170, 169.322,
|
||||
191.170, 196.632, 182.977, 172.053, 163.860, 163.860, 158.398, 158.398,
|
||||
163.860, 185.708, 191.170, 191.170, 188.439, 185.708, 215.749, 185.708,
|
||||
174.784, 169.322, 163.860, 161.129, 155.667, 155.667, 240.328, 327.720,
|
||||
412.381, 442.422, 420.574, 406.919, 423.305,
|
||||
281.293, 270.369, 259.445, 256.714, 229.404, 199.363, 182.977, 169.322,
|
||||
177.515, 188.439, 182.977, 174.784, 172.053, 174.784, 172.053, 161.129,
|
||||
163.860, 177.515, 193.901, 188.439, 188.439, 182.977, 213.018, 177.515,
|
||||
172.053, 166.591, 161.129, 166.591, 163.860, 185.708, 273.100, 349.568,
|
||||
423.305, 423.305, 415.112, 423.305, 447.884,
|
||||
284.024, 278.562, 270.369, 259.445, 234.866, 202.094, 182.977, 166.591,
|
||||
166.591, 180.246, 177.515, 172.053, 172.053, 174.784, 177.515, 172.053,
|
||||
163.860, 172.053, 191.170, 188.439, 182.977, 182.977, 182.977, 177.515,
|
||||
169.322, 163.860, 158.398, 155.667, 169.322, 158.398, 193.901, 319.527,
|
||||
409.650, 420.574, 428.767, 423.305, 445.153,
|
||||
284.024, 275.831, 270.369, 248.521, 229.404, 202.094, 161.129, 161.129,
|
||||
169.322, 174.784, 172.053, 166.591, 169.322, 174.784, 174.784, 174.784,
|
||||
166.591, 163.860, 188.439, 185.708, 182.977, 188.439, 182.977, 177.515,
|
||||
169.322, 161.129, 158.398, 155.667, 155.667, 152.936, 161.129, 284.024,
|
||||
374.147, 401.457, 434.229, 439.691, 431.498,
|
||||
284.024, 275.831, 270.369, 245.790, 232.135, 210.287, 163.860, 155.667,
|
||||
163.860, 169.322, 169.322, 169.322, 172.053, 174.784, 177.515, 177.515,
|
||||
180.246, 273.100, 182.977, 182.977, 188.439, 188.439, 182.977, 177.515,
|
||||
172.053, 163.860, 158.398, 152.936, 147.474, 150.205, 152.936, 210.287,
|
||||
333.182, 387.802, 453.346, 428.767, 409.650,
|
||||
284.024, 275.831, 264.907, 251.252, 210.287, 215.749, 174.784, 155.667,
|
||||
155.667, 169.322, 169.322, 169.322, 174.784, 177.515, 180.246, 177.515,
|
||||
314.065, 376.878, 352.299, 174.784, 185.708, 191.170, 185.708, 180.246,
|
||||
174.784, 163.860, 158.398, 152.936, 144.743, 144.743, 152.936, 169.322,
|
||||
314.065, 390.533, 428.767, 426.036, 434.229
|
||||
};
|
||||
|
||||
const size_t array_float2_size = sizeof(array_float2);
|
||||
|
||||
const double array_double1[YSIZE * XSIZE] =
|
||||
{
|
||||
148.914762, 145.451628, 148.914762, 155.841030, 154.109463, 147.183195,
|
||||
155.841030, 135.062226, 133.330659, 136.793793, 129.867525, 133.330659,
|
||||
136.793793, 148.914762, 150.646329, 143.720061, 141.988494, 150.646329,
|
||||
154.109463, 152.377896, 148.914762, 150.646329, 152.377896, 150.646329,
|
||||
140.256927, 145.451628, 147.183195, 147.183195, 145.451628, 148.914762,
|
||||
152.377896, 157.572597, 166.230432, 164.498865, 167.961999, 164.498865,
|
||||
154.109463,
|
||||
147.183195, 141.988494, 140.256927, 152.377896, 154.109463, 147.183195,
|
||||
154.109463, 143.720061, 128.135958, 136.793793, 131.599092, 133.330659,
|
||||
138.525360, 150.646329, 150.646329, 145.451628, 145.451628, 152.377896,
|
||||
155.841030, 154.109463, 150.646329, 147.183195, 150.646329, 152.377896,
|
||||
143.720061, 138.525360, 141.988494, 145.451628, 147.183195, 150.646329,
|
||||
155.841030, 164.498865, 166.230432, 164.498865, 164.498865, 159.304164,
|
||||
155.841030,
|
||||
147.183195, 140.256927, 136.793793, 145.451628, 155.841030, 150.646329,
|
||||
152.377896, 152.377896, 126.404391, 136.793793, 129.867525, 131.599092,
|
||||
136.793793, 152.377896, 152.377896, 150.646329, 147.183195, 155.841030,
|
||||
159.304164, 154.109463, 152.377896, 152.377896, 150.646329, 148.914762,
|
||||
145.451628, 141.988494, 141.988494, 143.720061, 150.646329, 154.109463,
|
||||
161.035731, 162.767298, 161.035731, 161.035731, 159.304164, 159.304164,
|
||||
166.230432,
|
||||
147.183195, 141.988494, 131.599092, 138.525360, 152.377896, 154.109463,
|
||||
152.377896, 154.109463, 126.404391, 138.525360, 129.867525, 129.867525,
|
||||
133.330659, 154.109463, 159.304164, 161.035731, 157.572597, 154.109463,
|
||||
162.767298, 159.304164, 155.841030, 154.109463, 152.377896, 145.451628,
|
||||
145.451628, 141.988494, 141.988494, 147.183195, 152.377896, 157.572597,
|
||||
162.767298, 161.035731, 161.035731, 154.109463, 155.841030, 166.230432,
|
||||
166.230432,
|
||||
150.646329, 143.720061, 129.867525, 133.330659, 143.720061, 154.109463,
|
||||
155.841030, 155.841030, 128.135958, 135.062226, 131.599092, 131.599092,
|
||||
131.599092, 145.451628, 162.767298, 173.156700, 154.109463, 159.304164,
|
||||
162.767298, 159.304164, 155.841030, 154.109463, 155.841030, 147.183195,
|
||||
145.451628, 143.720061, 143.720061, 150.646329, 157.572597, 159.304164,
|
||||
152.377896, 159.304164, 157.572597, 152.377896, 155.841030, 167.961999,
|
||||
164.498865,
|
||||
154.109463, 143.720061, 128.135958, 133.330659, 141.988494, 145.451628,
|
||||
155.841030, 159.304164, 135.062226, 124.672824, 131.599092, 129.867525,
|
||||
129.867525, 140.256927, 164.498865, 174.888267, 164.498865, 159.304164,
|
||||
164.498865, 161.035731, 155.841030, 154.109463, 155.841030, 150.646329,
|
||||
148.914762, 145.451628, 148.914762, 152.377896, 155.841030, 155.841030,
|
||||
150.646329, 155.841030, 154.109463, 155.841030, 154.109463, 169.693566,
|
||||
169.693566,
|
||||
159.304164, 145.451628, 129.867525, 131.599092, 140.256927, 140.256927,
|
||||
148.914762, 157.572597, 140.256927, 124.672824, 128.135958, 128.135958,
|
||||
129.867525, 140.256927, 180.082968, 187.009236, 161.035731, 159.304164,
|
||||
164.498865, 162.767298, 152.377896, 150.646329, 154.109463, 150.646329,
|
||||
147.183195, 147.183195, 152.377896, 154.109463, 161.035731, 157.572597,
|
||||
152.377896, 152.377896, 157.572597, 152.377896, 157.572597, 183.546102,
|
||||
187.009236,
|
||||
161.035731, 154.109463, 135.062226, 129.867525, 133.330659, 138.525360,
|
||||
147.183195, 148.914762, 147.183195, 126.404391, 124.672824, 126.404391,
|
||||
128.135958, 136.793793, 176.619834, 174.888267, 152.377896, 159.304164,
|
||||
161.035731, 157.572597, 150.646329, 150.646329, 148.914762, 150.646329,
|
||||
147.183195, 148.914762, 152.377896, 154.109463, 162.767298, 162.767298,
|
||||
155.841030, 152.377896, 147.183195, 148.914762, 169.693566, 188.740803,
|
||||
195.667071,
|
||||
159.304164, 161.035731, 143.720061, 131.599092, 128.135958, 136.793793,
|
||||
145.451628, 147.183195, 140.256927, 129.867525, 124.672824, 126.404391,
|
||||
128.135958, 136.793793, 181.814535, 148.914762, 148.914762, 159.304164,
|
||||
166.230432, 169.693566, 180.082968, 148.914762, 147.183195, 147.183195,
|
||||
147.183195, 152.377896, 155.841030, 155.841030, 161.035731, 159.304164,
|
||||
152.377896, 150.646329, 148.914762, 154.109463, 167.961999, 190.472370,
|
||||
188.740803,
|
||||
159.304164, 161.035731, 154.109463, 135.062226, 136.793793, 135.062226,
|
||||
154.109463, 145.451628, 129.867525, 131.599092, 126.404391, 124.672824,
|
||||
126.404391, 135.062226, 181.814535, 143.720061, 141.988494, 152.377896,
|
||||
143.720061, 185.277669, 164.498865, 145.451628, 147.183195, 145.451628,
|
||||
148.914762, 150.646329, 155.841030, 157.572597, 159.304164, 155.841030,
|
||||
152.377896, 150.646329, 154.109463, 155.841030, 157.572597, 171.425133,
|
||||
185.277669,
|
||||
166.230432, 162.767298, 157.572597, 141.988494, 145.451628, 148.914762,
|
||||
157.572597, 150.646329, 129.867525, 128.135958, 126.404391, 126.404391,
|
||||
126.404391, 133.330659, 174.888267, 148.914762, 143.720061, 154.109463,
|
||||
159.304164, 171.425133, 169.693566, 148.914762, 148.914762, 150.646329,
|
||||
143.720061, 145.451628, 154.109463, 154.109463, 159.304164, 159.304164,
|
||||
159.304164, 166.230432, 166.230432, 150.646329, 157.572597, 155.841030,
|
||||
169.693566,
|
||||
166.230432, 167.961999, 162.767298, 150.646329, 152.377896, 154.109463,
|
||||
159.304164, 155.841030, 136.793793, 124.672824, 126.404391, 126.404391,
|
||||
128.135958, 133.330659, 173.156700, 159.304164, 145.451628, 148.914762,
|
||||
169.693566, 173.156700, 159.304164, 150.646329, 152.377896, 152.377896,
|
||||
145.451628, 143.720061, 150.646329, 154.109463, 157.572597, 162.767298,
|
||||
162.767298, 166.230432, 161.035731, 150.646329, 150.646329, 145.451628,
|
||||
188.740803,
|
||||
161.035731, 159.304164, 164.498865, 159.304164, 162.767298, 161.035731,
|
||||
159.304164, 157.572597, 141.988494, 124.672824, 126.404391, 128.135958,
|
||||
128.135958, 131.599092, 164.498865, 154.109463, 147.183195, 145.451628,
|
||||
176.619834, 154.109463, 147.183195, 152.377896, 162.767298, 148.914762,
|
||||
141.988494, 143.720061, 141.988494, 157.572597, 162.767298, 167.961999,
|
||||
155.841030, 159.304164, 147.183195, 155.841030, 147.183195, 136.793793,
|
||||
216.445875,
|
||||
154.109463, 166.230432, 162.767298, 155.841030, 162.767298, 164.498865,
|
||||
157.572597, 157.572597, 147.183195, 131.599092, 124.672824, 126.404391,
|
||||
128.135958, 129.867525, 152.377896, 173.156700, 143.720061, 145.451628,
|
||||
145.451628, 143.720061, 147.183195, 152.377896, 155.841030, 147.183195,
|
||||
145.451628, 143.720061, 145.451628, 152.377896, 159.304164, 161.035731,
|
||||
155.841030, 154.109463, 145.451628, 155.841030, 162.767298, 136.793793,
|
||||
240.687813,
|
||||
161.035731, 167.961999, 167.961999, 161.035731, 159.304164, 164.498865,
|
||||
157.572597, 155.841030, 150.646329, 140.256927, 128.135958, 126.404391,
|
||||
126.404391, 128.135958, 147.183195, 167.961999, 164.498865, 164.498865,
|
||||
154.109463, 148.914762, 148.914762, 159.304164, 150.646329, 147.183195,
|
||||
145.451628, 155.841030, 148.914762, 147.183195, 157.572597, 150.646329,
|
||||
150.646329, 148.914762, 161.035731, 214.714308, 242.419380, 183.546102,
|
||||
247.614081,
|
||||
174.888267, 164.498865, 167.961999, 167.961999, 166.230432, 164.498865,
|
||||
145.451628, 152.377896, 150.646329, 141.988494, 135.062226, 126.404391,
|
||||
126.404391, 128.135958, 141.988494, 159.304164, 180.082968, 164.498865,
|
||||
152.377896, 154.109463, 150.646329, 154.109463, 148.914762, 147.183195,
|
||||
148.914762, 150.646329, 150.646329, 140.256927, 140.256927, 143.720061,
|
||||
157.572597, 183.546102, 226.835277, 264.929751, 261.466617, 212.982741,
|
||||
230.298411,
|
||||
171.425133, 174.888267, 176.619834, 171.425133, 166.230432, 155.841030,
|
||||
143.720061, 141.988494, 147.183195, 145.451628, 136.793793, 131.599092,
|
||||
128.135958, 128.135958, 135.062226, 140.256927, 154.109463, 166.230432,
|
||||
155.841030, 161.035731, 152.377896, 152.377896, 148.914762, 152.377896,
|
||||
154.109463, 164.498865, 154.109463, 141.988494, 140.256927, 147.183195,
|
||||
180.082968, 204.324906, 244.150947, 277.050720, 223.372143, 237.224679,
|
||||
254.540349,
|
||||
178.351401, 180.082968, 169.693566, 171.425133, 155.841030, 152.377896,
|
||||
140.256927, 131.599092, 140.256927, 143.720061, 136.793793, 133.330659,
|
||||
129.867525, 129.867525, 129.867525, 131.599092, 138.525360, 155.841030,
|
||||
162.767298, 150.646329, 148.914762, 150.646329, 159.304164, 147.183195,
|
||||
147.183195, 147.183195, 150.646329, 150.646329, 154.109463, 157.572597,
|
||||
193.935504, 199.130205, 251.077215, 266.661318, 251.077215, 244.150947,
|
||||
254.540349,
|
||||
183.546102, 178.351401, 173.156700, 171.425133, 159.304164, 141.988494,
|
||||
135.062226, 129.867525, 135.062226, 140.256927, 136.793793, 133.330659,
|
||||
133.330659, 135.062226, 135.062226, 131.599092, 133.330659, 140.256927,
|
||||
154.109463, 150.646329, 145.451628, 145.451628, 155.841030, 148.914762,
|
||||
147.183195, 145.451628, 138.525360, 147.183195, 167.961999, 180.082968,
|
||||
206.056473, 206.056473, 258.003483, 254.540349, 249.345648, 252.808782,
|
||||
263.198184,
|
||||
185.277669, 181.814535, 178.351401, 173.156700, 161.035731, 143.720061,
|
||||
135.062226, 128.135958, 128.135958, 136.793793, 135.062226, 133.330659,
|
||||
131.599092, 135.062226, 138.525360, 136.793793, 131.599092, 135.062226,
|
||||
143.720061, 145.451628, 140.256927, 140.256927, 145.451628, 143.720061,
|
||||
141.988494, 135.062226, 135.062226, 147.183195, 148.914762, 167.961999,
|
||||
181.814535, 197.398638, 251.077215, 252.808782, 256.271916, 254.540349,
|
||||
259.735050,
|
||||
185.277669, 181.814535, 178.351401, 167.961999, 159.304164, 145.451628,
|
||||
124.672824, 124.672824, 129.867525, 133.330659, 131.599092, 129.867525,
|
||||
131.599092, 136.793793, 138.525360, 138.525360, 133.330659, 131.599092,
|
||||
141.988494, 140.256927, 138.525360, 140.256927, 138.525360, 138.525360,
|
||||
138.525360, 133.330659, 128.135958, 128.135958, 126.404391, 133.330659,
|
||||
157.572597, 190.472370, 228.566844, 244.150947, 263.198184, 263.198184,
|
||||
251.077215,
|
||||
185.277669, 181.814535, 178.351401, 166.230432, 159.304164, 148.914762,
|
||||
126.404391, 122.941257, 126.404391, 129.867525, 129.867525, 131.599092,
|
||||
131.599092, 135.062226, 138.525360, 138.525360, 138.525360, 169.693566,
|
||||
138.525360, 138.525360, 141.988494, 141.988494, 138.525360, 135.062226,
|
||||
131.599092, 126.404391, 122.941257, 124.672824, 122.941257, 128.135958,
|
||||
138.525360, 187.009236, 206.056473, 235.493112, 273.587586, 245.882514,
|
||||
237.224679,
|
||||
185.277669, 180.082968, 174.888267, 167.961999, 147.183195, 150.646329,
|
||||
129.867525, 121.209690, 121.209690, 128.135958, 128.135958, 129.867525,
|
||||
133.330659, 135.062226, 138.525360, 141.988494, 190.472370, 202.593339,
|
||||
190.472370, 135.062226, 140.256927, 143.720061, 140.256927, 135.062226,
|
||||
131.599092, 126.404391, 122.941257, 119.478123, 117.746556, 122.941257,
|
||||
128.135958, 164.498865, 207.788040, 238.956246, 256.271916, 247.614081,
|
||||
240.687813
|
||||
};
|
||||
|
||||
const size_t array_double1_size = sizeof(array_double1);
|
||||
|
||||
const double array_double2[YSIZE * XSIZE] =
|
||||
{
|
||||
133.330659, 126.404391, 131.599092, 138.525360, 136.793793, 129.867525,
|
||||
141.988494, 112.551855, 107.357154, 110.820288, 102.162453, 102.162453,
|
||||
105.625587, 124.672824, 121.209690, 116.014989, 112.551855, 121.209690,
|
||||
122.941257, 121.209690, 117.746556, 114.283422, 112.551855, 116.014989,
|
||||
114.283422, 114.283422, 114.283422, 114.283422, 114.283422, 114.283422,
|
||||
114.283422, 114.283422, 114.283422, 112.551855, 109.088721, 109.088721,
|
||||
107.357154,
|
||||
129.867525, 122.941257, 122.941257, 136.793793, 140.256927, 129.867525,
|
||||
140.256927, 126.404391, 102.162453, 112.551855, 103.894020, 103.894020,
|
||||
110.820288, 126.404391, 126.404391, 117.746556, 114.283422, 121.209690,
|
||||
124.672824, 122.941257, 117.746556, 114.283422, 114.283422, 116.014989,
|
||||
114.283422, 114.283422, 114.283422, 116.014989, 116.014989, 116.014989,
|
||||
114.283422, 116.014989, 114.283422, 110.820288, 109.088721, 109.088721,
|
||||
109.088721,
|
||||
131.599092, 122.941257, 114.283422, 126.404391, 140.256927, 135.062226,
|
||||
138.525360, 136.793793, 102.162453, 114.283422, 103.894020, 102.162453,
|
||||
107.357154, 128.135958, 128.135958, 122.941257, 116.014989, 121.209690,
|
||||
126.404391, 122.941257, 117.746556, 114.283422, 112.551855, 112.551855,
|
||||
114.283422, 114.283422, 116.014989, 116.014989, 116.014989, 116.014989,
|
||||
116.014989, 116.014989, 114.283422, 110.820288, 110.820288, 110.820288,
|
||||
110.820288,
|
||||
131.599092, 124.672824, 110.820288, 117.746556, 136.793793, 140.256927,
|
||||
138.525360, 138.525360, 102.162453, 117.746556, 103.894020, 102.162453,
|
||||
103.894020, 129.867525, 129.867525, 126.404391, 116.014989, 117.746556,
|
||||
126.404391, 124.672824, 117.746556, 114.283422, 112.551855, 109.088721,
|
||||
116.014989, 116.014989, 116.014989, 116.014989, 117.746556, 116.014989,
|
||||
116.014989, 114.283422, 112.551855, 110.820288, 112.551855, 112.551855,
|
||||
112.551855,
|
||||
136.793793, 124.672824, 109.088721, 114.283422, 126.404391, 138.525360,
|
||||
143.720061, 141.988494, 103.894020, 112.551855, 105.625587, 105.625587,
|
||||
103.894020, 114.283422, 129.867525, 129.867525, 112.551855, 121.209690,
|
||||
126.404391, 124.672824, 117.746556, 114.283422, 112.551855, 110.820288,
|
||||
117.746556, 116.014989, 117.746556, 117.746556, 117.746556, 116.014989,
|
||||
116.014989, 114.283422, 112.551855, 112.551855, 112.551855, 114.283422,
|
||||
112.551855,
|
||||
140.256927, 126.404391, 107.357154, 112.551855, 124.672824, 128.135958,
|
||||
141.988494, 147.183195, 114.283422, 102.162453, 107.357154, 103.894020,
|
||||
103.894020, 109.088721, 129.867525, 131.599092, 117.746556, 119.478123,
|
||||
124.672824, 124.672824, 117.746556, 114.283422, 114.283422, 112.551855,
|
||||
116.014989, 117.746556, 117.746556, 117.746556, 117.746556, 117.746556,
|
||||
114.283422, 114.283422, 110.820288, 114.283422, 112.551855, 114.283422,
|
||||
114.283422,
|
||||
145.451628, 128.135958, 110.820288, 110.820288, 121.209690, 122.941257,
|
||||
135.062226, 145.451628, 121.209690, 100.430886, 103.894020, 102.162453,
|
||||
102.162453, 109.088721, 129.867525, 138.525360, 126.404391, 116.014989,
|
||||
124.672824, 124.672824, 117.746556, 114.283422, 114.283422, 112.551855,
|
||||
114.283422, 117.746556, 117.746556, 117.746556, 117.746556, 117.746556,
|
||||
114.283422, 112.551855, 112.551855, 112.551855, 114.283422, 116.014989,
|
||||
117.746556,
|
||||
150.646329, 140.256927, 114.283422, 109.088721, 112.551855, 117.746556,
|
||||
131.599092, 131.599092, 129.867525, 102.162453, 100.430886, 102.162453,
|
||||
102.162453, 103.894020, 122.941257, 159.304164, 112.551855, 110.820288,
|
||||
128.135958, 124.672824, 119.478123, 116.014989, 112.551855, 112.551855,
|
||||
112.551855, 117.746556, 119.478123, 117.746556, 119.478123, 116.014989,
|
||||
112.551855, 112.551855, 112.551855, 112.551855, 116.014989, 117.746556,
|
||||
119.478123,
|
||||
148.914762, 148.914762, 126.404391, 110.820288, 107.357154, 116.014989,
|
||||
129.867525, 131.599092, 121.209690, 105.625587, 100.430886, 100.430886,
|
||||
102.162453, 103.894020, 140.256927, 117.746556, 102.162453, 109.088721,
|
||||
128.135958, 155.841030, 171.425133, 116.014989, 112.551855, 112.551855,
|
||||
110.820288, 116.014989, 117.746556, 117.746556, 117.746556, 116.014989,
|
||||
112.551855, 112.551855, 114.283422, 112.551855, 114.283422, 117.746556,
|
||||
117.746556,
|
||||
147.183195, 147.183195, 138.525360, 114.283422, 116.014989, 116.014989,
|
||||
140.256927, 128.135958, 107.357154, 109.088721, 102.162453, 100.430886,
|
||||
100.430886, 103.894020, 161.035731, 105.625587, 102.162453, 102.162453,
|
||||
117.746556, 199.130205, 131.599092, 116.014989, 114.283422, 110.820288,
|
||||
110.820288, 114.283422, 117.746556, 117.746556, 117.746556, 114.283422,
|
||||
112.551855, 112.551855, 114.283422, 112.551855, 110.820288, 112.551855,
|
||||
119.478123,
|
||||
155.841030, 150.646329, 143.720061, 122.941257, 128.135958, 133.330659,
|
||||
143.720061, 136.793793, 109.088721, 103.894020, 102.162453, 102.162453,
|
||||
100.430886, 100.430886, 155.841030, 105.625587, 102.162453, 102.162453,
|
||||
116.014989, 138.525360, 122.941257, 117.746556, 114.283422, 110.820288,
|
||||
109.088721, 109.088721, 117.746556, 117.746556, 117.746556, 114.283422,
|
||||
112.551855, 114.283422, 116.014989, 112.551855, 110.820288, 107.357154,
|
||||
150.646329,
|
||||
157.572597, 159.304164, 148.914762, 131.599092, 135.062226, 140.256927,
|
||||
147.183195, 141.988494, 116.014989, 102.162453, 102.162453, 102.162453,
|
||||
102.162453, 103.894020, 152.377896, 124.672824, 102.162453, 103.894020,
|
||||
128.135958, 138.525360, 121.209690, 116.014989, 114.283422, 110.820288,
|
||||
107.357154, 103.894020, 112.551855, 117.746556, 116.014989, 114.283422,
|
||||
112.551855, 116.014989, 114.283422, 110.820288, 107.357154, 102.162453,
|
||||
192.203937,
|
||||
145.451628, 145.451628, 150.646329, 147.183195, 150.646329, 147.183195,
|
||||
145.451628, 145.451628, 124.672824, 102.162453, 102.162453, 102.162453,
|
||||
102.162453, 102.162453, 126.404391, 122.941257, 107.357154, 102.162453,
|
||||
173.156700, 121.209690, 121.209690, 116.014989, 114.283422, 110.820288,
|
||||
103.894020, 100.430886, 100.430886, 116.014989, 117.746556, 114.283422,
|
||||
112.551855, 114.283422, 110.820288, 109.088721, 102.162453, 96.967752,
|
||||
226.835277,
|
||||
138.525360, 155.841030, 150.646329, 143.720061, 152.377896, 154.109463,
|
||||
145.451628, 143.720061, 131.599092, 110.820288, 102.162453, 102.162453,
|
||||
102.162453, 100.430886, 102.162453, 167.961999, 110.820288, 107.357154,
|
||||
122.941257, 117.746556, 121.209690, 126.404391, 114.283422, 109.088721,
|
||||
105.625587, 100.430886, 100.430886, 107.357154, 116.014989, 114.283422,
|
||||
110.820288, 112.551855, 109.088721, 109.088721, 105.625587, 98.699319,
|
||||
258.003483,
|
||||
148.914762, 157.572597, 159.304164, 150.646329, 147.183195, 152.377896,
|
||||
143.720061, 140.256927, 135.062226, 119.478123, 105.625587, 102.162453,
|
||||
102.162453, 102.162453, 102.162453, 105.625587, 143.720061, 124.672824,
|
||||
116.014989, 116.014989, 119.478123, 119.478123, 114.283422, 110.820288,
|
||||
105.625587, 124.672824, 96.967752, 98.699319, 110.820288, 110.820288,
|
||||
110.820288, 110.820288, 112.551855, 199.130205, 259.735050, 161.035731,
|
||||
261.466617,
|
||||
167.961999, 154.109463, 157.572597, 159.304164, 154.109463, 152.377896,
|
||||
128.135958, 138.525360, 135.062226, 122.941257, 112.551855, 102.162453,
|
||||
100.430886, 102.162453, 100.430886, 102.162453, 122.941257, 124.672824,
|
||||
116.014989, 121.209690, 121.209690, 119.478123, 116.014989, 110.820288,
|
||||
109.088721, 114.283422, 96.967752, 93.504618, 98.699319, 102.162453,
|
||||
110.820288, 150.646329, 240.687813, 280.513854, 277.050720, 221.640576,
|
||||
244.150947,
|
||||
162.767298, 166.230432, 167.961999, 162.767298, 154.109463, 141.988494,
|
||||
122.941257, 121.209690, 131.599092, 126.404391, 116.014989, 105.625587,
|
||||
102.162453, 102.162453, 100.430886, 102.162453, 105.625587, 122.941257,
|
||||
116.014989, 129.867525, 121.209690, 117.746556, 121.209690, 112.551855,
|
||||
109.088721, 109.088721, 102.162453, 96.967752, 93.504618, 95.236185,
|
||||
155.841030, 209.519607, 258.003483, 290.903256, 238.956246, 249.345648,
|
||||
271.856019,
|
||||
171.425133, 173.156700, 161.035731, 161.035731, 141.988494, 138.525360,
|
||||
121.209690, 107.357154, 121.209690, 124.672824, 116.014989, 109.088721,
|
||||
103.894020, 103.894020, 100.430886, 100.430886, 103.894020, 117.746556,
|
||||
121.209690, 121.209690, 119.478123, 117.746556, 136.793793, 117.746556,
|
||||
110.820288, 107.357154, 103.894020, 102.162453, 98.699319, 98.699319,
|
||||
152.377896, 207.788040, 261.466617, 280.513854, 266.661318, 258.003483,
|
||||
268.392885,
|
||||
178.351401, 171.425133, 164.498865, 162.767298, 145.451628, 126.404391,
|
||||
116.014989, 107.357154, 112.551855, 119.478123, 116.014989, 110.820288,
|
||||
109.088721, 110.820288, 109.088721, 102.162453, 103.894020, 112.551855,
|
||||
122.941257, 119.478123, 119.478123, 116.014989, 135.062226, 112.551855,
|
||||
109.088721, 105.625587, 102.162453, 105.625587, 103.894020, 117.746556,
|
||||
173.156700, 221.640576, 268.392885, 268.392885, 263.198184, 268.392885,
|
||||
283.976988,
|
||||
180.082968, 176.619834, 171.425133, 164.498865, 148.914762, 128.135958,
|
||||
116.014989, 105.625587, 105.625587, 114.283422, 112.551855, 109.088721,
|
||||
109.088721, 110.820288, 112.551855, 109.088721, 103.894020, 109.088721,
|
||||
121.209690, 119.478123, 116.014989, 116.014989, 116.014989, 112.551855,
|
||||
107.357154, 103.894020, 100.430886, 98.699319, 107.357154, 100.430886,
|
||||
122.941257, 202.593339, 259.735050, 266.661318, 271.856019, 268.392885,
|
||||
282.245421,
|
||||
180.082968, 174.888267, 171.425133, 157.572597, 145.451628, 128.135958,
|
||||
102.162453, 102.162453, 107.357154, 110.820288, 109.088721, 105.625587,
|
||||
107.357154, 110.820288, 110.820288, 110.820288, 105.625587, 103.894020,
|
||||
119.478123, 117.746556, 116.014989, 119.478123, 116.014989, 112.551855,
|
||||
107.357154, 102.162453, 100.430886, 98.699319, 98.699319, 96.967752,
|
||||
102.162453, 180.082968, 237.224679, 254.540349, 275.319153, 278.782287,
|
||||
273.587586,
|
||||
180.082968, 174.888267, 171.425133, 155.841030, 147.183195, 133.330659,
|
||||
103.894020, 98.699319, 103.894020, 107.357154, 107.357154, 107.357154,
|
||||
109.088721, 110.820288, 112.551855, 112.551855, 114.283422, 173.156700,
|
||||
116.014989, 116.014989, 119.478123, 119.478123, 116.014989, 112.551855,
|
||||
109.088721, 103.894020, 100.430886, 96.967752, 93.504618, 95.236185,
|
||||
96.967752, 133.330659, 211.251174, 245.882514, 287.440122, 271.856019,
|
||||
259.735050,
|
||||
180.082968, 174.888267, 167.961999, 159.304164, 133.330659, 136.793793,
|
||||
110.820288, 98.699319, 98.699319, 107.357154, 107.357154, 107.357154,
|
||||
110.820288, 112.551855, 114.283422, 112.551855, 199.130205, 238.956246,
|
||||
223.372143, 110.820288, 117.746556, 121.209690, 117.746556, 114.283422,
|
||||
110.820288, 103.894020, 100.430886, 96.967752, 91.773051, 91.773051,
|
||||
96.967752, 107.357154, 199.130205, 247.614081, 271.856019, 270.124452,
|
||||
275.319153
|
||||
};
|
||||
|
||||
const size_t array_double2_size = sizeof(array_double2);
|
||||
|
||||
/* vim: set ts=8 sts=8 sw=8 noet: */
|
||||
@@ -0,0 +1,63 @@
|
||||
/* $Id: test_arrays.h,v 1.3 2006/03/23 14:54:02 dron Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2004, Andrey Kiselev <dron@ak4719.spb.edu>
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and
|
||||
* its documentation for any purpose is hereby granted without fee, provided
|
||||
* that (i) the above copyright notices and this permission notice appear in
|
||||
* all copies of the software and related documentation, and (ii) the names of
|
||||
* Sam Leffler and Silicon Graphics may not be used in any advertising or
|
||||
* publicity relating to the software without the specific, prior written
|
||||
* permission of Sam Leffler and Silicon Graphics.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
||||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
|
||||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
|
||||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
|
||||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
* OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* TIFF Library
|
||||
*
|
||||
* Few declarations for the test numerical arrays.
|
||||
*/
|
||||
|
||||
#ifndef _TEST_ARRAYS_
|
||||
#define _TEST_ARRAYS_
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#define XSIZE 37
|
||||
#define YSIZE 23
|
||||
|
||||
extern const unsigned char byte_array1[];
|
||||
extern const size_t byte_array1_size;
|
||||
|
||||
extern const unsigned char byte_array2[];
|
||||
extern const size_t byte_array2_size;
|
||||
|
||||
extern const unsigned char byte_array3[];
|
||||
extern const size_t byte_array3_size;
|
||||
|
||||
extern const float array_float1[];
|
||||
extern const size_t array_float1_size;
|
||||
|
||||
extern const float array_float2[];
|
||||
extern const size_t array_float2_size;
|
||||
|
||||
extern const double array_double1[];
|
||||
extern const size_t array_double1_size;
|
||||
|
||||
extern const double array_double2[];
|
||||
extern const size_t array_double2_size;
|
||||
|
||||
#endif /* _TEST_ARRAYS_ */
|
||||
|
||||
/* vim: set ts=8 sts=8 sw=8 noet: */
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Basic sanity check for tiff2pdf
|
||||
#
|
||||
. ${srcdir:-.}/common.sh
|
||||
f_test_stdout "${TIFF2PDF}" "${IMG_MINISWHITE_1C_1B}" "o-tiff2pdf.pdf"
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Basic sanity check for tiffps with PostScript Level 1 encapsulated output
|
||||
#
|
||||
. ${srcdir:-.}/common.sh
|
||||
f_test_stdout "${TIFF2PS} -e -1" "${IMG_MINISWHITE_1C_1B}" "o-tiff2ps-EPS1.ps"
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Basic sanity check for tiffps with PostScript Level 1 output
|
||||
#
|
||||
. ${srcdir:-.}/common.sh
|
||||
f_test_stdout "${TIFF2PS} -a -p -1" "${IMG_MINISWHITE_1C_1B}" "o-tiff2ps-PS1.ps"
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Basic sanity check for tiffps with PostScript Level 2 output
|
||||
#
|
||||
. ${srcdir:-.}/common.sh
|
||||
f_test_stdout "${TIFF2PS} -a -p -2" "${IMG_MINISWHITE_1C_1B}" "o-tiff2ps-PS2.ps"
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Basic sanity check for tiffps with PostScript Level 3 output
|
||||
#
|
||||
. ${srcdir:-.}/common.sh
|
||||
f_test_stdout "${TIFF2PS} -a -p -3" "${IMG_MINISWHITE_1C_1B}" "o-tiff2ps-PS3.ps"
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/logluv-3c-16b.tiff"
|
||||
outfile="o-tiff2rgba-logluv-3c-16b.tiff"
|
||||
f_test_convert "$TIFF2RGBA" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/minisblack-1c-16b.tiff"
|
||||
outfile="o-tiff2rgba-minisblack-1c-16b.tiff"
|
||||
f_test_convert "$TIFF2RGBA" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/minisblack-1c-8b.tiff"
|
||||
outfile="o-tiff2rgba-minisblack-1c-8b.tiff"
|
||||
f_test_convert "$TIFF2RGBA" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/minisblack-2c-8b-alpha.tiff"
|
||||
outfile="o-tiff2rgba-minisblack-2c-8b-alpha.tiff"
|
||||
f_test_convert "$TIFF2RGBA" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/miniswhite-1c-1b.tiff"
|
||||
outfile="o-tiff2rgba-miniswhite-1c-1b.tiff"
|
||||
f_test_convert "$TIFF2RGBA" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/palette-1c-1b.tiff"
|
||||
outfile="o-tiff2rgba-palette-1c-1b.tiff"
|
||||
f_test_convert "$TIFF2RGBA" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/palette-1c-4b.tiff"
|
||||
outfile="o-tiff2rgba-palette-1c-4b.tiff"
|
||||
f_test_convert "$TIFF2RGBA" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/palette-1c-8b.tiff"
|
||||
outfile="o-tiff2rgba-palette-1c-8b.tiff"
|
||||
f_test_convert "$TIFF2RGBA" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/quad-tile.jpg.tiff"
|
||||
outfile="o-tiff2rgba-quad-tile.jpg.tiff"
|
||||
f_test_convert "$TIFF2RGBA" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/rgb-3c-16b.tiff"
|
||||
outfile="o-tiff2rgba-rgb-3c-16b.tiff"
|
||||
f_test_convert "$TIFF2RGBA" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/rgb-3c-8b.tiff"
|
||||
outfile="o-tiff2rgba-rgb-3c-8b.tiff"
|
||||
f_test_convert "$TIFF2RGBA" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Basic sanity check for tiffcp with G3 compression, 1 dimensional
|
||||
# encoding, and zero-filled boundaries.
|
||||
#
|
||||
. ${srcdir:-.}/common.sh
|
||||
f_test_convert "${TIFFCP} -c g3:1d:fill" "${IMG_MINISWHITE_1C_1B}" "o-tiffcp-g3-1d-fill.tiff"
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Basic sanity check for tiffcp with G3 compression and 1 dimensional encoding.
|
||||
#
|
||||
. ${srcdir:-.}/common.sh
|
||||
f_test_convert "${TIFFCP} -c g3:1d" "${IMG_MINISWHITE_1C_1B}" "o-tiffcp-g3-1d.tiff"
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Basic sanity check for tiffcp with G3 compression, 2 dimensional
|
||||
# encoding, and zero-filled boundaries.
|
||||
#
|
||||
. ${srcdir:-.}/common.sh
|
||||
f_test_convert "${TIFFCP} -c g3:2d:fill" "${IMG_MINISWHITE_1C_1B}" "o-tiffcp-g3-2d-fill.tiff"
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Basic sanity check for tiffcp with G3 compression and 2 dimensional encoding.
|
||||
#
|
||||
. ${srcdir:-.}/common.sh
|
||||
f_test_convert "${TIFFCP} -c g3:2d" "${IMG_MINISWHITE_1C_1B}" "o-tiffcp-g3-2d.tiff"
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Basic sanity check for tiffcp with G3 compression
|
||||
#
|
||||
. ${srcdir:-.}/common.sh
|
||||
f_test_convert "${TIFFCP} -c g3" "${IMG_MINISWHITE_1C_1B}" "o-tiffcp-g3.tiff"
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Basic sanity check for tiffcp with G4 compression
|
||||
#
|
||||
. ${srcdir:-.}/common.sh
|
||||
f_test_convert "${TIFFCP} -c g4" "${IMG_MINISWHITE_1C_1B}" "o-tiffcp-g4.tiff"
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Basic sanity check for tiffcp with logluv compression
|
||||
#
|
||||
. ${srcdir:-.}/common.sh
|
||||
f_test_convert "${TIFFCP} -c none" "${srcdir}/images/logluv-3c-16b.tiff" "o-tiffcp-logluv-raw.tiff"
|
||||
f_test_convert "${TIFFCP} -c sgilog" "o-tiffcp-logluv-raw.tiff" "o-tiffcp-logluv-sgilog.tiff"
|
||||
@@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Basic sanity check for tiffcp + tiffsplit + tiffcp
|
||||
#
|
||||
# First we use tiffcp to join our test files into a multi-frame TIFF
|
||||
# then we use tiffsplit to split them out again, and then we use
|
||||
# tiffcp to recombine again.
|
||||
|
||||
. ${srcdir:-.}/common.sh
|
||||
conjoined=o-tiffcp-split-join-conjoined.tif
|
||||
reconjoined=o-tiffcp-split-join-reconjoined.tif
|
||||
splitfile=o-tiffcp-split-join-split-
|
||||
|
||||
f_test_convert "${TIFFCP}" "${IMG_UNCOMPRESSED}" "${conjoined}"
|
||||
f_test_convert "${TIFFSPLIT}" "${conjoined}" "${splitfile}"
|
||||
f_test_convert "${TIFFCP}" "${splitfile}*" "${reconjoined}"
|
||||
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Basic sanity check for tiffcp + tiffsplit
|
||||
#
|
||||
# First we use tiffcp to join our test files into a multi-frame TIFF
|
||||
# and then we use tiffsplit to split them out again.
|
||||
#
|
||||
. ${srcdir:-.}/common.sh
|
||||
conjoined=o-tiffcp-split-conjoined.tif
|
||||
splitfile=o-tiffcp-split-split-
|
||||
|
||||
f_test_convert "${TIFFCP}" "${IMG_UNCOMPRESSED}" "${conjoined}"
|
||||
f_test_convert "${TIFFSPLIT}" "${conjoined}" "${splitfile}"
|
||||
@@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Basic sanity check for thumbnail
|
||||
#
|
||||
. ${srcdir:-.}/common.sh
|
||||
|
||||
outfile1=o-tiffcp-thumbnail-in.tif
|
||||
outfile2=o-tiffcp-thumbnail-out.tif
|
||||
f_test_convert "${TIFFCP} -c g3:1d" "${IMG_MINISWHITE_1C_1B}" "${outfile1}"
|
||||
f_test_convert "${THUMBNAIL}" "${outfile1}" "${outfile2}"
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/logluv-3c-16b.tiff"
|
||||
outfile="o-tiffcrop-R90-logluv-3c-16b.tiff"
|
||||
f_test_convert "$TIFFCROP -R90" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/minisblack-1c-16b.tiff"
|
||||
outfile="o-tiffcrop-R90-minisblack-1c-16b.tiff"
|
||||
f_test_convert "$TIFFCROP -R90" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/minisblack-1c-8b.tiff"
|
||||
outfile="o-tiffcrop-R90-minisblack-1c-8b.tiff"
|
||||
f_test_convert "$TIFFCROP -R90" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/minisblack-2c-8b-alpha.tiff"
|
||||
outfile="o-tiffcrop-R90-minisblack-2c-8b-alpha.tiff"
|
||||
f_test_convert "$TIFFCROP -R90" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/miniswhite-1c-1b.tiff"
|
||||
outfile="o-tiffcrop-R90-miniswhite-1c-1b.tiff"
|
||||
f_test_convert "$TIFFCROP -R90" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/palette-1c-1b.tiff"
|
||||
outfile="o-tiffcrop-R90-palette-1c-1b.tiff"
|
||||
f_test_convert "$TIFFCROP -R90" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/palette-1c-4b.tiff"
|
||||
outfile="o-tiffcrop-R90-palette-1c-4b.tiff"
|
||||
f_test_convert "$TIFFCROP -R90" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/palette-1c-8b.tiff"
|
||||
outfile="o-tiffcrop-R90-palette-1c-8b.tiff"
|
||||
f_test_convert "$TIFFCROP -R90" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/rgb-3c-16b.tiff"
|
||||
outfile="o-tiffcrop-R90-rgb-3c-16b.tiff"
|
||||
f_test_convert "$TIFFCROP -R90" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/rgb-3c-8b.tiff"
|
||||
outfile="o-tiffcrop-R90-rgb-3c-8b.tiff"
|
||||
f_test_convert "$TIFFCROP -R90" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/logluv-3c-16b.tiff"
|
||||
outfile="o-tiffcrop-doubleflip-logluv-3c-16b.tiff"
|
||||
f_test_convert "$TIFFCROP -F both" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/minisblack-1c-16b.tiff"
|
||||
outfile="o-tiffcrop-doubleflip-minisblack-1c-16b.tiff"
|
||||
f_test_convert "$TIFFCROP -F both" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/minisblack-1c-8b.tiff"
|
||||
outfile="o-tiffcrop-doubleflip-minisblack-1c-8b.tiff"
|
||||
f_test_convert "$TIFFCROP -F both" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/minisblack-2c-8b-alpha.tiff"
|
||||
outfile="o-tiffcrop-doubleflip-minisblack-2c-8b-alpha.tiff"
|
||||
f_test_convert "$TIFFCROP -F both" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/miniswhite-1c-1b.tiff"
|
||||
outfile="o-tiffcrop-doubleflip-miniswhite-1c-1b.tiff"
|
||||
f_test_convert "$TIFFCROP -F both" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/palette-1c-1b.tiff"
|
||||
outfile="o-tiffcrop-doubleflip-palette-1c-1b.tiff"
|
||||
f_test_convert "$TIFFCROP -F both" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/palette-1c-4b.tiff"
|
||||
outfile="o-tiffcrop-doubleflip-palette-1c-4b.tiff"
|
||||
f_test_convert "$TIFFCROP -F both" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/palette-1c-8b.tiff"
|
||||
outfile="o-tiffcrop-doubleflip-palette-1c-8b.tiff"
|
||||
f_test_convert "$TIFFCROP -F both" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/rgb-3c-16b.tiff"
|
||||
outfile="o-tiffcrop-doubleflip-rgb-3c-16b.tiff"
|
||||
f_test_convert "$TIFFCROP -F both" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/rgb-3c-8b.tiff"
|
||||
outfile="o-tiffcrop-doubleflip-rgb-3c-8b.tiff"
|
||||
f_test_convert "$TIFFCROP -F both" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/logluv-3c-16b.tiff"
|
||||
outfile="o-tiffcrop-extract-logluv-3c-16b.tiff"
|
||||
f_test_convert "$TIFFCROP -U px -E top -X 60 -Y 60" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/minisblack-1c-16b.tiff"
|
||||
outfile="o-tiffcrop-extract-minisblack-1c-16b.tiff"
|
||||
f_test_convert "$TIFFCROP -U px -E top -X 60 -Y 60" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/minisblack-1c-8b.tiff"
|
||||
outfile="o-tiffcrop-extract-minisblack-1c-8b.tiff"
|
||||
f_test_convert "$TIFFCROP -U px -E top -X 60 -Y 60" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/minisblack-2c-8b-alpha.tiff"
|
||||
outfile="o-tiffcrop-extract-minisblack-2c-8b-alpha.tiff"
|
||||
f_test_convert "$TIFFCROP -U px -E top -X 60 -Y 60" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/miniswhite-1c-1b.tiff"
|
||||
outfile="o-tiffcrop-extract-miniswhite-1c-1b.tiff"
|
||||
f_test_convert "$TIFFCROP -U px -E top -X 60 -Y 60" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/palette-1c-1b.tiff"
|
||||
outfile="o-tiffcrop-extract-palette-1c-1b.tiff"
|
||||
f_test_convert "$TIFFCROP -U px -E top -X 60 -Y 60" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/palette-1c-4b.tiff"
|
||||
outfile="o-tiffcrop-extract-palette-1c-4b.tiff"
|
||||
f_test_convert "$TIFFCROP -U px -E top -X 60 -Y 60" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/palette-1c-8b.tiff"
|
||||
outfile="o-tiffcrop-extract-palette-1c-8b.tiff"
|
||||
f_test_convert "$TIFFCROP -U px -E top -X 60 -Y 60" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/rgb-3c-16b.tiff"
|
||||
outfile="o-tiffcrop-extract-rgb-3c-16b.tiff"
|
||||
f_test_convert "$TIFFCROP -U px -E top -X 60 -Y 60" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/rgb-3c-8b.tiff"
|
||||
outfile="o-tiffcrop-extract-rgb-3c-8b.tiff"
|
||||
f_test_convert "$TIFFCROP -U px -E top -X 60 -Y 60" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/logluv-3c-16b.tiff"
|
||||
outfile="o-tiffcrop-extractz14-logluv-3c-16b.tiff"
|
||||
f_test_convert "$TIFFCROP -E left -Z1:4,2:4" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/minisblack-1c-16b.tiff"
|
||||
outfile="o-tiffcrop-extractz14-minisblack-1c-16b.tiff"
|
||||
f_test_convert "$TIFFCROP -E left -Z1:4,2:4" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/minisblack-1c-8b.tiff"
|
||||
outfile="o-tiffcrop-extractz14-minisblack-1c-8b.tiff"
|
||||
f_test_convert "$TIFFCROP -E left -Z1:4,2:4" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/minisblack-2c-8b-alpha.tiff"
|
||||
outfile="o-tiffcrop-extractz14-minisblack-2c-8b-alpha.tiff"
|
||||
f_test_convert "$TIFFCROP -E left -Z1:4,2:4" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/miniswhite-1c-1b.tiff"
|
||||
outfile="o-tiffcrop-extractz14-miniswhite-1c-1b.tiff"
|
||||
f_test_convert "$TIFFCROP -E left -Z1:4,2:4" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
# Generated file, master is Makefile.am
|
||||
. ${srcdir:-.}/common.sh
|
||||
infile="$srcdir/images/palette-1c-1b.tiff"
|
||||
outfile="o-tiffcrop-extractz14-palette-1c-1b.tiff"
|
||||
f_test_convert "$TIFFCROP -E left -Z1:4,2:4" $infile $outfile
|
||||
f_tiffinfo_validate $outfile
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user