AWARE [SYSTEMS] Imaging expertise for the Delphi developer
AWare Systems, Imaging expertise for the Delphi developer, Home TIFF and LibTiff Mailing List Archive

LibTiff Mailing List

TIFF and LibTiff Mailing List Archive
August 2007

Previous Thread
Next Thread

Previous by Thread
Next by Thread

Previous by Date
Next by Date

Contact

The TIFF Mailing List Homepage
This list is run by Frank Warmerdam
Archive maintained by AWare Systems



Valid HTML 4.01!



Thread

2007.08.02 16:38 "reading planar images using TIFFReadScanline", by Christian Henning
2007.08.02 16:52 "Re: reading planar images using TIFFReadScanline", by Bob Friesenhahn
2007.08.02 17:45 "Re: reading planar images using TIFFReadScanline", by Christian Henning
2007.08.03 08:33 "Re: reading planar images using TIFFReadScanline", by Kai-uwe Behrmann
2007.08.03 15:17 "Re: reading planar images using TIFFReadScanline", by Christian Henning
2007.08.04 09:02 "Re: reading planar images using TIFFReadScanline", by Kai-uwe Behrmann
2007.08.02 17:54 "Re: reading planar images using TIFFReadScanline", by Frank Warmerdam

2007.08.04 09:02 "Re: reading planar images using TIFFReadScanline", by Kai-uwe Behrmann

We always avoid TIFFReadEncodedStrip to not to unpack the data ourself.
TIFFReadScanline works correct for PLANARCONFIG_SEPARATE continously 
reading the whole image, channel for channel.

I attached the according code snippet from CinePaint's tiff plug-in.

regards
Kai-Uwe Behrmann
--
developing for colour management 
www.behrmann.name + www.oyranos.org + www.cinepaint.org


Am 03.08.07, 11:17 -0400 schrieb Christian Henning:

> Thanks for the advise. Yes, my code can read. But I'm using
> TIFFReadEncodedStrip and I get the right data. I was just wondering if
> there is a way to read it using TIFFReadScanline?
> 
> Does anyone know if it's possible?
> 
> Christian
> 
> On 8/3/07, Kai-Uwe Behrmann <ku.b@gmx.de> wrote:
> > CinePaint reads Caspian.tif fine. Is your code ready for the data?
> >   Bits/Sample: 64
> >   Sample Format: IEEE floating point
> > with libtiff 3.8.2
> >
> > regards
> > Kai-Uwe Behrmann
> > --
> > developing for colour management
> > www.behrmann.name + www.oyranos.org + www.cinepaint.org
> >
> > Am 02.08.07, 13:45 -0400 schrieb Christian Henning:
> >
> > > Sorry, I should have read my email before sending. My question
> > > regarding TIFFReadScanline was in conjunction with planar images. Here
> > > as everyone knows the channels are stored subsequently. So, it made me
> > > wonder if TIFFReadScanline still works. A quite test with the
> > > caspian.tif test image results in a messed up image.
> > >
> > > Regards,
> > > Christian
> >
>

  } else { /* PLANARCONFIG_SEPARATE */
    uint16 sample;
    gint   start = TRUE;

    if (ci->channel->drawable->bpp !=
                       (int)((float)ci->bps/8 * (float)ci->spp) && ci->bps <
                    64)
          g_warning ("%s:%d %s() drawables and tiffs byte depth are
          different %d != %01f(%01f*%01f)\n",__FILE__,__LINE__,__func__,
            ci->channel->drawable->bpp,
            (float)ci->bps/8.0* (float)ci->spp,
            (float)ci->bps/8.0, (float)ci->spp);

    for (sample = 0; sample < (ci->spp + ci->extra); sample++) {
      m_new (text, char, 256, ;)
      sprintf (text, "%s '%s' plane %d ...",_("Opening"), ci->top->filename,
                      sample + 1);

      gimp_progress_init (text);

      m_free (text)

      for (j_row = 0; j_row < ci->rows; j_row += tile_height) {
        gimp_progress_update ( (double) j_row / (double) ci->rows);
        rows = MIN (tile_height, ci->rows - j_row);

        for (g_row = 0;  g_row < rows; ++g_row) {
          TIFFReadScanline(tif, buffer + g_row * lineSize,
                 (uint32)(j_row + g_row), sample);
        }

        read_separate (buffer, ci, 0, j_row, ci->cols, rows, (gint)sample);
        start = FALSE;
      }
    }
  }