AWARE SYSTEMS
TIFF and LibTiff Mail List Archive

2011.04.22 20:24 "[Tiff] Question regarding toggling associated to unspecified", by Billy G. Alexander

I'm currently working on a old photogrammetric package that is using libtiff v3.9.0 however our client is requesting that we toggle the associated alpha tag 338 1 to 0 for compatibility with certain other software they have.

Is anyone familiar with a command line parameter or filter that has been implemented to toggle associated_alpha to Unspecified 1 to 0 during a batch routine for thousands of tif images....

I am new to this entire process I'm a little sketchy.

I welcome comments suggestions and direction...

If not does anyone foresee any issues if I was to implement the following in my extract.c that calls littiff. I realise i probably haven't provided you with enough information as yet but hopefully someone will see my intent and direction
By doing this i am hoping to implement a command line parameter in my script file.

{
 /* Typedef statements */

/* Struct, union, and enum definitions */

/* Static declarations */
static char
 routine_name[] = "tif_toggle_alpha";

/* Auto declarations */
int_4
 ii; /* Generic counter */

u_char
 *idx;

TIFF

   *tifb;                       /* TIF data buffer */

/* Verify the image format */
IMA_CHECK_OLD_TILE(dt);

/* Set the messages handlers */
tif_set_message_handlers();

/* Open the TIFF file for writing. */
tifb = TIFFOpen(pathname, "w");
if(tifb == NULL)
{
  sprintf(msg_buff, "Unable to open TIFF file!\n [file: %s]\n", pathname);
  TIF_LOG_ERR(msg_buff);
  return(ASI_STATUS_ERR);
}

/* Update TIFF IFD. */
TIFFSetField(tifb, TIFFTAG_EXTRASAMPLES, 0);

/* Output the TIFF image. */
for(ii = 0; ii < (int_4)dt->ny; ii++)
{
  idx = (u_char *)dt->pix2 + ( ii * dt->nx);
  if(TIFFWriteScanline(tifb, idx, ii, 0) < 0)
  {
    TIF_LOG_ERR("Failed to write TIFF scanline.\n");
    TIFFClose(tifb);
    return(ASI_STATUS_ERR);
  }
}

/* Close the TIFF file. */
TIFFClose(tifb);

  return( ASI_STATUS_SUC);
}