add a vips7 interface to the deepzoom writer

This commit is contained in:
John Cupitt 2013-06-11 12:32:46 +01:00
parent 3bffb2a7e3
commit 55bfa92725
12 changed files with 241 additions and 70 deletions

View File

@ -2,6 +2,7 @@
- version bump
- oops, VImage.PIL_mode_from_vips() failed for CMYK, thanks Alessandro
- fix no-pango build
- add im_vips2dz(): run the deepzoom writer from vips7
12/3/13 started 7.33.0
- vipsthumbnail lets you specify the sharpening mask

View File

@ -68,6 +68,7 @@ libdeprecated_la_SOURCES = \
im_vips2png.c \
im_vips2ppm.c \
im_vips2tiff.c \
im_vips2dz.c \
matlab.c \
radiance.c \
raw.c

View File

@ -63,6 +63,32 @@ static im_function jpeg2vips_desc = {
jpeg2vips_args /* Arg list */
};
static int
vips2dz_vec( im_object *argv )
{
IMAGE *in = argv[0];
char *out = argv[1];
if( im_vips2dz( in, out ) )
return( -1 );
return( 0 );
}
static im_arg_desc vips2dz_args[] = {
IM_INPUT_IMAGE( "in" ),
IM_INPUT_STRING( "out" )
};
static im_function vips2dz_desc = {
"im_vips2dz", /* Name */
"save as deepzoom", /* Description */
0, /* Flags */
vips2dz_vec, /* Dispatch function */
IM_NUMBER( vips2dz_args ), /* Size of arg list */
vips2dz_args /* Arg list */
};
static int
vips2jpeg_vec( im_object *argv )
{
@ -425,6 +451,7 @@ static im_function *list[] = {
&analyze2vips_desc,
&tiff2vips_desc,
&vips2csv_desc,
&vips2dz_desc,
&vips2jpeg_desc,
&vips2mimejpeg_desc,
&vips2png_desc,

View File

@ -0,0 +1,100 @@
/* vips7 compat stub for vips_dzsave()
*
* 11/6/13
* - from im_vips2tiff()
*/
/*
This file is part of VIPS.
VIPS is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA
*/
/*
These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk
*/
/* Turn on IM_REGION_ADDR() range checks, don't delete intermediates.
#define DEBUG
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif /*HAVE_CONFIG_H*/
#include <vips/intl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <vips/vips.h>
int
im_vips2dz( IMAGE *in, const char *filename )
{
char *p, *q;
char name[FILENAME_MAX];
char mode[FILENAME_MAX];
char buf[FILENAME_MAX];
VipsForeignDzLayout layout = VIPS_FOREIGN_DZ_LAYOUT_DZ;
char *suffix = ".jpeg";
int overlap = 0;
int tile_size = 256;
VipsForeignDzDepth depth = VIPS_FOREIGN_DZ_DEPTH_1PIXEL;
gboolean centre = FALSE;
VipsAngle angle = VIPS_ANGLE_0;
im_filename_split( filename, name, mode );
strcpy( buf, mode );
p = &buf[0];
if( (q = im_getnextoption( &p )) )
layout = vips_enum_from_nick( "im_vips2dz",
VIPS_TYPE_FOREIGN_DZ_LAYOUT, q );
if( (q = im_getnextoption( &p )) )
suffix = g_strdup( q );
if( (q = im_getnextoption( &p )) )
overlap = atoi( q );
if( (q = im_getnextoption( &p )) )
tile_size = atoi( q );
if( (q = im_getnextoption( &p )) )
depth = vips_enum_from_nick( "im_vips2dz",
VIPS_TYPE_FOREIGN_DZ_DEPTH, q );
if( (q = im_getnextoption( &p )) ) {
if( im_isprefix( "cen", q ) )
centre = TRUE;
}
if( (q = im_getnextoption( &p )) )
angle = vips_enum_from_nick( "im_vips2dz",
VIPS_TYPE_ANGLE, q );
if( vips_dzsave( in, name,
"layout", layout,
"suffix", suffix,
"overlap", overlap,
"tile_size", tile_size,
"depth", depth,
"centre", centre,
"angle", angle,
NULL ) )
return( -1 );
return( 0 );
}

View File

@ -1341,7 +1341,7 @@ vips_foreign_save_dz_class_init( VipsForeignSaveDzClass *class )
_( "Filename suffix for tiles" ),
VIPS_ARGUMENT_OPTIONAL_INPUT,
G_STRUCT_OFFSET( VipsForeignSaveDz, suffix ),
".jpg" );
".jpeg" );
VIPS_ARG_INT( class, "overlap", 10,
_( "Overlap" ),
@ -1392,7 +1392,7 @@ vips_foreign_save_dz_class_init( VipsForeignSaveDzClass *class )
VIPS_ARG_STRING( class, "dirname", 1,
_( "Base name" ),
_( "Base name to save to" ),
VIPS_ARGUMENT_REQUIRED_INPUT | VIPS_ARGUMENT_DEPRECATED,
VIPS_ARGUMENT_OPTIONAL_INPUT | VIPS_ARGUMENT_DEPRECATED,
G_STRUCT_OFFSET( VipsForeignSaveDz, basename ),
NULL );

View File

@ -165,6 +165,8 @@ int im_vips2rad( VipsImage *in, const char *filename );
int im_fits2vips( const char *filename, VipsImage *out );
int im_vips2fits( VipsImage *in, const char *filename );
int im_vips2dz( VipsImage *in, const char *filename );
#ifdef __cplusplus
}
#endif /*__cplusplus*/

