Merge remote-tracking branch 'origin/master'

Conflicts:
	ChangeLog
This commit is contained in:
John Cupitt 2012-03-19 11:42:31 +00:00
commit 3f850b5f8b
3 changed files with 12 additions and 9 deletions

View File

@ -1,6 +1,7 @@
13/3/12 started 7.28.2 13/3/12 started 7.28.2
- better PNG alpha handling - better PNG alpha handling
- sanity-check PNG read geometry - sanity-check PNG read geometry
- xres/yres tiffsave args were broken
13/3/12 started 7.28.1 13/3/12 started 7.28.1
- add ICC profile read/write for png files - add ICC profile read/write for png files

View File

@ -884,7 +884,7 @@ parse_resolution( TIFF *tiff, VipsImage *out )
return( 0 ); return( 0 );
} }
/* Look at PhotometricInterpretation and BitsPerPixel, and try to figure out /* Look at PhotometricInterpretation and BitsPerPixel and try to figure out
* which of the image classes this is. * which of the image classes this is.
*/ */
static int static int
@ -1143,7 +1143,7 @@ tiff_fill_region_aligned( VipsRegion *out, void *seq, void *a, void *b )
return( 0 ); return( 0 );
} }
/* Loop over the output region, painting in tiles from the file. /* Loop over the output region painting in tiles from the file.
*/ */
static int static int
tiff_fill_region( VipsRegion *out, void *seq, void *a, void *b, gboolean *stop ) tiff_fill_region( VipsRegion *out, void *seq, void *a, void *b, gboolean *stop )
@ -1163,7 +1163,7 @@ tiff_fill_region( VipsRegion *out, void *seq, void *a, void *b, gboolean *stop )
/* Sizeof a pel in the TIFF file. This won't work for formats which /* Sizeof a pel in the TIFF file. This won't work for formats which
* are <1 byte per pel, like onebit :-( Fortunately, it's only used * are <1 byte per pel, like onebit :-( Fortunately, it's only used
* to calculate addresses within a tile, and because we are wrapped in * to calculate addresses within a tile and, because we are wrapped in
* vips_tilecache(), we will never have to calculate positions not * vips_tilecache(), we will never have to calculate positions not
* within a tile. * within a tile.
*/ */
@ -1172,7 +1172,7 @@ tiff_fill_region( VipsRegion *out, void *seq, void *a, void *b, gboolean *stop )
int x, y, z; int x, y, z;
/* Special case: we are filling a single tile exactly sized to match /* Special case: we are filling a single tile exactly sized to match
* the tiff tile, and we have no repacking to do for this format. * the tiff tile and we have no repacking to do for this format.
*/ */
if( rtiff->memcpy && if( rtiff->memcpy &&
r->left % rtiff->twidth == 0 && r->left % rtiff->twidth == 0 &&
@ -1203,7 +1203,7 @@ tiff_fill_region( VipsRegion *out, void *seq, void *a, void *b, gboolean *stop )
*/ */
vips_rect_intersectrect( &tile, r, &hit ); vips_rect_intersectrect( &tile, r, &hit );
/* Unpack to VIPS format. We can do this in parallel. /* Unpack to VIPS format.
* Just unpack the section of the tile we need. * Just unpack the section of the tile we need.
*/ */
for( z = 0; z < hit.height; z++ ) { for( z = 0; z < hit.height; z++ ) {

View File

@ -2,6 +2,8 @@
* *
* 2/12/11 * 2/12/11
* - wrap a class around the tiff writer * - wrap a class around the tiff writer
* 17/3/12
* - argh xres/yres macro was wrong
*/ */
/* /*
@ -248,15 +250,15 @@ vips_foreign_save_tiff_class_init( VipsForeignSaveTiffClass *class )
VIPS_ARG_DOUBLE( class, "xres", 16, VIPS_ARG_DOUBLE( class, "xres", 16,
_( "Xres" ), _( "Xres" ),
_( "Horizontal resolution in pixels/mm" ), _( "Horizontal resolution in pixels/mm" ),
VIPS_ARGUMENT_NONE, VIPS_ARGUMENT_OPTIONAL_INPUT,
G_STRUCT_OFFSET( VipsImage, Xres ), G_STRUCT_OFFSET( VipsForeignSaveTiff, xres ),
-0.0, 1000000, 0 ); -0.0, 1000000, 0 );
VIPS_ARG_DOUBLE( class, "yres", 17, VIPS_ARG_DOUBLE( class, "yres", 17,
_( "Yres" ), _( "Yres" ),
_( "Vertical resolution in pixels/mm" ), _( "Vertical resolution in pixels/mm" ),
VIPS_ARGUMENT_NONE, VIPS_ARGUMENT_OPTIONAL_INPUT,
G_STRUCT_OFFSET( VipsImage, Yres ), G_STRUCT_OFFSET( VipsForeignSaveTiff, yres ),
-0.0, 1000000, 0 ); -0.0, 1000000, 0 );
VIPS_ARG_BOOL( class, "bigtiff", 18, VIPS_ARG_BOOL( class, "bigtiff", 18,