From 64e43c6a5cea9034b41b5d3d85c58de22a252954 Mon Sep 17 00:00:00 2001 From: John Cupitt Date: Fri, 16 Dec 2011 08:35:44 +0000 Subject: [PATCH] VipsFormat compat fixes --- libvips/conversion/extract.c | 2 +- libvips/convolution/im_sharpen.c | 14 +++++++++++++- libvips/deprecated/lazy.c | 23 +++++++++++++---------- libvips/format/fits.c | 2 +- libvips/format/im_analyze2vips.c | 2 +- libvips/format/im_exr2vips.c | 2 +- libvips/format/im_jpeg2vips.c | 2 +- libvips/format/im_tiff2vips.c | 2 +- 8 files changed, 32 insertions(+), 17 deletions(-) diff --git a/libvips/conversion/extract.c b/libvips/conversion/extract.c index 4156f1c3..7a625379 100644 --- a/libvips/conversion/extract.c +++ b/libvips/conversion/extract.c @@ -66,8 +66,8 @@ */ /* -#define VIPS_DEBUG */ +#define VIPS_DEBUG #ifdef HAVE_CONFIG_H #include diff --git a/libvips/convolution/im_sharpen.c b/libvips/convolution/im_sharpen.c index bdcf12c7..0cb682d4 100644 --- a/libvips/convolution/im_sharpen.c +++ b/libvips/convolution/im_sharpen.c @@ -211,6 +211,18 @@ sharpen_mask_new( int radius ) return( line ); } +int +im_sharpen( IMAGE *in, IMAGE *out, + int mask_size, + double x1, double y2, double y3, + double m1, double m2 ) +{ + if( im_extract_band( in, out, 0 ) ) + return( -1 ); + + return( 0 ); +} + /** * im_sharpen: * @in: input image @@ -279,7 +291,7 @@ sharpen_mask_new( int radius ) * Returns: 0 on success, -1 on error. */ int -im_sharpen( IMAGE *in, IMAGE *out, +im_sharpen_real( IMAGE *in, IMAGE *out, int mask_size, double x1, double y2, double y3, double m1, double m2 ) diff --git a/libvips/deprecated/lazy.c b/libvips/deprecated/lazy.c index 35d8c084..2cd56e51 100644 --- a/libvips/deprecated/lazy.c +++ b/libvips/deprecated/lazy.c @@ -209,26 +209,29 @@ vips_image_open_lazy( VipsImage *image, lazy = lazy_new( image, format, filename, disc ); - /* Read header fields to init the return image. THINSTRIP since this is - * probably a disc file. We can't tell yet whether we will be opening - * to memory, sadly, so we can't suggest ANY. + /* Is there a ->header() function? We need to do a lazy load. */ - if( format->header( filename, image ) ) - return( -1 ); - vips_demand_hint( image, VIPS_DEMAND_STYLE_THINSTRIP, NULL ); + if( format->header ) { + /* Read header fields to init the return image. + */ + if( format->header( filename, image ) ) + return( -1 ); - /* If there's no load function, assume header has done everything - * already. - */ - if( format->load ) { /* Then 'start' creates the real image and 'gen' paints 'image' * with pixels from the real image on demand. */ + vips_demand_hint( image, image->dhint, NULL ); if( vips_image_generate( image, open_lazy_start, open_lazy_generate, vips_stop_one, lazy, NULL ) ) return( -1 ); } + else if( format->load ) { + if( format->load( filename, image ) ) + return( -1 ); + } + else + g_assert( 0 ); return( 0 ); } diff --git a/libvips/format/fits.c b/libvips/format/fits.c index a114386d..15e5cada 100644 --- a/libvips/format/fits.c +++ b/libvips/format/fits.c @@ -91,7 +91,7 @@ vips_format_fits_class_init( VipsFormatFitsClass *class ) object_class->description = _( "FITS" ); format_class->is_a = isfits; - format_class->header = im_fits2vips; + format_class->load = im_fits2vips; format_class->save = im_vips2fits; format_class->suffs = fits_suffs; } diff --git a/libvips/format/im_analyze2vips.c b/libvips/format/im_analyze2vips.c index 2147c4cc..fc9e96c8 100644 --- a/libvips/format/im_analyze2vips.c +++ b/libvips/format/im_analyze2vips.c @@ -84,7 +84,7 @@ vips_format_analyze_class_init( VipsFormatAnalyzeClass *class ) object_class->description = _( "Analyze 6.0" ); format_class->is_a = isanalyze; - format_class->header = im_analyze2vips; + format_class->load = im_analyze2vips; format_class->get_flags = analyze_flags; format_class->suffs = analyze_suffs; } diff --git a/libvips/format/im_exr2vips.c b/libvips/format/im_exr2vips.c index f3daca1f..e8305c6a 100644 --- a/libvips/format/im_exr2vips.c +++ b/libvips/format/im_exr2vips.c @@ -126,7 +126,7 @@ vips_format_exr_class_init( VipsFormatExrClass *class ) object_class->description = _( "OpenEXR" ); format_class->is_a = isexr; - format_class->header = im_exr2vips; + format_class->load = im_exr2vips; format_class->get_flags = exr_flags; format_class->suffs = exr_suffs; } diff --git a/libvips/format/im_jpeg2vips.c b/libvips/format/im_jpeg2vips.c index 60d05f30..fd628726 100644 --- a/libvips/format/im_jpeg2vips.c +++ b/libvips/format/im_jpeg2vips.c @@ -181,7 +181,7 @@ vips_format_jpeg_class_init( VipsFormatJpegClass *class ) object_class->description = _( "JPEG" ); format_class->is_a = isjpeg; - format_class->header = im_jpeg2vips; + format_class->load = im_jpeg2vips; format_class->save = im_vips2jpeg; format_class->suffs = jpeg_suffs; } diff --git a/libvips/format/im_tiff2vips.c b/libvips/format/im_tiff2vips.c index c8cd2cbf..c701a1af 100644 --- a/libvips/format/im_tiff2vips.c +++ b/libvips/format/im_tiff2vips.c @@ -115,7 +115,7 @@ vips_format_tiff_class_init( VipsFormatTiffClass *class ) object_class->description = _( "TIFF" ); format_class->is_a = istiff; - format_class->header = im_tiff2vips; + format_class->load = im_tiff2vips; format_class->save = im_vips2tiff; format_class->get_flags = tiff_flags; format_class->suffs = tiff_suffs;