View File

@ -159,6 +159,7 @@ G_STMT_START { \
const char *vips_enum_string( GType enm, int value );
const char *vips_enum_nick( GType enm, int value );
int vips_enum_from_nick( const char *domain, GType type, const char *str );
gboolean vips_slist_equal( GSList *l1, GSList *l2 );
void *vips_slist_map2( GSList *list, VipsSListMap2Fn fn, void *a, void *b );

View File

@ -1439,29 +1439,6 @@ vips_object_class_install_argument( VipsObjectClass *object_class,
#endif /*DEBUG*/
}
/* Make a bad-enum error. A common and fiddly case.
*/
static void
vips_enum_error( VipsObjectClass *class, GType otype, const char *value )
{
GEnumClass *genum = G_ENUM_CLASS( g_type_class_ref( otype ) );
int i;
char str[1000];
VipsBuf buf = VIPS_BUF_STATIC( str );
/* -1 since we always have a "last" member.
*/
for( i = 0; i < genum->n_values - 1; i++ ) {
if( i > 0 )
vips_buf_appends( &buf, ", " );
vips_buf_appends( &buf, genum->values[i].value_nick );
}
vips_error( class->nickname, _( "enum '%s' has no member '%s', "
"should be one of: %s" ),
g_type_name( otype ), value, vips_buf_all( &buf ) );
}
static void
vips_object_no_value( VipsObject *object, const char *name )
{
@ -1644,24 +1621,19 @@ vips_object_set_argument_from_string( VipsObject *object,
g_value_set_double( &gvalue, d );
}
else if( G_IS_PARAM_SPEC_ENUM( pspec ) ) {
GEnumValue *enum_value;
int i;
if( !value ) {
vips_object_no_value( object, name );
return( -1 );
}
if( !(enum_value = g_enum_get_value_by_name(
g_type_class_ref( otype ), value )) ) {
if( !(enum_value = g_enum_get_value_by_nick(
g_type_class_ref( otype ), value )) ) {
vips_enum_error( class, otype, value );
return( -1 );
}
}
if( (i = vips_enum_from_nick( class->nickname,
otype, value )) < 0 )
return( -1 );
g_value_init( &gvalue, otype );
g_value_set_enum( &gvalue, enum_value->value );
g_value_set_enum( &gvalue, i );
}
else if( G_IS_PARAM_SPEC_FLAGS( pspec ) ) {
/* Hard to set from a symbolic name. Just take an int.

View File

@ -549,7 +549,7 @@ vips_call( const char *operation_name, ... )
#ifdef VIPS_DEBUG
VIPS_DEBUG_MSG( "where:\n" );
vips_object_print( VIPS_OBJECT( operation ) );
vips_object_print_dump( VIPS_OBJECT( operation ) );
#endif /*VIPS_DEBUG*/
/* We have to break the va_list into separate required and optional

View File

@ -1653,3 +1653,39 @@ vips_enum_nick( GType enm, int v )
return( value->value_nick );
}
int
vips_enum_from_nick( const char *domain, GType type, const char *nick )
{
GTypeClass *class;
GEnumClass *genum;
GEnumValue *enum_value;
int i;
char str[1000];
VipsBuf buf = VIPS_BUF_STATIC( str );
if( !(class = g_type_class_ref( type )) ) {
vips_error( domain, "%s", _( "no such enum type" ) );
return( -1 );
}
genum = G_ENUM_CLASS( class );
if( (enum_value = g_enum_get_value_by_name( genum, nick )) )
return( enum_value->value );
if( (enum_value = g_enum_get_value_by_nick( genum, nick )) )
return( enum_value->value );
/* -1 since we always have a "last" member.
*/
for( i = 0; i < genum->n_values - 1; i++ ) {
if( i > 0 )
vips_buf_appends( &buf, ", " );
vips_buf_appends( &buf, genum->values[i].value_nick );
}
vips_error( domain, _( "enum '%s' has no member '%s', "
"should be one of: %s" ),
g_type_name( type ), nick, vips_buf_all( &buf ) );
return( -1 );
}

View File

@ -1,7 +1,7 @@
// headers for package arithmetic
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
VImage abs() throw( VError );
VImage acos() throw( VError );
VImage add( VImage add_in2 ) throw( VError );
@ -49,13 +49,13 @@ VImage tan() throw( VError );
// headers for package cimg
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
VImage greyc( int greyc_iterations, double greyc_amplitude, double greyc_sharpness, double greyc_anisotropy, double greyc_alpha, double greyc_sigma, double greyc_dl, double greyc_da, double greyc_gauss_prec, int greyc_interpolation, int greyc_fast_approx ) throw( VError );
VImage greyc_mask( VImage greyc_mask_mask, int greyc_mask_iterations, double greyc_mask_amplitude, double greyc_mask_sharpness, double greyc_mask_anisotropy, double greyc_mask_alpha, double greyc_mask_sigma, double greyc_mask_dl, double greyc_mask_da, double greyc_mask_gauss_prec, int greyc_mask_interpolation, int greyc_mask_fast_approx ) throw( VError );
// headers for package colour
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
VImage LCh2Lab() throw( VError );
VImage LCh2UCS() throw( VError );
VImage Lab2LCh() throw( VError );
@ -101,7 +101,7 @@ VImage sRGB2XYZ() throw( VError );
// headers for package conversion
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
static VImage gaussnoise( int gaussnoise_xsize, int gaussnoise_ysize, double gaussnoise_mean, double gaussnoise_sigma ) throw( VError );
VImage bandjoin( VImage bandjoin_in2 ) throw( VError );
static VImage black( int black_x_size, int black_y_size, int black_bands ) throw( VError );
@ -149,7 +149,7 @@ VImage zoom( int zoom_xfac, int zoom_yfac ) throw( VError );
// headers for package convolution
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
VImage aconvsep( VDMask aconvsep_matrix, int aconvsep_n_layers ) throw( VError );
VImage aconv( VDMask aconv_matrix, int aconv_n_layers, int aconv_cluster ) throw( VError );
VImage addgnoise( double addgnoise_sigma ) throw( VError );
@ -170,7 +170,7 @@ VImage spcor( VImage spcor_in2 ) throw( VError );
// headers for package deprecated
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
VImage argb2rgba() throw( VError );
VImage flood_copy( int flood_copy_start_x, int flood_copy_start_y, std::vector<double> flood_copy_ink ) throw( VError );
VImage flood_blob_copy( int flood_blob_copy_start_x, int flood_blob_copy_start_y, std::vector<double> flood_blob_copy_ink ) throw( VError );
@ -253,10 +253,11 @@ VImage moreeq( double moreeq_c ) throw( VError );
VImage notequal( VImage notequal_in2 ) throw( VError );
VImage notequal( std::vector<double> notequal_vec ) throw( VError );
VImage notequal( double notequal_c ) throw( VError );
VImage quadratic( VImage quadratic_coeff ) throw( VError );
// headers for package format
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
static VImage csv2vips( char* csv2vips_filename ) throw( VError );
static VImage fits2vips( char* fits2vips_in ) throw( VError );
static VImage jpeg2vips( char* jpeg2vips_in ) throw( VError );
@ -267,6 +268,7 @@ static VImage ppm2vips( char* ppm2vips_filename ) throw( VError );
static VImage analyze2vips( char* analyze2vips_filename ) throw( VError );
static VImage tiff2vips( char* tiff2vips_in ) throw( VError );
void vips2csv( char* vips2csv_filename ) throw( VError );
void vips2dz( char* vips2dz_out ) throw( VError );
void vips2jpeg( char* vips2jpeg_out ) throw( VError );
void vips2mimejpeg( int vips2mimejpeg_qfac ) throw( VError );
void vips2png( char* vips2png_out ) throw( VError );
@ -275,7 +277,7 @@ void vips2tiff( char* vips2tiff_out ) throw( VError );
// headers for package freq_filt
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
static VImage create_fmask( int create_fmask_width, int create_fmask_height, int create_fmask_type, double create_fmask_p1, double create_fmask_p2, double create_fmask_p3, double create_fmask_p4, double create_fmask_p5 ) throw( VError );
VImage disp_ps() throw( VError );
VImage flt_image_freq( int flt_image_freq_type, double flt_image_freq_p1, double flt_image_freq_p2, double flt_image_freq_p3, double flt_image_freq_p4, double flt_image_freq_p5 ) throw( VError );
@ -289,7 +291,7 @@ VImage invfftr() throw( VError );
// headers for package histograms_lut
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
VImage gammacorrect( double gammacorrect_exponent ) throw( VError );
VImage heq( int heq_band_number ) throw( VError );
VImage hist( int hist_band_number ) throw( VError );
@ -319,7 +321,7 @@ VImage tone_map( VImage tone_map_lut ) throw( VError );
// headers for package inplace
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
void draw_circle( int draw_circle_cx, int draw_circle_cy, int draw_circle_radius, int draw_circle_fill, std::vector<double> draw_circle_ink ) throw( VError );
void draw_rect( int draw_rect_left, int draw_rect_top, int draw_rect_width, int draw_rect_height, int draw_rect_fill, std::vector<double> draw_rect_ink ) throw( VError );
void draw_line( int draw_line_x1, int draw_line_y1, int draw_line_x2, int draw_line_y2, std::vector<double> draw_line_ink ) throw( VError );
@ -334,7 +336,7 @@ VImage line( VImage line_mask, VImage line_ink, std::vector<int> line_x1, std::v
// headers for package iofuncs
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
static VImage binfile( char* binfile_filename, int binfile_width, int binfile_height, int binfile_bands, int binfile_offset ) throw( VError );
VImage cache( int cache_tile_width, int cache_tile_height, int cache_max_tiles ) throw( VError );
char* getext() throw( VError );
@ -347,11 +349,11 @@ void printdesc() throw( VError );
// headers for package mask
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
// headers for package morphology
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
double cntlines( int cntlines_direction ) throw( VError );
VImage dilate( VIMask dilate_mask ) throw( VError );
VImage rank( int rank_xsize, int rank_ysize, int rank_n ) throw( VError );
@ -364,7 +366,7 @@ VImage profile( int profile_direction ) throw( VError );
// headers for package mosaicing
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
VImage align_bands() throw( VError );
double correl( VImage correl_sec, int correl_xref, int correl_yref, int correl_xsec, int correl_ysec, int correl_hwindowsize, int correl_hsearchsize, int& correl_x, int& correl_y ) throw( VError );
int _find_lroverlap( VImage _find_lroverlap_sec, int _find_lroverlap_bandno, int _find_lroverlap_xr, int _find_lroverlap_yr, int _find_lroverlap_xs, int _find_lroverlap_ys, int _find_lroverlap_halfcorrelation, int _find_lroverlap_halfarea, int& _find_lroverlap_dy0, double& _find_lroverlap_scale1, double& _find_lroverlap_angle1, double& _find_lroverlap_dx1, double& _find_lroverlap_dy1 ) throw( VError );
@ -386,7 +388,7 @@ VImage tbmosaic1( VImage tbmosaic1_sec, int tbmosaic1_bandno, int tbmosaic1_xr1,
// headers for package other
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
VImage benchmark() throw( VError );
double benchmark2() throw( VError );
VImage benchmarkn( int benchmarkn_n ) throw( VError );
@ -401,7 +403,7 @@ static VImage zone( int zone_size ) throw( VError );
// headers for package resample
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
VImage rightshift_size( int rightshift_size_xshift, int rightshift_size_yshift, int rightshift_size_band_fmt ) throw( VError );
VImage shrink( double shrink_xfac, double shrink_yfac ) throw( VError );
VImage stretch3( double stretch3_xdisp, double stretch3_ydisp ) throw( VError );
@ -410,7 +412,7 @@ VImage affinei_all( char* affinei_all_interpolate, double affinei_all_a, double
// headers for package video
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
static VImage video_test( int video_test_brightness, int video_test_error ) throw( VError );
static VImage video_v4l1( char* video_v4l1_device, int video_v4l1_channel, int video_v4l1_brightness, int video_v4l1_colour, int video_v4l1_contrast, int video_v4l1_hue, int video_v4l1_ngrabs ) throw( VError );

View File

@ -1,7 +1,7 @@
// bodies for package arithmetic
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
// im_abs: absolute value
VImage VImage::abs() throw( VError )
{
@ -761,7 +761,7 @@ VImage VImage::tan() throw( VError )
// bodies for package cimg
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
// im_greyc: noise-removing filter
VImage VImage::greyc( int iterations, double amplitude, double sharpness, double anisotropy, double alpha, double sigma, double dl, double da, double gauss_prec, int interpolation, int fast_approx ) throw( VError )
{
@ -821,7 +821,7 @@ VImage VImage::greyc_mask( VImage mask, int iterations, double amplitude, double
// bodies for package colour
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
// im_LCh2Lab: convert LCh to Lab
VImage VImage::LCh2Lab() throw( VError )
{
@ -1537,7 +1537,7 @@ VImage VImage::sRGB2XYZ() throw( VError )
// bodies for package conversion
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
// im_gaussnoise: generate image of gaussian noise with specified statistics
VImage VImage::gaussnoise( int xsize, int ysize, double mean, double sigma ) throw( VError )
{
@ -2321,7 +2321,7 @@ VImage VImage::zoom( int xfac, int yfac ) throw( VError )
// bodies for package convolution
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
// im_aconvsep: approximate separable convolution
VImage VImage::aconvsep( VDMask matrix, int n_layers ) throw( VError )
{
@ -2624,7 +2624,7 @@ VImage VImage::spcor( VImage in2 ) throw( VError )
// bodies for package deprecated
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
// im_argb2rgba: convert pre-multipled argb to png-style rgba
VImage VImage::argb2rgba() throw( VError )
{
@ -4095,10 +4095,28 @@ VImage VImage::notequal( double c ) throw( VError )
return( out );
}
// im_quadratic: transform via quadratic
VImage VImage::quadratic( VImage coeff ) throw( VError )
{
VImage in = *this;
VImage out;
Vargv _vec( "im_quadratic" );
_vec.data(0) = in.image();
_vec.data(1) = out.image();
_vec.data(2) = coeff.image();
_vec.call();
out._ref->addref( in._ref );
out._ref->addref( coeff._ref );
return( out );
}
// bodies for package format
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
// im_csv2vips: read a file in csv format
VImage VImage::csv2vips( char* filename ) throw( VError )
{
@ -4236,6 +4254,17 @@ void VImage::vips2csv( char* filename ) throw( VError )
_vec.call();
}
// im_vips2dz: save as deepzoom
void VImage::vips2dz( char* out ) throw( VError )
{
VImage in = *this;
Vargv _vec( "im_vips2dz" );
_vec.data(0) = in.image();
_vec.data(1) = (im_object) out;
_vec.call();
}
// im_vips2jpeg: convert to jpeg
void VImage::vips2jpeg( char* out ) throw( VError )
{
@ -4294,7 +4323,7 @@ void VImage::vips2tiff( char* out ) throw( VError )
// bodies for package freq_filt
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
// im_create_fmask: create frequency domain filter mask
VImage VImage::create_fmask( int width, int height, int type, double p1, double p2, double p3, double p4, double p5 ) throw( VError )
{
@ -4462,7 +4491,7 @@ VImage VImage::invfftr() throw( VError )
// bodies for package histograms_lut
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
// im_gammacorrect: gamma-correct image
VImage VImage::gammacorrect( double exponent ) throw( VError )
{
@ -4909,7 +4938,7 @@ VImage VImage::tone_map( VImage lut ) throw( VError )
// bodies for package inplace
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
// im_draw_circle: draw circle on image
void VImage::draw_circle( int cx, int cy, int radius, int fill, std::vector<double> ink ) throw( VError )
{
@ -5107,7 +5136,7 @@ VImage VImage::line( VImage mask, VImage ink, std::vector<int> x1, std::vector<i
// bodies for package iofuncs
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
// im_binfile: open a headerless binary file
VImage VImage::binfile( char* filename, int width, int height, int bands, int offset ) throw( VError )
{
@ -5251,11 +5280,11 @@ void VImage::printdesc() throw( VError )
// bodies for package mask
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
// bodies for package morphology
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
// im_cntlines: count horizontal or vertical lines
double VImage::cntlines( int direction ) throw( VError )
{
@ -5416,7 +5445,7 @@ VImage VImage::profile( int direction ) throw( VError )
// bodies for package mosaicing
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
// im_align_bands: align the bands of an image
VImage VImage::align_bands() throw( VError )
{
@ -5849,7 +5878,7 @@ VImage VImage::tbmosaic1( VImage sec, int bandno, int xr1, int yr1, int xs1, int
// bodies for package other
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
// im_benchmark: do something complicated for testing
VImage VImage::benchmark() throw( VError )
{
@ -6023,7 +6052,7 @@ VImage VImage::zone( int size ) throw( VError )
// bodies for package resample
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
// im_rightshift_size: decrease size by a power-of-two factor
VImage VImage::rightshift_size( int xshift, int yshift, int band_fmt ) throw( VError )
{
@ -6134,7 +6163,7 @@ VImage VImage::affinei_all( char* interpolate, double a, double b, double c, dou
// bodies for package video
// this file automatically generated from
// VIPS library 7.30.1-Mon Aug 6 21:21:06 BST 2012
// VIPS library 7.34.0-Tue Jun 11 11:18:24 BST 2013
// im_video_test: test video grabber
VImage VImage::video_test( int brightness, int error ) throw( VError )
{