| AWARE [SYSTEMS] | Imaging expertise for the Delphi developer | |||||||
![]() |
TIFF and LibTiff Mailing List Archive | |||||||
LibTiff Mailing List
TIFF and LibTiff Mailing List Archive Contact
The TIFF Mailing List Homepage |
Thread2008.01.14 07:25 "Re: TIFFWriteScanline - write band orders", by Rob Van Den TillaartHi
Think the error is in the line
if (j ==height-2 )
It should be
if (j == height-1)
as otherwise the last line (j==height) isn't wriiten.
give it a try
rob
________________________________
From: tiff-bounces@lists.maptools.org
[mailto:tiff-bounces@lists.maptools.org] On Behalf Of gis geo
Sent: maandag 14 januari 2008 7:33
To: tiff@lists.maptools.org
Subject: [Tiff] TIFFWriteScanline - write band orders
Hi All,
I am learning and testing TIFF Lib, and have experienced the following
problem:
I wish to write a 16-bit RGB imagery with separate planes, using the
following codes
...
TIFFSetField(out, TIFFTAG_IMAGEWIDTH, width);
TIFFSetField(out, TIFFTAG_IMAGELENGTH, height);
TIFFSetField(out, TIFFTAG_BITSPERSAMPLE, 16);
TIFFSetField(out, TIFFTAG_SAMPLESPERPIXEL, 3);
TIFFSetField(out, TIFFTAG_PLANARCONFIG, 2);
TIFFSetField(out, TIFFTAG_PHOTOMETRIC, 2);
TIFFSetField(out, TIFFTAG_COMPRESSION, COMPRESSION_NONE);
TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, TIFFDefaultStripSize(out, 1));
for (j = 0; j < height; j++)
{
...
TIFFWriteScanline(out, buf_r, j, 0);
TIFFWriteScanline(out, buf_g, j, 1);
TIFFWriteScanline(out, buf_b, j, 2);
}
The output is fine and works. I can verify that.
But, after I have applied a 3*3 filter analysis, and I wish to output the
same row-by-row data in this form, and the output tiff file is wrong:
for (j = 1; j < height-1; j++)
{
...
if (j ==1 )
{
TIFFWriteScanline(out, buf_r, j-1, 0);
TIFFWriteScanline(out, buf_g, j-1, 1);
TIFFWriteScanline(out, buf_b, j-1, 2);
}
TIFFWriteScanline(out, buf_r, j, 0);
TIFFWriteScanline(out, buf_g, j, 1);
TIFFWriteScanline(out, buf_b, j, 2);
if (j ==height-2 )
{
TIFFWriteScanline(out, buf_r, j+1, 0);
TIFFWriteScanline(out, buf_g, j+1, 1);
TIFFWriteScanline(out, buf_b, j+1, 2);
}
}
I could not figure out why. This might to related to TIFFWriteScanline()
and some expectation from the Tiff Lib that I did not specify.
THANK you in advance.
________________________________
ÑÅ»¢ÓÊÏä´«µÝÐÂÄê×£¸££¬¸öÐԺؿ¨ËÍÇ×Åó£¡
<http://cn.mail.yahoo.com/gc/index.html?entry=5&souce=mail_mailletter_tagline>
This message and attachment(s) are intended solely for use by the addressee
and may contain information that is privileged, confidential or otherwise
exempt from disclosure under applicable law.
If you are not the intended recipient or agent thereof responsible for
delivering this message to the intended recipient, you are hereby notified
that any dissemination, distribution or copying of this communication is
strictly prohibited.
If you have received this communication in error, please notify the sender
immediately by telephone and with a 'reply' message.
Thank you for your co-operation.
|
|||||||