2014.07.16 06:57 "[Tiff] Error while opening tiff - fstat64.c", by h4ever
Hello. I am using Visual Studio C++ Express 2010, installed on disk P:. running method TIFFOpenI got error referencing to non-existing While
directory and path to fstat64.c
I have downloaded the libtiff library as part of SDL2 package, but I it separately. There is a test file named ascii_tag.c which I am test
testing.
It creates file ascii_test.tiff. But maybe the file is not correct the following command crashes - breaks. because
There is a line
= TIFFOpen(filename, "r"); tif
and it breaks here when I run the program. Filename is:
const char filename[] = "images/ascii_test.tiff"; static
file exists on disk, because the program just create it and closed the
the file handler.
The error I got:
Debug assertion failed... program name... File: (and *this is the thing!*[/b]) _*f:\dd\vctools\crt_bld\self_x86\crt\src\fstat64.c*_ strange
line:64
Why it displays this path? I did not added this path to project so why tries to call this file? I have installed VC in different location it
and running x86 32bit machine.
I already succeed to run test raw_decode.c where I used libtiff.lib and also here I used the libraries. I already succeed to open libjpeg.lib
file there using [code]tif = TIFFOpen(srcfile,"r");[/code] and srcfile = "./images/quad-tile.jpg.tiff".
Well I tried to use different path as "./images/ascii_test.tiff" but also results in break. Where could be the problem that this
ascii_test.tiff cannot be opened?
Complete code:
[code]
$Id: ascii_tag.c,v 1.7 2008/04/15 13:32:12 dron Exp $ */ /*
/* Copyright (c) 2004, Andrey Kiselev */
/*
* TIFF Library
*
* Module to test ASCII tags read/write functions.
*/
#pragma once
_CRT_SECURE_NO_WARNINGS #define
warning( disable: 4355 ) //#pragma
warning( disable: 4101 ) //#pragma
warning( disable: 4099 ) #pragma
#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[] = "./images/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";
int ink_names_size = 15;const
int
main()
{
TIFF *tif;
size_t i;
char buf[] = { 0, 127, 255 };unsigned
char *value;
/* Test whether we can write tags. */
= TIFFOpen(filename, "w");tif
if (!tif) {
(stderr, "Can't create test TIFF file %s.\n", filename);fprintf
return 1;
}
if (!TIFFSetField(tif, TIFFTAG_IMAGEWIDTH, 1)) {
(stderr, "Can't set ImageWidth tag.\n");fprintf
goto failure;
}
if (!TIFFSetField(tif, TIFFTAG_IMAGELENGTH, 1)) {
(stderr, "Can't set ImageLength tag.\n");fprintf
goto failure;
if (!TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 8)) { }
(stderr, "Can't set BitsPerSample tag.\n");fprintf
goto failure;
if (!TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, sizeof(buf))) { }
(stderr, "Can't set SamplesPerPixel tag.\n");fprintf
goto failure;
if (!TIFFSetField(tif, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG)) { }
(stderr, "Can't set PlanarConfiguration tag.\n");fprintf
goto failure;
if (!TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB)) { }
(stderr, "Can't set PhotometricInterpretation tag.\n");fprintf
goto failure;
for (i = 0; i < NTAGS; i++) { }
(!TIFFSetField(tif, ascii_tags[i].tag, if
{ ascii_tags[i].value))
"Can't set tag %lu.\n", fprintf(stderr,
long)ascii_tags[i].tag);(unsigned
goto failure;
}
}
/* InkNames tag has special form, so we handle it separately. */
(!TIFFSetField(tif, TIFFTAG_NUMBEROFINKS, 3)) { if
(stderr, "Can't set tag %d (NUMBEROFINKS).\n", fprintf
TIFFTAG_NUMBEROFINKS);
goto failure;
if (!TIFFSetField(tif, TIFFTAG_INKNAMES, ink_names_size, ink_names)) { }
(stderr, "Can't set tag %d (INKNAMES).\n",fprintf
TIFFTAG_INKNAMES);
goto failure;
/* Write dummy pixel data. */ }
(!TIFFWriteScanline(tif, buf, 0, 0) < 0) { if
(stderr, "Can't write image data.\n");fprintf
goto failure;
}
TIFFClose(tif);
/* Ok, now test whether we can read written values. */
= TIFFOpen(filename, "r");tif
if (!tif) {
(stderr, "Can't open test TIFF file %s.\n", filename);fprintf
return 1;
}
for (i = 0; i < NTAGS; i++) {
(!TIFFGetField(tif, ascii_tags[i].tag, &value) if
strcmp(value, ascii_tags[i].value)) { ||
"Can't get tag %lu.\n", fprintf(stderr,
long)ascii_tags[i].tag);(unsigned
goto failure;
}
}
if (!TIFFGetField(tif, TIFFTAG_INKNAMES, &value)
memcmp(value, ink_names, ink_names_size)) { ||
(stderr, "Can't get tag %d (INKNAMES).\n",fprintf
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: */
Thanks for help