summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authordron <dron>2005-05-25 09:37:05 +0000
committerdron <dron>2005-05-25 09:37:05 +0000
commit939070e6d9c9c10db619f0859fd0f883c818bf5b (patch)
treee3841a894313b44dc577d5e11525870c56daf9dc /contrib
parent786c46435094ecbf643a9bc5ac1325d1eccb7c7e (diff)
downloadlibtiff-939070e6d9c9c10db619f0859fd0f883c818bf5b.tar.gz
Sinchronized with GDAL.
Diffstat (limited to 'contrib')
-rw-r--r--contrib/addtiffo/tif_overview.c27
-rw-r--r--contrib/addtiffo/tif_ovrcache.h33
2 files changed, 43 insertions, 17 deletions
diff --git a/contrib/addtiffo/tif_overview.c b/contrib/addtiffo/tif_overview.c
index 83313abf..65f6e3b5 100644
--- a/contrib/addtiffo/tif_overview.c
+++ b/contrib/addtiffo/tif_overview.c
@@ -1,5 +1,5 @@
/******************************************************************************
- * $Id: tif_overview.c,v 1.6 2004-08-08 15:32:29 dron Exp $
+ * tif_overview.c,v 1.9 2005/05/25 09:03:16 dron Exp
*
* Project: TIFF Overview Builder
* Purpose: Library function for building overviews in a TIFF file.
@@ -53,6 +53,10 @@
#include "tiffio.h"
#include "tif_ovrcache.h"
+#include "cpl_port.h"
+
+CPL_CVSID("tif_overview.c,v 1.2 2001/07/18 04:51:56 warmerda Exp");
+
#ifndef FALSE
# define FALSE 0
# define TRUE 1
@@ -76,7 +80,7 @@ void TIFFBuildOverviews( TIFF *, int, int *, int, const char *,
/************************************************************************/
uint32 TIFF_WriteOverview( TIFF *hTIFF, int nXSize, int nYSize,
- int nBitsPerPixel, int nSamples,
+ int nBitsPerPixel, int nPlanarConfig, int nSamples,
int nBlockXSize, int nBlockYSize,
int bTiled, int nCompressFlag, int nPhotometric,
int nSampleFormat,
@@ -101,7 +105,7 @@ uint32 TIFF_WriteOverview( TIFF *hTIFF, int nXSize, int nYSize,
if( nSamples == 1 )
TIFFSetField( hTIFF, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG );
else
- TIFFSetField( hTIFF, TIFFTAG_PLANARCONFIG, PLANARCONFIG_SEPARATE );
+ TIFFSetField( hTIFF, TIFFTAG_PLANARCONFIG, nPlanarConfig );
TIFFSetField( hTIFF, TIFFTAG_BITSPERSAMPLE, nBitsPerPixel );
TIFFSetField( hTIFF, TIFFTAG_SAMPLESPERPIXEL, nSamples );
@@ -531,14 +535,15 @@ void TIFFBuildOverviews( TIFF *hTIFF, int nOverviews, int * panOvList,
&panRedMap, &panGreenMap, &panBlueMap ) )
{
uint16 *panRed2, *panGreen2, *panBlue2;
+ int nColorCount = 1 << nBitsPerPixel;
- panRed2 = (uint16 *) _TIFFmalloc(2*256);
- panGreen2 = (uint16 *) _TIFFmalloc(2*256);
- panBlue2 = (uint16 *) _TIFFmalloc(2*256);
+ panRed2 = (uint16 *) _TIFFmalloc(2*nColorCount);
+ panGreen2 = (uint16 *) _TIFFmalloc(2*nColorCount);
+ panBlue2 = (uint16 *) _TIFFmalloc(2*nColorCount);
- memcpy( panRed2, panRedMap, 512 );
- memcpy( panGreen2, panGreenMap, 512 );
- memcpy( panBlue2, panBlueMap, 512 );
+ memcpy( panRed2, panRedMap, 2 * nColorCount );
+ memcpy( panGreen2, panGreenMap, 2 * nColorCount );
+ memcpy( panBlue2, panBlueMap, 2 * nColorCount );
panRedMap = panRed2;
panGreenMap = panGreen2;
@@ -575,8 +580,8 @@ void TIFFBuildOverviews( TIFF *hTIFF, int nOverviews, int * panOvList,
}
nDirOffset = TIFF_WriteOverview( hTIFF, nOXSize, nOYSize,
- nBitsPerPixel, nSamples,
- nOBlockXSize, nOBlockYSize,
+ nBitsPerPixel, nPlanarConfig,
+ nSamples, nOBlockXSize, nOBlockYSize,
bTiled, nCompressFlag, nPhotometric,
nSampleFormat,
panRedMap, panGreenMap, panBlueMap,
diff --git a/contrib/addtiffo/tif_ovrcache.h b/contrib/addtiffo/tif_ovrcache.h
index 99961570..f0775cf9 100644
--- a/contrib/addtiffo/tif_ovrcache.h
+++ b/contrib/addtiffo/tif_ovrcache.h
@@ -1,5 +1,5 @@
/******************************************************************************
- * $Id: tif_ovrcache.h,v 1.1 2000-01-28 15:03:32 warmerda Exp $
+ * tif_ovrcache.h,v 1.3 2005/05/25 09:03:16 dron Exp
*
* Project: TIFF Overview Builder
* Purpose: Library functions to maintain two rows of tiles or two strips
@@ -30,16 +30,17 @@
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
******************************************************************************
- *
- * $Log: tif_ovrcache.h,v $
- * Revision 1.1 2000-01-28 15:03:32 warmerda
- * New
- *
*/
#ifndef TIF_OVRCACHE_H_INCLUDED
#define TIF_OVRCACHE_H_INCLUDED
+#include "tiffio.h"
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
typedef struct
{
uint32 nXSize;
@@ -68,5 +69,25 @@ TIFFOvrCache *TIFFCreateOvrCache( TIFF *hTIFF, int nDirOffset );
unsigned char *TIFFGetOvrBlock( TIFFOvrCache *, int, int, int );
void TIFFDestroyOvrCache( TIFFOvrCache * );
+void TIFFBuildOverviews( TIFF *, int, int *, int, const char *,
+ int (*)(double,void*), void * );
+
+void TIFF_ProcessFullResBlock( TIFF *hTIFF, int nPlanarConfig,
+ int nOverviews, int * panOvList,
+ int nBitsPerPixel,
+ int nSamples, TIFFOvrCache ** papoRawBIs,
+ int nSXOff, int nSYOff,
+ unsigned char *pabySrcTile,
+ int nBlockXSize, int nBlockYSize,
+ int nSampleFormat, const char * pszResampling );
+
+uint32 TIFF_WriteOverview( TIFF *, int, int, int, int, int, int, int,
+ int, int, int, int, unsigned short *,
+ unsigned short *, unsigned short *, int );
+
+#if defined(__cplusplus)
+}
+#endif
+
#endif /* ndef TIF_OVRCACHE_H_INCLUDED */