better sanity check for buffer sizing
This commit is contained in:
parent
ee336b0199
commit
aeaafe568b
6
TODO
6
TODO
|
@ -1,9 +1,3 @@
|
||||||
- tiff save needs relaxing too
|
|
||||||
|
|
||||||
support all vips numeric formats, including complex and double comples
|
|
||||||
|
|
||||||
tiffsave.c and vips2tiff.c both need work
|
|
||||||
|
|
||||||
- finish hist_ismonotonic()
|
- finish hist_ismonotonic()
|
||||||
|
|
||||||
needs im_conv()
|
needs im_conv()
|
||||||
|
|
|
@ -596,17 +596,6 @@ write_tiff_header( TiffWrite *tw, TIFF *tif, int width, int height )
|
||||||
|
|
||||||
TIFFSetField( tif, TIFFTAG_SAMPLEFORMAT, format );
|
TIFFSetField( tif, TIFFTAG_SAMPLEFORMAT, format );
|
||||||
|
|
||||||
/* Double check: buffers should match in size.
|
|
||||||
*/
|
|
||||||
if( tw->im->Coding != VIPS_CODING_LABQ &&
|
|
||||||
!tw->onebit &&
|
|
||||||
TIFFScanlineSize( tif ) !=
|
|
||||||
VIPS_IMAGE_SIZEOF_LINE( tw->im ) ) {
|
|
||||||
vips_error( "vips2tiff",
|
|
||||||
"%s", _( "unsupported image format" ) );
|
|
||||||
return( -1 );
|
|
||||||
}
|
|
||||||
|
|
||||||
return( 0 );
|
return( 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1096,6 +1085,22 @@ write_tif_tilewise( TiffWrite *tw )
|
||||||
{
|
{
|
||||||
VipsImage *im = tw->im;
|
VipsImage *im = tw->im;
|
||||||
|
|
||||||
|
/* Double check: buffers should match in size, except for onebit and
|
||||||
|
* labq modes.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
size_t vips_tile_size =
|
||||||
|
VIPS_IMAGE_SIZEOF_PEL( im ) * tw->tilew * tw->tileh;
|
||||||
|
|
||||||
|
if( tw->im->Coding != VIPS_CODING_LABQ &&
|
||||||
|
!tw->onebit &&
|
||||||
|
TIFFTileSize( tw->tif ) != vips_tile_size ) {
|
||||||
|
vips_error( "vips2tiff",
|
||||||
|
"%s", _( "unsupported image format" ) );
|
||||||
|
return( -1 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
g_assert( !tw->tbuf );
|
g_assert( !tw->tbuf );
|
||||||
if( !(tw->tbuf = vips_malloc( NULL, TIFFTileSize( tw->tif ) )) )
|
if( !(tw->tbuf = vips_malloc( NULL, TIFFTileSize( tw->tif ) )) )
|
||||||
return( -1 );
|
return( -1 );
|
||||||
|
@ -1158,6 +1163,17 @@ write_tif_stripwise( TiffWrite *tw )
|
||||||
{
|
{
|
||||||
g_assert( !tw->tbuf );
|
g_assert( !tw->tbuf );
|
||||||
|
|
||||||
|
/* Double check: buffers should match in size, except for onebit and
|
||||||
|
* labq modes.
|
||||||
|
*/
|
||||||
|
if( tw->im->Coding != VIPS_CODING_LABQ &&
|
||||||
|
!tw->onebit &&
|
||||||
|
TIFFTileSize( tw->tif ) != VIPS_IMAGE_SIZEOF_LINE( tw->im ) ) {
|
||||||
|
vips_error( "vips2tiff",
|
||||||
|
"%s", _( "unsupported image format" ) );
|
||||||
|
return( -1 );
|
||||||
|
}
|
||||||
|
|
||||||
if( !(tw->tbuf = vips_malloc( NULL, TIFFScanlineSize( tw->tif ) )) )
|
if( !(tw->tbuf = vips_malloc( NULL, TIFFScanlineSize( tw->tif ) )) )
|
||||||
return( -1 );
|
return( -1 );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue