2014.07.01 11:12 "[Tiff] Possible bug in tiff_dirread.c? Or user error?", by Andreas Romeyke

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