diff --git a/ChangeLog b/ChangeLog index fa4d5bd0..bbbc4bdf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,14 @@ 19/4/12 started 7.28.6 - better resolution unit handling in deprecated im_vips2tiff() +- use TIFF_CFLAGS output from pkg-config (thanks Jay) +- much faster vips_argument_map() +- make jpeg pyramids work with tiff4 +- tiff loader always offers THINSTRIP (thanks Diuming) +- add "nocache" operation flag, set for sequential load (thanks Diuming) +- fix a crash in the tiff reader for huge values of RowsPerStrip (thanks + Nicolas) +- remove use of G_DEFINE_BOXED_TYPE() to help compat (thanks Jake) 19/4/12 started 7.28.5 - ifthenelse blend mode was broken diff --git a/configure.in b/configure.in index bdfc5846..37ed0eae 100644 --- a/configure.in +++ b/configure.in @@ -664,7 +664,7 @@ fi # Gather all up for VIPS_CFLAGS, VIPS_INCLUDES, VIPS_LIBS and VIPS_CXX_LIBS # sort includes to get longer, more specific dirs first # helps, for example, selecting graphicsmagick over imagemagick -VIPS_CFLAGS=`for i in $VIPS_CFLAGS $GTHREAD_CFLAGS $REQUIRED_CFLAGS $PANGOFT2_CFLAGS $FFTW_CFLAGS $MAGICK_CFLAGS $PNG_CFLAGS $EXIF_CFLAGS $MATIO_CFLAGS $CFITSIO_CFLAGS $OPENEXR_CFLAGS $OPENSLIDE_CFLAGS $ORC_CFLAGS +VIPS_CFLAGS=`for i in $VIPS_CFLAGS $GTHREAD_CFLAGS $REQUIRED_CFLAGS $PANGOFT2_CFLAGS $FFTW_CFLAGS $MAGICK_CFLAGS $PNG_CFLAGS $EXIF_CFLAGS $MATIO_CFLAGS $CFITSIO_CFLAGS $OPENEXR_CFLAGS $OPENSLIDE_CFLAGS $ORC_CFLAGS $TIFF_CFLAGS do echo $i done | sort -ru` diff --git a/libvips/foreign/foreign.c b/libvips/foreign/foreign.c index 9f2337fb..92482efd 100644 --- a/libvips/foreign/foreign.c +++ b/libvips/foreign/foreign.c @@ -698,6 +698,10 @@ vips_foreign_load_temp( VipsForeignLoad *load ) printf( "vips_foreign_load_temp: partial sequential temp\n" ); #endif /*DEBUG*/ + /* You can't reuse sequential operations. + */ + vips_operation_set_nocache( VIPS_OPERATION( load ), TRUE ); + return( vips_image_new() ); } @@ -927,6 +931,8 @@ vips_foreign_load_init( VipsForeignLoad *load ) load->disc = TRUE; } +/* Make a sequential cache for a file reader. + */ int vips_foreign_tilecache( VipsImage *in, VipsImage **out, int strip_height ) { @@ -2153,19 +2159,10 @@ vips_fitssave( VipsImage *in, const char *filename, ... ) * * Optional arguments: * - * @sequential: sequential read only - * * Read a PNG file into a VIPS image. It can read all png images, including 8- * and 16-bit images, 1 and 3 channel, with and without an alpha channel. * - * Setting @sequential to %TRUE means you promise to only demand tiles from - * this image top-top-bottom, ie. to read sequentially. This means the png - * loader can read directly from the image without having to generate a - * random-access intermediate. This can save a lot of time and memory for - * large images, but limits the sorts of operation you can perform. It's - * useful for things like generating thumbnails. - * - * There is no support for embedded ICC profiles. + * Any ICC profile is read and attached to the VIPS image. * * See also: vips_image_new_from_file(). * @@ -2204,7 +2201,9 @@ vips_pngload( const char *filename, VipsImage **out, ... ) * than an interlaced PNG can be up to 7 times slower to write than a * non-interlaced image. * - * There is no support for attaching ICC profiles to PNG images. + * If the VIPS header + * contains an ICC profile named VIPS_META_ICC_NAME ("icc-profile-data"), the + * profile from the VIPS header will be attached. * * The image is automatically converted to RGB, RGBA, Monochrome or Mono + * alpha before saving. Images with more than one byte per band element are diff --git a/libvips/foreign/tiff2vips.c b/libvips/foreign/tiff2vips.c index 74b21428..5d3331b4 100644 --- a/libvips/foreign/tiff2vips.c +++ b/libvips/foreign/tiff2vips.c @@ -128,6 +128,13 @@ * 18/2/12 * - switch to sequential read * - remove the lock ... tilecache does this for us + * 3/6/12 + * - always offer THINSTRIP ... later stages can ask for something more + * relaxed if they wish + * 7/6/12 + * - clip rows_per_strip down to image height to avoid overflows for huge + * values (thanks Nicolas) + * - better error msg for not PLANARCONFIG_CONTIG images */ /* @@ -250,29 +257,6 @@ tfexists( TIFF *tif, ttag_t tag ) return( 0 ); } -/* Test a uint16 field. Field must be defined and equal to the value. - */ -static int -tfequals( TIFF *tif, ttag_t tag, uint16 val ) -{ - uint16 fld; - - if( !TIFFGetFieldDefaulted( tif, tag, &fld ) ) { - vips_error( "tiff2vips", - _( "required field %d missing" ), tag ); - return( 0 ); - } - if( fld != val ) { - vips_error( "tiff2vips", _( "required field %d=%d, not %d" ), - tag, fld, val ); - return( 0 ); - } - - /* All ok. - */ - return( 1 ); -} - /* Get a uint32 field. */ static int @@ -304,9 +288,26 @@ tfget16( TIFF *tif, ttag_t tag, int *out ) return( 0 ); } - /* All ok. - */ *out = fld; + + return( 1 ); +} + +/* Test a uint16 field. Field must be defined and equal to the value. + */ +static int +tfequals( TIFF *tif, ttag_t tag, uint16 val ) +{ + int v; + + if( !tfget16( tif, tag, &v ) ) + return( 0 ); + if( v != val ) { + vips_error( "tiff2vips", + _( "required field %d = %d, not %d" ), tag, v, val ); + return( 0 ); + } + return( 1 ); } @@ -897,10 +898,16 @@ parse_header( ReadTiff *rtiff, VipsImage *out ) /* Ban separate planes, too annoying. */ - if( tfexists( rtiff->tiff, TIFFTAG_PLANARCONFIG ) && - !tfequals( rtiff->tiff, - TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG ) ) - return( -1 ); + if( tfexists( rtiff->tiff, TIFFTAG_PLANARCONFIG ) ) { + int v; + + tfget16( rtiff->tiff, TIFFTAG_PLANARCONFIG, &v ); + if( v != PLANARCONFIG_CONTIG ) { + vips_error( "tiff2vips", + "%s", _( "not a PLANARCONFIG_CONTIG image" ) ); + return( -1 ); + } + } /* Always need dimensions. */ @@ -1090,6 +1097,12 @@ parse_header( ReadTiff *rtiff, VipsImage *out ) (VipsCallbackFn) vips_free, data_copy, data_length ); } + /* Offer the most restrictive style. This can be changed downstream if + * necessary. + */ + vips_demand_hint( out, + VIPS_DEMAND_STYLE_THINSTRIP, NULL ); + return( 0 ); } @@ -1257,16 +1270,19 @@ read_tilewise( ReadTiff *rtiff, VipsImage *out ) if( parse_header( rtiff, raw ) ) return( -1 ); - /* Process and save as VIPS. + /* Process and save as VIPS. + * + * Even though this is a tiled reader, we hint thinstrip since with + * the cache we are quite happy serving that if anything downstream + * would like it. */ vips_demand_hint( raw, - VIPS_DEMAND_STYLE_SMALLTILE, NULL ); + VIPS_DEMAND_STYLE_THINSTRIP, NULL ); if( vips_image_generate( raw, tiff_seq_start, tiff_fill_region, tiff_seq_stop, rtiff, NULL ) ) return( -1 ); - /* Copy to out, adding a cache. Enough tiles for two complete rows. */ if( vips_tilecache( raw, &t, @@ -1335,8 +1351,8 @@ tiff2vips_stripwise_generate( VipsRegion *or, /* If necessary, unpack to destination. */ if( !rtiff->memcpy ) { - int height = VIPS_MIN( rtiff->rows_per_strip, - or->im->Ysize - (r->top + y) ); + int height = VIPS_MIN( VIPS_MIN( rtiff->rows_per_strip, + or->im->Ysize - (r->top + y) ), r->height ); int z; for( z = 0; z < height; z++ ) { @@ -1386,6 +1402,11 @@ read_stripwise( ReadTiff *rtiff, VipsImage *out ) rtiff->strip_size = TIFFStripSize( rtiff->tiff ); rtiff->number_of_strips = TIFFNumberOfStrips( rtiff->tiff ); + /* rows_per_strip can be 2**32-1, meaning the whole image. Clip this + * down to ysize to avoid confusing vips. + */ + rtiff->rows_per_strip = VIPS_MIN( rtiff->rows_per_strip, t[0]->Ysize ); + #ifdef DEBUG printf( "read_stripwise: rows_per_strip = %u\n", rtiff->rows_per_strip ); diff --git a/libvips/foreign/vips2tiff.c b/libvips/foreign/vips2tiff.c index 81920ade..116922b7 100644 --- a/libvips/foreign/vips2tiff.c +++ b/libvips/foreign/vips2tiff.c @@ -128,6 +128,9 @@ * VipsForeign class * 21/3/12 * - bump max layer buffer up + * 2/6/12 + * - copy jpeg pyramid in gather in RGB mode ... tiff4 doesn't do ycbcr + * mode */ /* @@ -906,7 +909,8 @@ shrink_region( VipsRegion *from, VipsRect *area, /* Write a tile from a layer. */ static int -save_tile( TiffWrite *tw, TIFF *tif, VipsPel *tbuf, VipsRegion *reg, VipsRect *area ) +save_tile( TiffWrite *tw, + TIFF *tif, VipsPel *tbuf, VipsRegion *reg, VipsRect *area ) { /* Have to repack pixels. */ @@ -1342,9 +1346,21 @@ tiff_copy( TiffWrite *tw, TIFF *out, TIFF *in ) /* TIFFTAG_JPEGQUALITY is a pesudo-tag, so we can't copy it. * Set explicitly from TiffWrite. */ - if( tw->compression == COMPRESSION_JPEG ) + if( tw->compression == COMPRESSION_JPEG ) { TIFFSetField( out, TIFFTAG_JPEGQUALITY, tw->jpqual ); + /* Enable rgb->ycbcr conversion in the jpeg write. See also + * the photometric selection below. + */ + TIFFSetField( out, TIFFTAG_JPEGCOLORMODE, JPEGCOLORMODE_RGB ); + + /* And we want ycbcr expanded to rgb on read. Otherwise + * TIFFTileSize() will give us the size of a chrominance + * subsampled tile. + */ + TIFFSetField( in, TIFFTAG_JPEGCOLORMODE, JPEGCOLORMODE_RGB ); + } + /* We can't copy profiles :( Set again from TiffWrite. */ if( embed_profile( tw, out ) ) @@ -1359,7 +1375,7 @@ tiff_copy( TiffWrite *tw, TIFF *out, TIFF *in ) * here to save compression/decompression, but sadly it seems * not to work :-( investigate at some point. */ - len = TIFFReadEncodedTile( in, tile, buf, (tsize_t) -1 ); + len = TIFFReadEncodedTile( in, tile, buf, -1 ); if( len < 0 || TIFFWriteEncodedTile( out, tile, buf, len ) < 0 ) { vips_free( buf ); @@ -1527,7 +1543,8 @@ vips__tiff_write( VipsImage *in, const char *filename, /* Gather layers together into final pyramid file. */ - if( tw->pyramid && gather_pyramid( tw ) ) { + if( tw->pyramid && + gather_pyramid( tw ) ) { free_tiff_write( tw ); return( -1 ); } diff --git a/libvips/include/vips/object.h b/libvips/include/vips/object.h index 42336dec..7590ac7f 100644 --- a/libvips/include/vips/object.h +++ b/libvips/include/vips/object.h @@ -328,15 +328,8 @@ int vips_object_get_argument_priority( VipsObject *object, const char *name ); VipsArgumentInstance *ARG_INSTANCE = \ vips__argument_get_instance( argument_class, \ VIPS_OBJECT( OBJECT ) ); \ - \ - /* We have many props on the arg table ... filter out the \ - * ones for this class. \ - */ \ - if( g_object_class_find_property( \ - G_OBJECT_CLASS( object_class ), \ - g_param_spec_get_name( PSPEC ) ) == PSPEC ) { -#define VIPS_ARGUMENT_FOR_ALL_END } } } +#define VIPS_ARGUMENT_FOR_ALL_END } } /* And some macros to collect args from a va list. */ @@ -494,13 +487,22 @@ struct _VipsObjectClass { */ const char *description; - /* Table of arguments for this class and any derived classes. Order - * is important, so keep a traverse list too. We can't rely on the - * ordering given by g_object_class_list_properties() since it comes - * from a hash :-( + /* Hash from pspec to VipsArgumentClass. + * + * This records the VipsArgumentClass for every pspec used in + * VipsObject and any subclass (ie. everywhere), so it's huge. Don't + * loop over this hash! Fine for lookups though. */ VipsArgumentTable *argument_table; + + /* A sorted (by priority) list of the VipsArgumentClass for this class + * and any superclasses. This is small and specific to this class. + * + * Use the stored GType to work out when to restart the list for a + * subclass. + */ GSList *argument_table_traverse; + GType argument_table_traverse_gtype; }; gboolean vips_value_is_null( GParamSpec *psoec, const GValue *value ); diff --git a/libvips/include/vips/operation.h b/libvips/include/vips/operation.h index 4cf3cf40..e771c011 100644 --- a/libvips/include/vips/operation.h +++ b/libvips/include/vips/operation.h @@ -66,6 +66,12 @@ typedef struct _VipsOperation { guint hash; gboolean found_hash; + /* Set this before the end of _build() to stop this operation from + * being cached. Some things, like sequential read from a TIFF file, + * can't be reused. + */ + gboolean nocache; + } VipsOperation; typedef struct _VipsOperationClass { @@ -89,6 +95,7 @@ void vips_call_options( GOptionGroup *group, VipsOperation *operation ); int vips_call_argv( VipsOperation *operation, int argc, char **argv ); void vips_cache_drop_all( void ); +void vips_operation_set_nocache( VipsOperation *operation, gboolean nocache ); int vips_cache_operation_buildp( VipsOperation **operation ); VipsOperation *vips_cache_operation_build( VipsOperation *operation ); void vips_cache_set_max( int max ); diff --git a/libvips/iofuncs/cache.c b/libvips/iofuncs/cache.c index 8acb9923..67ea5273 100644 --- a/libvips/iofuncs/cache.c +++ b/libvips/iofuncs/cache.c @@ -621,7 +621,7 @@ vips_cache_operation_buildp( VipsOperation **operation ) #ifdef VIPS_DEBUG printf( "vips_cache_operation_build: " ); - vips_object_print_summary_stdout( VIPS_OBJECT( *operation ) ); + vips_object_print_dump( VIPS_OBJECT( *operation ) ); #endif /*VIPS_DEBUG*/ vips_cache_init(); @@ -643,15 +643,22 @@ vips_cache_operation_buildp( VipsOperation **operation ) } else { if( vips__cache_trace ) { - printf( "vips cache: miss %p\n ", *operation ); + if( (*operation)->nocache ) + printf( "vips cache: uncacheable %p\n ", + *operation ); + else + printf( "vips cache: miss %p\n ", *operation ); vips_object_print_summary( VIPS_OBJECT( *operation ) ); } if( vips_object_build( VIPS_OBJECT( *operation ) ) ) return( -1 ); - vips_cache_ref( *operation ); - g_hash_table_insert( vips_cache_table, *operation, *operation ); + if( !(*operation)->nocache ) { + vips_cache_ref( *operation ); + g_hash_table_insert( vips_cache_table, + *operation, *operation ); + } } return( 0 ); diff --git a/libvips/iofuncs/object.c b/libvips/iofuncs/object.c index c161b87c..e3537d8a 100644 --- a/libvips/iofuncs/object.c +++ b/libvips/iofuncs/object.c @@ -349,15 +349,20 @@ void * vips_argument_map( VipsObject *object, VipsArgumentMapFn fn, void *a, void *b ) { + VipsObjectClass *object_class = VIPS_OBJECT_GET_CLASS( object ); + GSList *p; + /* Make sure we can't go during the loop. This can happen if eg. we * flush an arg that refs us. */ g_object_ref( object ); VIPS_ARGUMENT_FOR_ALL( object, - pspec, argument_class, argument_instance ) { + pspec, argument_class, argument_instance ) { void *result; + /* argument_instance should not be NULL. + */ g_assert( argument_instance ); if( (result = fn( object, pspec, @@ -365,7 +370,7 @@ vips_argument_map( VipsObject *object, g_object_unref( object ); return( result ); } - } VIPS_ARGUMENT_FOR_ALL_END + } g_object_unref( object ); @@ -388,19 +393,12 @@ vips_argument_class_map( VipsObjectClass *object_class, (VipsArgumentClass *) p->data; VipsArgument *argument = (VipsArgument *) arg_class; GParamSpec *pspec = argument->pspec; - - /* We have many props on the arg table ... filter out the - * ones for this class. - */ - if( g_object_class_find_property( - G_OBJECT_CLASS( object_class ), - g_param_spec_get_name( pspec ) ) == pspec ) { - void *result; - if( (result = - fn( object_class, pspec, arg_class, a, b )) ) - return( result ); - } + void *result; + + if( (result = + fn( object_class, pspec, arg_class, a, b )) ) + return( result ); } return( NULL ); @@ -749,15 +747,11 @@ vips_object_dispose( GObject *gobject ) /* Our subclasses should have already called this. Run it again, just * in case. */ - if( !object->preclose ) { -#ifdef VIPS_DEBUG - printf( "vips_object_dispose: no vips_object_preclose() " ); - vips_object_print_name( VIPS_OBJECT( gobject ) ); - printf( "\n" ); -#endif /*VIPS_DEBUG*/ - - vips_object_preclose( object ); - } +#ifdef DEBUG + if( !object->preclose ) + printf( "vips_object_dispose: pre-close missing!\n" ); +#endif /*DEBUG*/ + vips_object_preclose( object ); /* Clear all our arguments: they may be holding resources we should * drop. @@ -1377,7 +1371,8 @@ vips_object_class_install_argument( VipsObjectClass *object_class, VipsArgumentClass *argument_class = g_new( VipsArgumentClass, 1 ); #ifdef DEBUG - printf( "vips_object_class_install_argument: %s %s\n", + printf( "vips_object_class_install_argument: %p %s %s\n", + object_class, g_type_name( G_TYPE_FROM_CLASS( object_class ) ), g_param_spec_get_name( pspec ) ); #endif /*DEBUG*/ @@ -1401,10 +1396,46 @@ vips_object_class_install_argument( VipsObjectClass *object_class, vips_argument_table_replace( object_class->argument_table, (VipsArgument *) argument_class ); + + /* If this is the first argument for a new subclass, we need to clone + * the traverse list we inherit. + */ + if( object_class->argument_table_traverse_gtype != + G_TYPE_FROM_CLASS( object_class ) ) { +#ifdef DEBUG + printf( "vips_object_class_install_argument: " + "cloning traverse\n" ); +#endif /*DEBUG*/ + + object_class->argument_table_traverse = + g_slist_copy( object_class->argument_table_traverse ); + object_class->argument_table_traverse_gtype = + G_TYPE_FROM_CLASS( object_class ); + } + object_class->argument_table_traverse = g_slist_prepend( object_class->argument_table_traverse, argument_class ); object_class->argument_table_traverse = g_slist_sort( object_class->argument_table_traverse, traverse_sort ); + +#ifdef DEBUG +{ + GSList *p; + + printf( "%d items on traverse %p\n", + g_slist_length( object_class->argument_table_traverse ), + &object_class->argument_table_traverse ); + for( p = object_class->argument_table_traverse; p; p = p->next ) { + VipsArgumentClass *argument_class = + (VipsArgumentClass *) p->data; + + printf( "\t%p %s\n", + argument_class, + g_param_spec_get_name( + ((VipsArgument *) argument_class)->pspec ) ); + } +} +#endif /*DEBUG*/ } /* Set a named arg from a string. diff --git a/libvips/iofuncs/operation.c b/libvips/iofuncs/operation.c index 3422f7bb..52b469ec 100644 --- a/libvips/iofuncs/operation.c +++ b/libvips/iofuncs/operation.c @@ -949,3 +949,23 @@ vips_call_argv( VipsOperation *operation, int argc, char **argv ) return( 0 ); } +/** + * vips_operation_set_nocache: + * @operation: operation to set + * @nocache: TRUE means don't cache this operation + * + * Set this before the end of _build() to stop this operation being cached. + * Some operations, like sequential read from a TIFF file, for example, cannot + * be reused. + */ +void +vips_operation_set_nocache( VipsOperation *operation, gboolean nocache ) +{ +#ifdef VIPS_DEBUG + printf( "vips_operation_set_nocache: " ); + vips_object_print_name( VIPS_OBJECT( operation ) ); + printf( " %d\n", nocache ); +#endif /*VIPS_DEBUG*/ + + operation->nocache = nocache; +} diff --git a/libvips/iofuncs/threadpool.c b/libvips/iofuncs/threadpool.c index b7c78b64..37a3ef30 100644 --- a/libvips/iofuncs/threadpool.c +++ b/libvips/iofuncs/threadpool.c @@ -121,6 +121,19 @@ void vips__g_mutex_lock( GMutex *d ) {} void vips__g_mutex_unlock( GMutex *d ) {} #endif /*!HAVE_THREADS*/ +/** + * vips_concurrency_set: + * @concurrency: number of threads to run + * + * Sets the number of worker threads that vips should use when running a + * #VipsThreadPool. + * + * The special value 0 means "default". In this case, the number of threads is + * set by the environmnt variable IM_CONCURRENCY, or if that is not set, the + * number of threads availble on the hist machine. + * + * See also: vips_concurrency_get(). + */ void vips_concurrency_set( int concurrency ) { @@ -190,8 +203,29 @@ get_num_processors( void ) return( nproc ); } -/* Set (p)thr_concurrency() from IM_CONCURRENCY environment variable. Return - * the number of regions we should pass over the image. +/** + * vips_concurrency_get: + * + * Returns the number of worker threads that vips should use when running a + * #VipsThreadPool. + * + * vips gets this values from these sources in turn: + * + * If vips_concurrency_set() has been called, this value is used. The special + * value 0 means "default". You can also use the command-line argument + * "--vips-concurrency" to set this value. + * + * If vips_concurrency_set() has not been called and no command-line argument + * was used, vips uses the value of the environment variable IM_CONCURRENCY, + * + * If IM_CONCURRENCY has not been set, vips find the number of hardware + * threads that the host machine can run in parallel and uses that value. + * + * The final value is clipped to the range 1 - 1024. + * + * See also: vips_concurrency_get(). + * + * Returns: number of worker threads to use. */ int vips_concurrency_get( void ) diff --git a/libvips/iofuncs/type.c b/libvips/iofuncs/type.c index b86cee5c..d3f8de3e 100644 --- a/libvips/iofuncs/type.c +++ b/libvips/iofuncs/type.c @@ -101,10 +101,29 @@ vips_thing_get_i( VipsThing *thing ) return( thing->i ); } +/* + * glib-2.26+ only + G_DEFINE_BOXED_TYPE( VipsThing, vips_thing, (GBoxedCopyFunc) vips_thing_copy, (GBoxedFreeFunc) vips_thing_free ); + */ + +GType +vips_thing_get_type( void ) +{ + static GType type = 0; + + if( !type ) { + type = g_boxed_type_register_static( "VipsThing", + (GBoxedCopyFunc) vips_thing_copy, + (GBoxedFreeFunc) vips_thing_free ); + } + + return( type ); +} + /** * SECTION: VipsArea * @short_description: an area of memory diff --git a/libvips/resample/im_shrink.c b/libvips/resample/im_shrink.c index 98d53d85..ecb9fedb 100644 --- a/libvips/resample/im_shrink.c +++ b/libvips/resample/im_shrink.c @@ -58,6 +58,10 @@ */ +/* +#define DEBUG + */ + #ifdef HAVE_CONFIG_H #include #endif /*HAVE_CONFIG_H*/ @@ -244,6 +248,11 @@ shrink_gen( REGION *or, void *vseq, void *a, void *b ) int x, y; +#ifdef DEBUG + printf( "shrink_gen: generating %d x %d at %d x %d\n", + r->width, r->height, r->left, r->top ); +#endif /*DEBUG*/ + for( y = 0; y < r->height; y += ystep ) for( x = 0; x < r->width; x += xstep ) { /* Clip the this rect against the demand size. @@ -257,6 +266,10 @@ shrink_gen( REGION *or, void *vseq, void *a, void *b ) s.top = (r->top + y) * st->yshrink; s.width = 1 + ceil( width * st->xshrink ); s.height = 1 + ceil( height * st->yshrink ); +#ifdef DEBUG + printf( "shrink_gen: requesting %d x %d at %d x %d\n", + s.width, s.height, s.left, s.top ); +#endif /*DEBUG*/ if( im_prepare( ir, &s ) ) return( -1 ); diff --git a/po/vips7.pot b/po/vips7.pot new file mode 100644 index 00000000..db828e52 --- /dev/null +++ b/po/vips7.pot @@ -0,0 +1,3492 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=glib&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2012-05-29 13:36+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +#: ../libvips/arithmetic/linear.c:249 +msgid "calculate (a * in + b)" +msgstr "" + +#: ../libvips/arithmetic/linear.c:257 +msgid "a" +msgstr "" + +#: ../libvips/arithmetic/linear.c:258 +msgid "Multiply by this" +msgstr "" + +#: ../libvips/arithmetic/linear.c:264 +msgid "b" +msgstr "" + +#: ../libvips/arithmetic/linear.c:265 +msgid "Add this" +msgstr "" + +#: ../libvips/arithmetic/avg.c:210 ../libvips/arithmetic/stats.c:415 +#: ../libvips/arithmetic/deviate.c:211 +msgid "find image average" +msgstr "" + +#: ../libvips/arithmetic/avg.c:218 ../libvips/arithmetic/measure.c:202 +#: ../libvips/arithmetic/stats.c:423 ../libvips/arithmetic/deviate.c:219 +#: ../libvips/arithmetic/arithmetic.c:382 ../libvips/arithmetic/min.c:325 +#: ../libvips/arithmetic/max.c:324 ../libvips/conversion/conversion.c:89 +#: ../libvips/foreign/foreign.c:897 +msgid "Output" +msgstr "" + +#: ../libvips/arithmetic/avg.c:219 ../libvips/arithmetic/deviate.c:220 +#: ../libvips/arithmetic/min.c:326 ../libvips/arithmetic/max.c:325 +msgid "Output value" +msgstr "" + +#. Name +#: ../libvips/arithmetic/divide.c:228 +#: ../libvips/arithmetic/arith_dispatch.c:546 +msgid "divide two images" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:298 +msgid "absolute value" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:317 ../libvips/arithmetic/add.c:186 +msgid "add two images" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:342 +msgid "average value of image" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:431 +msgid "standard deviation of image" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:450 +msgid "10^pel of image" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:469 +msgid "e^pel of image" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:498 +msgid "x^pel of image" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:527 +msgid "[x,y,z]^pel of image" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:565 +msgid "photographic negative" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:596 +msgid "calculate a*in + b = outfile" +msgstr "" + +#: ../libvips/arithmetic/arith_dispatch.c:622 +msgid "vectors not equal length" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:633 +msgid "calculate a*in + b -> out, a and b vectors" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:652 +msgid "log10 of image" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:671 +msgid "ln of image" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:690 +msgid "tan of image (angles in degrees)" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:709 +msgid "atan of image (result in degrees)" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:728 +msgid "cos of image (angles in degrees)" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:747 +msgid "acos of image (result in degrees)" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:766 +msgid "round to smallest integer value not less than" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:785 +msgid "round to largest integer value not greater than" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:804 +msgid "round to nearest integer value" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:823 +msgid "sin of image (angles in degrees)" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:842 +msgid "average image bands" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:861 +msgid "unit vector in direction of value" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:880 +msgid "asin of image (result in degrees)" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:905 +msgid "maximum value of image" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:940 +msgid "position of maximum value of image" +msgstr "" + +#: ../libvips/arithmetic/arith_dispatch.c:968 +msgid "position of maximum value of image, averaging in case of draw" +msgstr "" + +#: ../libvips/arithmetic/arith_dispatch.c:1012 +msgid "position and value of n maxima of image" +msgstr "" + +#: ../libvips/arithmetic/arith_dispatch.c:1046 +msgid "position and value of n minima of image" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:1094 +msgid "measure averages of a grid of patches" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:1119 +msgid "minimum value of image" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:1147 +msgid "position of minimum value of image" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:1166 +msgid "remainder after integer division" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:1195 +msgid "remainder after integer division by a constant" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:1224 +msgid "remainder after integer division by a vector of constants" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:1244 +#: ../libvips/arithmetic/multiply.c:172 +msgid "multiply two images" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:1265 +msgid "pel^x of image" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:1286 +msgid "pel^[x,y,z] of image" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:1317 +msgid "many image statistics in one pass" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:1336 +#: ../libvips/arithmetic/subtract.c:161 +msgid "subtract two images" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:1384 +msgid "pixelwise linear regression" +msgstr "" + +#. Name +#: ../libvips/arithmetic/arith_dispatch.c:1403 +msgid "phase of cross power spectrum of two complex images" +msgstr "" + +#: ../libvips/arithmetic/measure.c:163 +#, c-format +msgid "patch %d x %d, band %d: avg = %g, sdev = %g" +msgstr "" + +#: ../libvips/arithmetic/measure.c:192 +msgid "measure a set of patches on a colour chart" +msgstr "" + +#: ../libvips/arithmetic/measure.c:196 +msgid "in" +msgstr "" + +#: ../libvips/arithmetic/measure.c:197 +msgid "Image to measure" +msgstr "" + +#: ../libvips/arithmetic/measure.c:203 ../libvips/arithmetic/stats.c:424 +msgid "Output array of statistics" +msgstr "" + +#: ../libvips/arithmetic/measure.c:208 ../libvips/conversion/replicate.c:202 +msgid "Across" +msgstr "" + +#: ../libvips/arithmetic/measure.c:209 +msgid "Number of patches across chart" +msgstr "" + +#: ../libvips/arithmetic/measure.c:215 ../libvips/conversion/replicate.c:209 +msgid "Down" +msgstr "" + +#: ../libvips/arithmetic/measure.c:216 +msgid "Number of patches down chart" +msgstr "" + +#: ../libvips/arithmetic/measure.c:222 ../libvips/arithmetic/binary.c:95 +#: ../libvips/conversion/extract.c:200 +msgid "Left" +msgstr "" + +#: ../libvips/arithmetic/measure.c:223 ../libvips/conversion/extract.c:201 +msgid "Left edge of extract area" +msgstr "" + +#: ../libvips/arithmetic/measure.c:229 ../libvips/conversion/extract.c:207 +msgid "Top" +msgstr "" + +#: ../libvips/arithmetic/measure.c:230 ../libvips/conversion/extract.c:208 +msgid "Top edge of extract area" +msgstr "" + +#: ../libvips/arithmetic/measure.c:236 ../libvips/conversion/extract.c:214 +#: ../libvips/conversion/black.c:128 ../libvips/conversion/copy.c:331 +#: ../libvips/conversion/embed.c:536 ../libvips/foreign/rawload.c:122 +#: ../libvips/iofuncs/image.c:845 +msgid "Width" +msgstr "" + +#: ../libvips/arithmetic/measure.c:237 ../libvips/conversion/extract.c:215 +msgid "Width of extract area" +msgstr "" + +#: ../libvips/arithmetic/measure.c:243 ../libvips/conversion/extract.c:221 +#: ../libvips/conversion/black.c:135 ../libvips/conversion/copy.c:338 +#: ../libvips/conversion/embed.c:543 ../libvips/foreign/rawload.c:129 +#: ../libvips/iofuncs/image.c:852 +msgid "Height" +msgstr "" + +#: ../libvips/arithmetic/measure.c:244 ../libvips/conversion/extract.c:222 +msgid "Height of extract area" +msgstr "" + +#: ../libvips/arithmetic/math2.c:196 +msgid "pow( left, right)" +msgstr "" + +#: ../libvips/arithmetic/math2.c:204 ../libvips/arithmetic/math2.c:401 +#: ../libvips/arithmetic/complex.c:222 ../libvips/arithmetic/complex.c:476 +#: ../libvips/arithmetic/math.c:205 ../libvips/arithmetic/relational.c:227 +#: ../libvips/arithmetic/relational.c:560 ../libvips/arithmetic/boolean.c:217 +#: ../libvips/arithmetic/boolean.c:519 +msgid "Operation" +msgstr "" + +#: ../libvips/arithmetic/math2.c:205 ../libvips/arithmetic/math2.c:402 +#: ../libvips/arithmetic/math.c:206 +msgid "math to perform" +msgstr "" + +#: ../libvips/arithmetic/math2.c:393 +msgid "pow( @in, @c )" +msgstr "" + +#: ../libvips/arithmetic/round.c:160 +msgid "perform a round function on an image" +msgstr "" + +#: ../libvips/arithmetic/round.c:168 +msgid "Round operation" +msgstr "" + +#: ../libvips/arithmetic/round.c:169 +msgid "rounding operation to perform" +msgstr "" + +#: ../libvips/arithmetic/unary.c:80 +msgid "unary operations" +msgstr "" + +#: ../libvips/arithmetic/unary.c:87 ../libvips/arithmetic/statistic.c:151 +#: ../libvips/conversion/flip.c:240 ../libvips/conversion/bandmean.c:197 +#: ../libvips/conversion/cast.c:476 ../libvips/conversion/extract.c:194 +#: ../libvips/conversion/extract.c:353 ../libvips/conversion/bandjoin.c:171 +#: ../libvips/conversion/copy.c:318 ../libvips/conversion/rot.c:355 +#: ../libvips/conversion/replicate.c:196 ../libvips/conversion/tilecache.c:422 +#: ../libvips/conversion/embed.c:516 ../libvips/conversion/cache.c:106 +#: ../libvips/conversion/recomb.c:200 ../libvips/conversion/sequential.c:153 +#: ../libvips/foreign/foreign.c:1379 +msgid "Input" +msgstr "" + +#: ../libvips/arithmetic/unary.c:88 ../libvips/conversion/bandmean.c:198 +#: ../libvips/conversion/recomb.c:201 +msgid "Input image argument" +msgstr "" + +#: ../libvips/arithmetic/unaryconst.c:201 +msgid "unary operations with a constant" +msgstr "" + +#: ../libvips/arithmetic/unaryconst.c:205 +msgid "c" +msgstr "" + +#: ../libvips/arithmetic/unaryconst.c:206 +msgid "Array of constants" +msgstr "" + +#: ../libvips/arithmetic/arithmetic.c:164 +#, c-format +msgid "not one band or %d bands" +msgstr "" + +#: ../libvips/arithmetic/arithmetic.c:168 +#: ../libvips/histograms_lut/im_identity.c:80 +#: ../libvips/histograms_lut/im_identity.c:143 +msgid "bad bands" +msgstr "" + +#: ../libvips/arithmetic/arithmetic.c:324 ../libvips/conversion/bandary.c:131 +msgid "too many input images" +msgstr "" + +#: ../libvips/arithmetic/arithmetic.c:378 +msgid "arithmetic operations" +msgstr "" + +#: ../libvips/arithmetic/arithmetic.c:383 +#: ../libvips/conversion/conversion.c:90 ../libvips/foreign/foreign.c:898 +msgid "Output image" +msgstr "" + +#: ../libvips/arithmetic/min.c:317 +msgid "find image minimum" +msgstr "" + +#: ../libvips/arithmetic/min.c:332 ../libvips/arithmetic/max.c:331 +#: ../libvips/conversion/embed.c:522 +msgid "x" +msgstr "" + +#: ../libvips/arithmetic/min.c:333 +msgid "Horizontal position of minimum" +msgstr "" + +#: ../libvips/arithmetic/min.c:339 ../libvips/arithmetic/max.c:338 +#: ../libvips/conversion/embed.c:529 +msgid "y" +msgstr "" + +#: ../libvips/arithmetic/min.c:340 +msgid "Vertical position of minimum" +msgstr "" + +#: ../libvips/arithmetic/im_point_bilinear.c:74 +msgid "coords outside image" +msgstr "" + +#: ../libvips/arithmetic/complex.c:215 +msgid "perform a complex operation on an image" +msgstr "" + +#: ../libvips/arithmetic/complex.c:223 ../libvips/arithmetic/complex.c:477 +msgid "complex to perform" +msgstr "" + +#: ../libvips/arithmetic/complex.c:468 +msgid "get a component from a complex image" +msgstr "" + +#: ../libvips/arithmetic/complex.c:666 +msgid "form a complex image from two real images" +msgstr "" + +#: ../libvips/arithmetic/invert.c:152 +msgid "invert an image" +msgstr "" + +#: ../libvips/arithmetic/remainder.c:178 +msgid "remainder after integer division of two images" +msgstr "" + +#: ../libvips/arithmetic/remainder.c:327 +msgid "remainder after integer division of an image and a constant" +msgstr "" + +#: ../libvips/arithmetic/math.c:197 +msgid "perform a math function on an image" +msgstr "" + +#: ../libvips/arithmetic/abs.c:215 +msgid "absolute value of an image" +msgstr "" + +#: ../libvips/arithmetic/relational.c:219 +msgid "a relational operation on a pair of images" +msgstr "" + +#: ../libvips/arithmetic/relational.c:228 +#: ../libvips/arithmetic/relational.c:561 +msgid "relational to perform" +msgstr "" + +#: ../libvips/arithmetic/relational.c:552 +msgid "relational operations against a constant" +msgstr "" + +#: ../libvips/arithmetic/binary.c:88 +msgid "binary operations" +msgstr "" + +#: ../libvips/arithmetic/binary.c:96 +msgid "Left-hand image argument" +msgstr "" + +#: ../libvips/arithmetic/binary.c:101 +msgid "Right" +msgstr "" + +#: ../libvips/arithmetic/binary.c:102 +msgid "Right-hand image argument" +msgstr "" + +#: ../libvips/arithmetic/sign.c:151 +msgid "unit vector of pixel" +msgstr "" + +#: ../libvips/arithmetic/im_maxpos_vec.c:121 +#: ../libvips/arithmetic/im_maxpos_vec.c:186 +msgid "scalar images only" +msgstr "" + +#: ../libvips/arithmetic/im_maxpos_vec.c:126 +#: ../libvips/arithmetic/im_maxpos_vec.c:191 +msgid "single band images only" +msgstr "" + +#: ../libvips/arithmetic/im_maxpos_vec.c:131 +#: ../libvips/arithmetic/im_maxpos_vec.c:196 +msgid "uncoded images only" +msgstr "" + +#: ../libvips/arithmetic/im_maxpos_vec.c:136 +#: ../libvips/arithmetic/im_maxpos_vec.c:201 +msgid "invalid argument" +msgstr "" + +#: ../libvips/arithmetic/statistic.c:147 +msgid "VIPS statistic operations" +msgstr "" + +#: ../libvips/arithmetic/statistic.c:152 ../libvips/conversion/flip.c:241 +#: ../libvips/conversion/cast.c:477 ../libvips/conversion/extract.c:195 +#: ../libvips/conversion/extract.c:354 ../libvips/conversion/copy.c:319 +#: ../libvips/conversion/rot.c:356 ../libvips/conversion/replicate.c:197 +#: ../libvips/conversion/tilecache.c:423 ../libvips/conversion/embed.c:517 +#: ../libvips/conversion/cache.c:107 ../libvips/conversion/sequential.c:154 +msgid "Input image" +msgstr "" + +#: ../libvips/arithmetic/boolean.c:209 +msgid "a boolean operation on a pair of images" +msgstr "" + +#: ../libvips/arithmetic/boolean.c:218 ../libvips/arithmetic/boolean.c:520 +msgid "boolean to perform" +msgstr "" + +#: ../libvips/arithmetic/boolean.c:511 +msgid "boolean operations against a constant" +msgstr "" + +#: ../libvips/arithmetic/max.c:316 +msgid "find image maximum" +msgstr "" + +#: ../libvips/arithmetic/max.c:332 +msgid "Horizontal position of maximum" +msgstr "" + +#: ../libvips/arithmetic/max.c:339 +msgid "Vertical position of maximum" +msgstr "" + +#: ../libvips/colour/im_XYZ2disp.c:139 +msgid "3-band uncoded float only" +msgstr "" + +#: ../libvips/colour/im_disp2XYZ.c:86 +msgid "input not 3-band uncoded char" +msgstr "" + +#: ../libvips/colour/disp.c:397 +msgid "out of range [0,255]" +msgstr "" + +#: ../libvips/colour/disp.c:423 +msgid "bad display type" +msgstr "" + +#: ../libvips/colour/disp.c:537 +msgid "display unknown" +msgstr "" + +#: ../libvips/colour/im_rad2float.c:186 +msgid "not a RAD image" +msgstr "" + +#: ../libvips/colour/im_icc_transform.c:202 +#: ../libvips/colour/im_icc_transform.c:212 +#: ../libvips/colour/im_icc_transform.c:1000 +#: ../libvips/colour/im_icc_transform.c:1010 +#, c-format +msgid "unable to open profile \"%s\"" +msgstr "" + +#: ../libvips/colour/im_icc_transform.c:223 +#: ../libvips/colour/im_icc_transform.c:1022 +msgid "unable to create profiles" +msgstr "" + +#: ../libvips/colour/im_icc_transform.c:242 +#: ../libvips/colour/im_icc_transform.c:1042 +msgid "unable to read profile" +msgstr "" + +#: ../libvips/colour/im_icc_transform.c:363 +#: ../libvips/colour/im_icc_transform.c:372 +#: ../libvips/colour/im_icc_transform.c:737 +#: ../libvips/colour/im_icc_transform.c:1170 +#: ../libvips/colour/im_icc_transform.c:1179 +#: ../libvips/colour/im_icc_transform.c:1522 +#, c-format +msgid "" +"intent %d (%s) not supported by profile \"%s\"; falling back to default " +"intent (usually PERCEPTUAL)" +msgstr "" + +#: ../libvips/colour/im_icc_transform.c:382 +#: ../libvips/colour/im_icc_transform.c:1189 +msgid "CMYK input profile needs a 4 band input image" +msgstr "" + +#: ../libvips/colour/im_icc_transform.c:392 +#: ../libvips/colour/im_icc_transform.c:1199 +msgid "RGB input profile needs a 3 band input image" +msgstr "" + +#: ../libvips/colour/im_icc_transform.c:401 +#: ../libvips/colour/im_icc_transform.c:551 +#: ../libvips/colour/im_icc_transform.c:1208 +#: ../libvips/colour/im_icc_transform.c:1340 +#, c-format +msgid "unimplemented input color space 0x%x" +msgstr "" + +#: ../libvips/colour/im_icc_transform.c:428 +#: ../libvips/colour/im_icc_transform.c:767 +#: ../libvips/colour/im_icc_transform.c:1235 +#: ../libvips/colour/im_icc_transform.c:1552 +#, c-format +msgid "unimplemented output color space 0x%x" +msgstr "" + +#: ../libvips/colour/im_icc_transform.c:444 +#: ../libvips/colour/im_icc_transform.c:567 +#: ../libvips/colour/im_icc_transform.c:1251 +#: ../libvips/colour/im_icc_transform.c:1356 +msgid "uchar or ushort input only" +msgstr "" + +#: ../libvips/colour/im_icc_transform.c:516 +#: ../libvips/colour/im_icc_transform.c:1305 +#, c-format +msgid "" +"intent %d (%s) not supported by profile; falling back to default intent " +"(usually PERCEPTUAL)" +msgstr "" + +#: ../libvips/colour/im_icc_transform.c:533 +#: ../libvips/colour/im_icc_transform.c:1322 +msgid "CMYK profile needs a 4 band input image" +msgstr "" + +#: ../libvips/colour/im_icc_transform.c:543 +#: ../libvips/colour/im_icc_transform.c:1332 +msgid "RGB profile needs a 3 band input image" +msgstr "" + +#: ../libvips/colour/im_icc_transform.c:634 +#: ../libvips/colour/im_icc_transform.c:1427 +msgid "no embedded profile" +msgstr "" + +#: ../libvips/colour/im_icc_transform.c:726 +#: ../libvips/colour/im_icc_transform.c:1511 +msgid "unsupported bit depth" +msgstr "" + +#: ../libvips/colour/im_icc_transform.c:815 +#: ../libvips/colour/im_icc_transform.c:1605 +msgid "unable to get media white point" +msgstr "" + +#: ../libvips/colour/im_icc_transform.c:1672 +msgid "lcms library not linked to this VIPS" +msgstr "" + +#: ../libvips/colour/im_icc_transform.c:1682 +#: ../libvips/colour/im_icc_transform.c:1691 +#: ../libvips/colour/im_icc_transform.c:1701 +#: ../libvips/colour/im_icc_transform.c:1710 +msgid "lmcs library not linked to this VIPS" +msgstr "" + +#: ../libvips/colour/im_lab_morph.c:75 +msgid "bad greyscale mask size" +msgstr "" + +#: ../libvips/colour/im_lab_morph.c:86 +#, c-format +msgid "bad greyscale mask value, row %d" +msgstr "" + +#: ../libvips/conversion/flip.c:236 +msgid "flip an image" +msgstr "" + +#: ../libvips/conversion/flip.c:246 +msgid "Direction" +msgstr "" + +#: ../libvips/conversion/flip.c:247 +msgid "Direction to flip image" +msgstr "" + +#: ../libvips/conversion/bandmean.c:191 +msgid "band-wise average" +msgstr "" + +#: ../libvips/conversion/im_zoom.c:331 +msgid "zoom factors should be >= 0" +msgstr "" + +#. Make sure we won't get integer overflow. +#. +#: ../libvips/conversion/im_zoom.c:338 +msgid "zoom factors too large" +msgstr "" + +#: ../libvips/conversion/im_gaussnoise.c:124 +msgid "bad parameter" +msgstr "" + +#: ../libvips/conversion/bandary.c:127 +msgid "no input images" +msgstr "" + +#: ../libvips/conversion/bandary.c:173 +msgid "operations on image bands" +msgstr "" + +#: ../libvips/conversion/cast.c:125 +#, c-format +msgid "%d underflows and %d overflows detected" +msgstr "" + +#: ../libvips/conversion/cast.c:472 +msgid "cast an image" +msgstr "" + +#: ../libvips/conversion/cast.c:482 ../libvips/conversion/copy.c:352 +#: ../libvips/iofuncs/image.c:866 +msgid "Format" +msgstr "" + +#: ../libvips/conversion/cast.c:483 +msgid "Format to cast to" +msgstr "" + +#: ../libvips/conversion/conversion.c:85 +msgid "conversion operations" +msgstr "" + +#: ../libvips/conversion/im_subsample.c:202 +msgid "factors should both be >= 1" +msgstr "" + +#: ../libvips/conversion/im_subsample.c:221 +#: ../libvips/resample/im_shrink.c:299 +msgid "image has shrunk to nothing" +msgstr "" + +#: ../libvips/conversion/im_grid.c:164 +#: ../libvips/convolution/im_contrast_surface.c:140 +#: ../libvips/iofuncs/sinkscreen.c:1082 ../libvips/iofuncs/image.c:710 +#: ../libvips/morphology/im_rank.c:342 +msgid "bad parameters" +msgstr "" + +#: ../libvips/conversion/im_grid.c:169 +msgid "bad grid geometry" +msgstr "" + +#: ../libvips/conversion/extract.c:147 +msgid "bad extract area" +msgstr "" + +#: ../libvips/conversion/extract.c:190 +msgid "extract an area from an image" +msgstr "" + +#: ../libvips/conversion/extract.c:318 +msgid "bad extract band" +msgstr "" + +#: ../libvips/conversion/extract.c:347 +msgid "extract band from an image" +msgstr "" + +#: ../libvips/conversion/extract.c:359 +msgid "Band" +msgstr "" + +#: ../libvips/conversion/extract.c:360 +msgid "Band to extract" +msgstr "" + +#: ../libvips/conversion/extract.c:366 +msgid "n" +msgstr "" + +#: ../libvips/conversion/extract.c:367 +msgid "Number of bands to extract" +msgstr "" + +#: ../libvips/conversion/bandjoin.c:165 +msgid "bandwise join a set of images" +msgstr "" + +#: ../libvips/conversion/bandjoin.c:172 +msgid "Array of input images" +msgstr "" + +#: ../libvips/conversion/im_msb.c:134 ../libvips/conversion/im_msb.c:213 +msgid "unknown coding" +msgstr "" + +#: ../libvips/conversion/im_msb.c:169 +#: ../libvips/resample/im_rightshift_size.c:116 +msgid "bad arguments" +msgstr "" + +#: ../libvips/conversion/im_msb.c:183 ../libvips/conversion/im_msb.c:200 +msgid "image does not have that many bands" +msgstr "" + +#: ../libvips/conversion/black.c:124 +msgid "make a black image" +msgstr "" + +#: ../libvips/conversion/black.c:129 ../libvips/conversion/copy.c:332 +#: ../libvips/conversion/embed.c:537 ../libvips/foreign/rawload.c:123 +#: ../libvips/iofuncs/image.c:846 +msgid "Image width in pixels" +msgstr "" + +#: ../libvips/conversion/black.c:136 ../libvips/conversion/copy.c:339 +#: ../libvips/conversion/embed.c:544 ../libvips/foreign/rawload.c:130 +#: ../libvips/iofuncs/image.c:853 +msgid "Image height in pixels" +msgstr "" + +#: ../libvips/conversion/black.c:142 ../libvips/conversion/copy.c:345 +#: ../libvips/foreign/rawload.c:136 ../libvips/iofuncs/image.c:859 +msgid "Bands" +msgstr "" + +#: ../libvips/conversion/black.c:143 ../libvips/conversion/copy.c:346 +#: ../libvips/foreign/rawload.c:137 ../libvips/iofuncs/image.c:860 +msgid "Number of bands in image" +msgstr "" + +#: ../libvips/conversion/copy.c:314 +msgid "copy an image" +msgstr "" + +#: ../libvips/conversion/copy.c:324 +msgid "Swap" +msgstr "" + +#: ../libvips/conversion/copy.c:325 +msgid "Swap bytes in image between little and big-endian" +msgstr "" + +#: ../libvips/conversion/copy.c:353 ../libvips/iofuncs/image.c:867 +msgid "Pixel format in image" +msgstr "" + +#: ../libvips/conversion/copy.c:359 ../libvips/iofuncs/image.c:873 +msgid "Coding" +msgstr "" + +#: ../libvips/conversion/copy.c:360 ../libvips/iofuncs/image.c:874 +msgid "Pixel coding" +msgstr "" + +#: ../libvips/conversion/copy.c:366 ../libvips/iofuncs/image.c:880 +msgid "Interpretation" +msgstr "" + +#: ../libvips/conversion/copy.c:367 ../libvips/iofuncs/image.c:881 +msgid "Pixel interpretation" +msgstr "" + +#: ../libvips/conversion/copy.c:373 ../libvips/foreign/tiffsave.c:251 +#: ../libvips/iofuncs/image.c:887 +msgid "Xres" +msgstr "" + +#: ../libvips/conversion/copy.c:374 ../libvips/foreign/tiffsave.c:252 +#: ../libvips/iofuncs/image.c:888 +msgid "Horizontal resolution in pixels/mm" +msgstr "" + +#: ../libvips/conversion/copy.c:380 ../libvips/foreign/tiffsave.c:258 +#: ../libvips/iofuncs/image.c:894 +msgid "Yres" +msgstr "" + +#: ../libvips/conversion/copy.c:381 ../libvips/foreign/tiffsave.c:259 +#: ../libvips/iofuncs/image.c:895 +msgid "Vertical resolution in pixels/mm" +msgstr "" + +#: ../libvips/conversion/copy.c:387 ../libvips/iofuncs/image.c:901 +msgid "Xoffset" +msgstr "" + +#: ../libvips/conversion/copy.c:388 ../libvips/iofuncs/image.c:902 +msgid "Horizontal offset of origin" +msgstr "" + +#: ../libvips/conversion/copy.c:394 ../libvips/iofuncs/image.c:908 +msgid "Yoffset" +msgstr "" + +#: ../libvips/conversion/copy.c:395 ../libvips/iofuncs/image.c:909 +msgid "Vertical offset of origin" +msgstr "" + +#: ../libvips/conversion/rot.c:351 +msgid "rotate an image" +msgstr "" + +#: ../libvips/conversion/rot.c:361 +msgid "Angle" +msgstr "" + +#: ../libvips/conversion/rot.c:362 +msgid "Angle to rotate image" +msgstr "" + +#: ../libvips/conversion/replicate.c:192 +msgid "replicate an image" +msgstr "" + +#: ../libvips/conversion/replicate.c:203 +msgid "Repeat this many times horizontally" +msgstr "" + +#: ../libvips/conversion/replicate.c:210 +msgid "Repeat this many times vertically" +msgstr "" + +#: ../libvips/conversion/join.c:210 +msgid "join a pair of images" +msgstr "" + +#: ../libvips/conversion/join.c:214 +msgid "in1" +msgstr "" + +#: ../libvips/conversion/join.c:215 +msgid "First input image" +msgstr "" + +#: ../libvips/conversion/join.c:220 +msgid "in2" +msgstr "" + +#: ../libvips/conversion/join.c:221 +msgid "Second input image" +msgstr "" + +#: ../libvips/conversion/join.c:226 +msgid "direction" +msgstr "" + +#: ../libvips/conversion/join.c:227 +msgid "Join left-right or up-down" +msgstr "" + +#: ../libvips/conversion/join.c:233 ../libvips/conversion/insert.c:379 +msgid "Expand" +msgstr "" + +#: ../libvips/conversion/join.c:234 ../libvips/conversion/insert.c:380 +msgid "Expand output to hold all of both inputs" +msgstr "" + +#: ../libvips/conversion/join.c:240 +msgid "Shim" +msgstr "" + +#: ../libvips/conversion/join.c:241 +msgid "Pixels between images" +msgstr "" + +#: ../libvips/conversion/join.c:247 ../libvips/conversion/insert.c:386 +msgid "Background" +msgstr "" + +#: ../libvips/conversion/join.c:248 ../libvips/conversion/insert.c:387 +msgid "Colour for new pixels" +msgstr "" + +#: ../libvips/conversion/join.c:254 +msgid "Align" +msgstr "" + +#: ../libvips/conversion/join.c:255 +msgid "Align on the low, centre or high coordinate edge" +msgstr "" + +#: ../libvips/conversion/im_text.c:132 +msgid "no text to render" +msgstr "" + +#: ../libvips/conversion/im_text.c:219 +msgid "invalid markup in text" +msgstr "" + +#: ../libvips/conversion/im_text.c:251 +msgid "pangoft2 support disabled" +msgstr "" + +#: ../libvips/conversion/conver_dispatch.c:918 +#: ../libvips/inplace/inplace_dispatch.c:171 +msgid "vectors not same length" +msgstr "" + +#: ../libvips/conversion/insert.c:349 +msgid "insert an image" +msgstr "" + +#: ../libvips/conversion/insert.c:353 +msgid "Main" +msgstr "" + +#: ../libvips/conversion/insert.c:354 +msgid "Main input image" +msgstr "" + +#: ../libvips/conversion/insert.c:359 +msgid "Sub-image" +msgstr "" + +#: ../libvips/conversion/insert.c:360 +msgid "Sub-image to insert into main image" +msgstr "" + +#: ../libvips/conversion/insert.c:365 +msgid "X" +msgstr "" + +#: ../libvips/conversion/insert.c:366 +msgid "Left edge of sub in main" +msgstr "" + +#: ../libvips/conversion/insert.c:372 +msgid "Y" +msgstr "" + +#: ../libvips/conversion/insert.c:373 +msgid "Top edge of sub in main" +msgstr "" + +#: ../libvips/conversion/tilecache.c:418 ../libvips/conversion/cache.c:102 +msgid "cache an image" +msgstr "" + +#: ../libvips/conversion/tilecache.c:428 ../libvips/conversion/cache.c:112 +#: ../libvips/foreign/tiffsave.c:215 +msgid "Tile width" +msgstr "" + +#: ../libvips/conversion/tilecache.c:429 ../libvips/conversion/cache.c:113 +#: ../libvips/foreign/tiffsave.c:216 +msgid "Tile width in pixels" +msgstr "" + +#: ../libvips/conversion/tilecache.c:435 ../libvips/conversion/cache.c:119 +#: ../libvips/foreign/tiffsave.c:222 +msgid "Tile height" +msgstr "" + +#: ../libvips/conversion/tilecache.c:436 ../libvips/conversion/cache.c:120 +#: ../libvips/foreign/tiffsave.c:223 +msgid "Tile height in pixels" +msgstr "" + +#: ../libvips/conversion/tilecache.c:442 ../libvips/conversion/cache.c:126 +msgid "Max tiles" +msgstr "" + +#: ../libvips/conversion/tilecache.c:443 ../libvips/conversion/cache.c:127 +msgid "Maximum number of tiles to cache" +msgstr "" + +#: ../libvips/conversion/tilecache.c:449 +msgid "Strategy" +msgstr "" + +#: ../libvips/conversion/tilecache.c:450 +msgid "Expected access pattern" +msgstr "" + +#: ../libvips/conversion/im_system_image.c:76 +#, c-format +msgid "command failed: \"%s\"" +msgstr "" + +#: ../libvips/conversion/embed.c:430 ../libvips/iofuncs/image.c:1777 +msgid "bad dimensions" +msgstr "" + +#: ../libvips/conversion/embed.c:512 +msgid "embed an image in a larger image" +msgstr "" + +#: ../libvips/conversion/embed.c:523 +msgid "Left edge of input in output" +msgstr "" + +#: ../libvips/conversion/embed.c:530 +msgid "Top edge of input in output" +msgstr "" + +#: ../libvips/conversion/embed.c:550 +msgid "Extend" +msgstr "" + +#: ../libvips/conversion/embed.c:551 +msgid "How to generate the extra pixels" +msgstr "" + +#: ../libvips/conversion/ifthenelse.c:468 +msgid "ifthenelse an image" +msgstr "" + +#: ../libvips/conversion/ifthenelse.c:472 +msgid "Condition" +msgstr "" + +#: ../libvips/conversion/ifthenelse.c:473 +msgid "Condition input image" +msgstr "" + +#: ../libvips/conversion/ifthenelse.c:478 +msgid "Then image" +msgstr "" + +#: ../libvips/conversion/ifthenelse.c:479 +msgid "Source for TRUE pixels" +msgstr "" + +#: ../libvips/conversion/ifthenelse.c:484 +msgid "Else image" +msgstr "" + +#: ../libvips/conversion/ifthenelse.c:485 +msgid "Source for FALSE pixels" +msgstr "" + +#: ../libvips/conversion/ifthenelse.c:490 +msgid "blend" +msgstr "" + +#: ../libvips/conversion/ifthenelse.c:491 +msgid "Blend smoothly between then and else parts" +msgstr "" + +#: ../libvips/conversion/recomb.c:160 +msgid "bands in must equal matrix width" +msgstr "" + +#: ../libvips/conversion/recomb.c:196 +msgid "linear recombination with matrix" +msgstr "" + +#: ../libvips/conversion/recomb.c:206 +msgid "M" +msgstr "" + +#: ../libvips/conversion/recomb.c:207 +msgid "matrix of coefficients" +msgstr "" + +#: ../libvips/conversion/sequential.c:86 +#, c-format +msgid "" +"non-sequential read --- at position %d in file, but position %d requested" +msgstr "" + +#: ../libvips/conversion/sequential.c:149 +msgid "check sequential access" +msgstr "" + +#: ../libvips/convolution/im_conv.c:215 +#, c-format +msgid "%d overflows and %d underflows detected" +msgstr "" + +#: ../libvips/convolution/im_conv.c:1038 +#: ../libvips/convolution/im_conv_f.c:340 +#: ../libvips/convolution/im_aconvsep.c:798 +#: ../libvips/convolution/im_aconv.c:980 +#: ../libvips/convolution/im_aconv.c:1201 +#: ../libvips/morphology/morphology.c:721 +msgid "image too small for mask" +msgstr "" + +#: ../libvips/convolution/im_conv.c:1125 +#: ../libvips/convolution/im_conv_f.c:403 +msgid "expect 1xN or Nx1 input mask" +msgstr "" + +#: ../libvips/convolution/im_fastcor.c:134 +#: ../libvips/convolution/im_spcor.c:247 +msgid "ref not smaller than or equal to in" +msgstr "" + +#: ../libvips/convolution/im_contrast_surface.c:147 +msgid "parameters would result in zero size output image" +msgstr "" + +#: ../libvips/convolution/im_aconvsep.c:130 +#: ../libvips/convolution/im_aconv.c:223 ../libvips/convolution/im_aconv.c:229 +#: ../libvips/convolution/im_aconv.c:750 +msgid "mask too complex" +msgstr "" + +#: ../libvips/convolution/im_sharpen.c:325 +#: ../libvips/histograms_lut/im_stdif.c:196 +msgid "parameters out of range" +msgstr "" + +#: ../libvips/foreign/rawsave.c:159 +msgid "save image to raw file" +msgstr "" + +#: ../libvips/foreign/rawsave.c:166 ../libvips/foreign/radload.c:126 +#: ../libvips/foreign/tiffload.c:142 ../libvips/foreign/ppmsave.c:118 +#: ../libvips/foreign/vipsload.c:133 ../libvips/foreign/pngload.c:136 +#: ../libvips/foreign/openexrload.c:137 ../libvips/foreign/tiffsave.c:171 +#: ../libvips/foreign/analyzeload.c:126 ../libvips/foreign/jpegsave.c:193 +#: ../libvips/foreign/fitsload.c:116 ../libvips/foreign/ppmload.c:126 +#: ../libvips/foreign/csvload.c:132 ../libvips/foreign/magickload.c:146 +#: ../libvips/foreign/openslideload.c:178 ../libvips/foreign/csvsave.c:121 +#: ../libvips/foreign/jpegload.c:245 ../libvips/foreign/rawload.c:115 +#: ../libvips/foreign/matload.c:128 ../libvips/foreign/fitssave.c:128 +#: ../libvips/foreign/radsave.c:119 ../libvips/foreign/vipssave.c:125 +#: ../libvips/foreign/pngsave.c:166 ../libvips/iofuncs/image.c:915 +msgid "Filename" +msgstr "" + +#: ../libvips/foreign/rawsave.c:167 ../libvips/foreign/ppmsave.c:119 +#: ../libvips/foreign/tiffsave.c:172 ../libvips/foreign/jpegsave.c:194 +#: ../libvips/foreign/csvsave.c:122 ../libvips/foreign/fitssave.c:129 +#: ../libvips/foreign/radsave.c:120 ../libvips/foreign/vipssave.c:126 +#: ../libvips/foreign/pngsave.c:167 +msgid "Filename to save to" +msgstr "" + +#: ../libvips/foreign/rawsave.c:266 +msgid "write raw image to file descriptor" +msgstr "" + +#: ../libvips/foreign/rawsave.c:273 +msgid "File descriptor" +msgstr "" + +#: ../libvips/foreign/rawsave.c:274 +msgid "File descriptor to write to" +msgstr "" + +#: ../libvips/foreign/radload.c:114 +msgid "load a Radiance image from a file" +msgstr "" + +#: ../libvips/foreign/radload.c:127 ../libvips/foreign/tiffload.c:143 +#: ../libvips/foreign/vipsload.c:134 ../libvips/foreign/pngload.c:137 +#: ../libvips/foreign/openexrload.c:138 ../libvips/foreign/analyzeload.c:127 +#: ../libvips/foreign/fitsload.c:117 ../libvips/foreign/ppmload.c:127 +#: ../libvips/foreign/csvload.c:133 ../libvips/foreign/magickload.c:147 +#: ../libvips/foreign/openslideload.c:179 ../libvips/foreign/jpegload.c:246 +#: ../libvips/foreign/rawload.c:116 ../libvips/foreign/matload.c:129 +msgid "Filename to load from" +msgstr "" + +#: ../libvips/foreign/tiffload.c:130 +msgid "load tiff from file" +msgstr "" + +#: ../libvips/foreign/tiffload.c:149 +msgid "Page" +msgstr "" + +#: ../libvips/foreign/tiffload.c:150 +msgid "Load this page from the file" +msgstr "" + +#: ../libvips/foreign/magick2vips.c:215 +#, c-format +msgid "unsupported image type %d" +msgstr "" + +#: ../libvips/foreign/magick2vips.c:275 +#, c-format +msgid "unsupported bit depth %d" +msgstr "" + +#: ../libvips/foreign/magick2vips.c:307 +#, c-format +msgid "unsupported colorspace %d" +msgstr "" + +#: ../libvips/foreign/magick2vips.c:622 +msgid "unable to read pixels" +msgstr "" + +#: ../libvips/foreign/magick2vips.c:658 +#, c-format +msgid "" +"unable to read file \"%s\"\n" +"libMagick error: %s %s" +msgstr "" + +#: ../libvips/foreign/magick2vips.c:692 +#, c-format +msgid "" +"unable to ping file \"%s\"\n" +"libMagick error: %s %s" +msgstr "" + +#: ../libvips/foreign/magick2vips.c:703 +msgid "bad image size" +msgstr "" + +#: ../libvips/foreign/ppmsave.c:109 +msgid "save image to ppm file" +msgstr "" + +#: ../libvips/foreign/ppmsave.c:125 +msgid "ASCII" +msgstr "" + +#: ../libvips/foreign/ppmsave.c:126 +msgid "save as ascii" +msgstr "" + +#: ../libvips/foreign/vipsload.c:121 +msgid "load vips from file" +msgstr "" + +#: ../libvips/foreign/pngload.c:124 +msgid "load png from file" +msgstr "" + +#: ../libvips/foreign/analyze2vips.c:308 +msgid "header file size incorrect" +msgstr "" + +#: ../libvips/foreign/analyze2vips.c:353 +msgid "header size incorrect" +msgstr "" + +#: ../libvips/foreign/analyze2vips.c:371 +#, c-format +msgid "%d-dimensional images not supported" +msgstr "" + +#: ../libvips/foreign/analyze2vips.c:424 +#, c-format +msgid "datatype %d not supported" +msgstr "" + +#: ../libvips/foreign/jpeg2vips.c:167 +#, c-format +msgid "read gave %ld warnings" +msgstr "" + +#: ../libvips/foreign/jpeg2vips.c:489 +msgid "error reading resolution" +msgstr "" + +#: ../libvips/foreign/jpeg2vips.c:510 +msgid "unknown EXIF resolution unit" +msgstr "" + +#: ../libvips/foreign/jpeg2vips.c:718 +msgid "unknown JFIF resolution unit" +msgstr "" + +#: ../libvips/foreign/radiance.c:885 +msgid "error reading radiance header" +msgstr "" + +#: ../libvips/foreign/radiance.c:959 ../libvips/foreign/tiff2vips.c:1343 +msgid "read error" +msgstr "" + +#: ../libvips/foreign/openexrload.c:125 +msgid "load an OpenEXR image" +msgstr "" + +#: ../libvips/foreign/tiffsave.c:161 +msgid "save image to tiff file" +msgstr "" + +#: ../libvips/foreign/tiffsave.c:178 ../libvips/foreign/pngsave.c:103 +msgid "Compression" +msgstr "" + +#: ../libvips/foreign/tiffsave.c:179 +msgid "Compression for this file" +msgstr "" + +#: ../libvips/foreign/tiffsave.c:186 ../libvips/foreign/jpegsave.c:124 +msgid "Q" +msgstr "" + +#: ../libvips/foreign/tiffsave.c:187 ../libvips/foreign/jpegsave.c:125 +msgid "Q factor" +msgstr "" + +#: ../libvips/foreign/tiffsave.c:193 +msgid "predictor" +msgstr "" + +#: ../libvips/foreign/tiffsave.c:194 +msgid "Compression prediction" +msgstr "" + +#: ../libvips/foreign/tiffsave.c:201 ../libvips/foreign/jpegsave.c:131 +msgid "profile" +msgstr "" + +#: ../libvips/foreign/tiffsave.c:202 ../libvips/foreign/jpegsave.c:132 +msgid "ICC profile to embed" +msgstr "" + +#: ../libvips/foreign/tiffsave.c:208 +msgid "Tile" +msgstr "" + +#: ../libvips/foreign/tiffsave.c:209 +msgid "Write a tiled tiff" +msgstr "" + +#: ../libvips/foreign/tiffsave.c:229 +msgid "Pyramid" +msgstr "" + +#: ../libvips/foreign/tiffsave.c:230 +msgid "Write a pyramidal tiff" +msgstr "" + +#: ../libvips/foreign/tiffsave.c:236 +msgid "Squash" +msgstr "" + +#: ../libvips/foreign/tiffsave.c:237 +msgid "Squash images down to 1 bit" +msgstr "" + +#: ../libvips/foreign/tiffsave.c:243 ../libvips/foreign/tiffsave.c:244 +msgid "Resolution unit" +msgstr "" + +#: ../libvips/foreign/tiffsave.c:265 +msgid "Bigtiff" +msgstr "" + +#: ../libvips/foreign/tiffsave.c:266 +msgid "Write a bigtiff image" +msgstr "" + +#: ../libvips/foreign/analyzeload.c:114 +msgid "load an Analyze6 image" +msgstr "" + +#: ../libvips/foreign/jpegsave.c:118 +msgid "save jpeg" +msgstr "" + +#: ../libvips/foreign/jpegsave.c:187 +msgid "save image to jpeg file" +msgstr "" + +#: ../libvips/foreign/jpegsave.c:256 +msgid "save image to jpeg buffer" +msgstr "" + +#: ../libvips/foreign/jpegsave.c:260 ../libvips/foreign/jpegload.c:315 +#: ../libvips/foreign/pngsave.c:228 +msgid "Buffer" +msgstr "" + +#: ../libvips/foreign/jpegsave.c:261 ../libvips/foreign/pngsave.c:229 +msgid "Buffer to save to" +msgstr "" + +#: ../libvips/foreign/jpegsave.c:303 +msgid "error writing output" +msgstr "" + +#: ../libvips/foreign/jpegsave.c:319 +msgid "save image to jpeg mime" +msgstr "" + +#: ../libvips/foreign/vips2jpeg.c:132 +#, c-format +msgid "%s" +msgstr "" + +#: ../libvips/foreign/vips2jpeg.c:363 +msgid "error setting JPEG resolution" +msgstr "" + +#: ../libvips/foreign/vips2jpeg.c:510 +msgid "error saving EXIF" +msgstr "" + +#: ../libvips/foreign/ppm.c:109 +msgid "bad int" +msgstr "" + +#: ../libvips/foreign/ppm.c:121 +msgid "bad float" +msgstr "" + +#: ../libvips/foreign/ppm.c:172 +msgid "bad magic number" +msgstr "" + +#: ../libvips/foreign/ppm.c:222 +msgid "not whitespace before start of binary data" +msgstr "" + +#: ../libvips/foreign/ppm.c:599 ../libvips/foreign/ppm.c:611 +msgid "write error ... disc full?" +msgstr "" + +#: ../libvips/foreign/ppm.c:716 +msgid "binary >8 bit images must be float" +msgstr "" + +#: ../libvips/foreign/fitsload.c:107 +msgid "load a FITS image" +msgstr "" + +#: ../libvips/foreign/ppmload.c:114 +msgid "load ppm from file" +msgstr "" + +#: ../libvips/foreign/csvload.c:121 +msgid "load csv from file" +msgstr "" + +#: ../libvips/foreign/csvload.c:139 +msgid "Skip" +msgstr "" + +#: ../libvips/foreign/csvload.c:140 +msgid "Skip this many lines at the start of the file" +msgstr "" + +#: ../libvips/foreign/csvload.c:146 +msgid "Lines" +msgstr "" + +#: ../libvips/foreign/csvload.c:147 +msgid "Read this many lines from the file" +msgstr "" + +#: ../libvips/foreign/csvload.c:153 +msgid "Whitespace" +msgstr "" + +#: ../libvips/foreign/csvload.c:154 +msgid "Set of whitespace characters" +msgstr "" + +#: ../libvips/foreign/csvload.c:160 ../libvips/foreign/csvsave.c:128 +msgid "Separator" +msgstr "" + +#: ../libvips/foreign/csvload.c:161 +msgid "Set of separator characters" +msgstr "" + +#: ../libvips/foreign/magickload.c:131 +msgid "load file with ImageMagick" +msgstr "" + +#: ../libvips/foreign/openslideload.c:161 +msgid "load file with OpenSlide" +msgstr "" + +#: ../libvips/foreign/openslideload.c:185 +msgid "Level" +msgstr "" + +#: ../libvips/foreign/openslideload.c:186 +msgid "Load this level from the file" +msgstr "" + +#: ../libvips/foreign/openslideload.c:192 +msgid "Associated" +msgstr "" + +#: ../libvips/foreign/openslideload.c:193 +msgid "Load this associated image" +msgstr "" + +#: ../libvips/foreign/csvsave.c:112 +msgid "save image to csv file" +msgstr "" + +#: ../libvips/foreign/csvsave.c:129 +msgid "Separator characters" +msgstr "" + +#: ../libvips/foreign/jpegload.c:118 +#, c-format +msgid "bad shrink factor %d" +msgstr "" + +#: ../libvips/foreign/jpegload.c:140 +msgid "load jpeg" +msgstr "" + +#: ../libvips/foreign/jpegload.c:146 +msgid "Shrink" +msgstr "" + +#: ../libvips/foreign/jpegload.c:147 +msgid "Shrink factor on load" +msgstr "" + +#: ../libvips/foreign/jpegload.c:153 +msgid "Fail" +msgstr "" + +#: ../libvips/foreign/jpegload.c:154 +msgid "Fail on first warning" +msgstr "" + +#: ../libvips/foreign/jpegload.c:234 +msgid "load jpeg from file" +msgstr "" + +#: ../libvips/foreign/jpegload.c:309 +msgid "load jpeg from buffer" +msgstr "" + +#: ../libvips/foreign/jpegload.c:316 +msgid "Buffer to load from" +msgstr "" + +#: ../libvips/foreign/rawload.c:107 +msgid "load raw data from a file" +msgstr "" + +#: ../libvips/foreign/rawload.c:143 ../libvips/iofuncs/image.c:943 +msgid "Size of header" +msgstr "" + +#: ../libvips/foreign/rawload.c:144 ../libvips/iofuncs/image.c:944 +msgid "Offset in bytes from start of file" +msgstr "" + +#: ../libvips/foreign/openexr2vips.c:115 +#, c-format +msgid "EXR error: %s" +msgstr "" + +#: ../libvips/foreign/tiff2vips.c:265 ../libvips/foreign/tiff2vips.c:288 +#: ../libvips/foreign/tiff2vips.c:306 +#, c-format +msgid "required field %d missing" +msgstr "" + +#: ../libvips/foreign/tiff2vips.c:269 +#, c-format +msgid "required field %d=%d, not %d" +msgstr "" + +#: ../libvips/foreign/tiff2vips.c:653 +#, c-format +msgid "%d bits per sample palette image not supported" +msgstr "" + +#: ../libvips/foreign/tiff2vips.c:662 +msgid "bad colormap" +msgstr "" + +#: ../libvips/foreign/tiff2vips.c:719 ../libvips/foreign/tiff2vips.c:750 +msgid "3 or 4 bands RGB TIFF only" +msgstr "" + +#: ../libvips/foreign/tiff2vips.c:821 +msgid "4 or 5 bands CMYK TIFF only" +msgstr "" + +#: ../libvips/foreign/tiff2vips.c:872 +msgid "unknown resolution unit" +msgstr "" + +#: ../libvips/foreign/tiff2vips.c:877 +#, c-format +msgid "" +"no resolution information for TIFF image \"%s\" -- defaulting to 1 pixel per " +"mm" +msgstr "" + +#: ../libvips/foreign/tiff2vips.c:949 +#, c-format +msgid "unsupported sample format %d for lab image" +msgstr "" + +#: ../libvips/foreign/tiff2vips.c:959 +#, c-format +msgid "unsupported depth %d for LAB image" +msgstr "" + +#: ../libvips/foreign/tiff2vips.c:998 +#, c-format +msgid "unsupported sample format %d for greyscale image" +msgstr "" + +#: ../libvips/foreign/tiff2vips.c:1007 +#, c-format +msgid "unsupported depth %d for greyscale image" +msgstr "" + +#: ../libvips/foreign/tiff2vips.c:1055 +#, c-format +msgid "unsupported sample format %d for rgb image" +msgstr "" + +#: ../libvips/foreign/tiff2vips.c:1064 +#, c-format +msgid "unsupported depth %d for RGB image" +msgstr "" + +#: ../libvips/foreign/tiff2vips.c:1078 +#, c-format +msgid "unknown photometric interpretation %d" +msgstr "" + +#: ../libvips/foreign/tiff2vips.c:1456 +#, c-format +msgid "bad page number %d" +msgstr "" + +#: ../libvips/foreign/tiff2vips.c:1477 ../libvips/foreign/vips2tiff.c:289 +#, c-format +msgid "unable to open \"%s\" for input" +msgstr "" + +#: ../libvips/foreign/tiff2vips.c:1532 ../libvips/foreign/tiff2vips.c:1562 +#, c-format +msgid "TIFF file does not contain page %d" +msgstr "" + +#: ../libvips/foreign/csv.c:183 +#, c-format +msgid "error parsing number, line %d, column %d" +msgstr "" + +#: ../libvips/foreign/csv.c:237 +msgid "end of file while skipping start" +msgstr "" + +#: ../libvips/foreign/csv.c:246 ../libvips/iofuncs/util.c:1072 +#: ../libvips/iofuncs/util.c:1078 +msgid "unable to seek" +msgstr "" + +#: ../libvips/foreign/csv.c:257 +msgid "empty line" +msgstr "" + +#: ../libvips/foreign/csv.c:301 +#, c-format +msgid "unexpected EOF, line %d col %d" +msgstr "" + +#: ../libvips/foreign/csv.c:307 +#, c-format +msgid "unexpected EOL, line %d col %d" +msgstr "" + +#: ../libvips/foreign/matload.c:116 +msgid "load mat from file" +msgstr "" + +#: ../libvips/foreign/fitssave.c:119 +msgid "save image to fits file" +msgstr "" + +#: ../libvips/foreign/radsave.c:108 +msgid "save image to Radiance file" +msgstr "" + +#: ../libvips/foreign/vipssave.c:114 +msgid "save image to vips file" +msgstr "" + +#: ../libvips/foreign/fits.c:178 ../libvips/foreign/matlab.c:106 +#: ../libvips/iofuncs/vips.c:143 ../libvips/mosaicing/global_balance.c:1181 +#: ../libvips/mosaicing/global_balance.c:1516 +#, c-format +msgid "unable to open \"%s\"" +msgstr "" + +#: ../libvips/foreign/fits.c:240 +msgid "dimensions above 3 must be size 1" +msgstr "" + +#: ../libvips/foreign/fits.c:256 +#, c-format +msgid "bad number of axis %d" +msgstr "" + +#: ../libvips/foreign/fits.c:272 +#, c-format +msgid "unsupported bitpix %d\n" +msgstr "" + +#: ../libvips/foreign/fits.c:576 ../libvips/iofuncs/vips.c:171 +#, c-format +msgid "unable to write to \"%s\"" +msgstr "" + +#: ../libvips/foreign/fits.c:637 +#, c-format +msgid "unsupported BandFmt %d\n" +msgstr "" + +#: ../libvips/foreign/openslide2vips.c:140 +msgid "invalid associated image name" +msgstr "" + +#: ../libvips/foreign/openslide2vips.c:156 +msgid "specify only one of level or associated image" +msgstr "" + +#: ../libvips/foreign/openslide2vips.c:172 +msgid "failure opening slide" +msgstr "" + +#: ../libvips/foreign/openslide2vips.c:179 +msgid "invalid slide level" +msgstr "" + +#: ../libvips/foreign/openslide2vips.c:209 +#, c-format +msgid "getting dimensions: %s" +msgstr "" + +#: ../libvips/foreign/openslide2vips.c:216 +msgid "image dimensions overflow int" +msgstr "" + +#: ../libvips/foreign/openslide2vips.c:282 +#, c-format +msgid "reading region: %s" +msgstr "" + +#: ../libvips/foreign/openslide2vips.c:379 +#, c-format +msgid "reading associated image: %s" +msgstr "" + +#: ../libvips/foreign/pngsave.c:95 +msgid "save png" +msgstr "" + +#: ../libvips/foreign/pngsave.c:104 +msgid "Compression factor" +msgstr "" + +#: ../libvips/foreign/pngsave.c:110 +msgid "Interlace" +msgstr "" + +#: ../libvips/foreign/pngsave.c:111 +msgid "Interlace image" +msgstr "" + +#: ../libvips/foreign/pngsave.c:162 +msgid "save image to png file" +msgstr "" + +#: ../libvips/foreign/pngsave.c:224 +msgid "save image to png buffer" +msgstr "" + +#: ../libvips/foreign/vips2tiff.c:273 +#, c-format +msgid "unable to open \"%s\" for output" +msgstr "" + +#: ../libvips/foreign/vips2tiff.c:695 +msgid "layer buffer exhausted -- try making TIFF output tiles smaller" +msgstr "" + +#: ../libvips/foreign/vips2tiff.c:926 +msgid "TIFF write tile failed" +msgstr "" + +#: ../libvips/foreign/vips2tiff.c:1002 +msgid "internal error #9876345" +msgstr "" + +#: ../libvips/foreign/vips2tiff.c:1255 +msgid "tile size not a multiple of 16" +msgstr "" + +#: ../libvips/foreign/vips2tiff.c:1261 +msgid "can't have strip pyramid -- enabling tiling" +msgstr "" + +#: ../libvips/foreign/vips2tiff.c:1272 +msgid "can only pyramid LABQ and non-complex images" +msgstr "" + +#: ../libvips/foreign/vips2tiff.c:1289 +msgid "can't have 1-bit JPEG -- disabling JPEG" +msgstr "" + +#: ../libvips/foreign/vips2tiff.c:1479 +msgid "unsigned 8-bit int, 16-bit int, and 32-bit float only" +msgstr "" + +#: ../libvips/foreign/vips2tiff.c:1486 +msgid "1 to 5 bands only" +msgstr "" + +#: ../libvips/foreign/foreign.c:384 +msgid "load and save image files" +msgstr "" + +#: ../libvips/foreign/foreign.c:525 ../libvips/mosaicing/im_remosaic.c:76 +#, c-format +msgid "file \"%s\" not found" +msgstr "" + +#: ../libvips/foreign/foreign.c:534 ../libvips/foreign/foreign.c:1022 +#, c-format +msgid "\"%s\" is not a known file format" +msgstr "" + +#: ../libvips/foreign/foreign.c:740 +msgid "images do not match" +msgstr "" + +#: ../libvips/foreign/foreign.c:826 +msgid "" +"VIPS_FOREIGN_PARTIAL and VIPS_FOREIGN_SEQUENTIAL both set -- using SEQUENTIAL" +msgstr "" + +#: ../libvips/foreign/foreign.c:894 +msgid "file loaders" +msgstr "" + +#: ../libvips/foreign/foreign.c:903 +msgid "Flags" +msgstr "" + +#: ../libvips/foreign/foreign.c:904 +msgid "Flags for this file" +msgstr "" + +#: ../libvips/foreign/foreign.c:910 +msgid "Disc" +msgstr "" + +#: ../libvips/foreign/foreign.c:911 +msgid "Open to disc" +msgstr "" + +#: ../libvips/foreign/foreign.c:917 +msgid "Sequential" +msgstr "" + +#: ../libvips/foreign/foreign.c:918 +msgid "Sequential read only" +msgstr "" + +#: ../libvips/foreign/foreign.c:1370 +msgid "file savers" +msgstr "" + +#: ../libvips/foreign/foreign.c:1380 +msgid "Image to save" +msgstr "" + +#: ../libvips/foreign/vipspng.c:245 +msgid "unsupported color type" +msgstr "" + +#: ../libvips/foreign/vipspng.c:621 +msgid "compress should be in [0,9]" +msgstr "" + +#: ../libvips/foreign/vipspng.c:714 +#, c-format +msgid "unable to write \"%s\"" +msgstr "" + +#: ../libvips/foreign/vipspng.c:813 +msgid "unable to write to buffer" +msgstr "" + +#: ../libvips/foreign/matlab.c:114 +#, c-format +msgid "no matrix variables in \"%s\"" +msgstr "" + +#: ../libvips/foreign/matlab.c:175 +#, c-format +msgid "unsupported rank %d\n" +msgstr "" + +#: ../libvips/foreign/matlab.c:188 +#, c-format +msgid "unsupported class type %d\n" +msgstr "" + +#: ../libvips/foreign/matlab.c:236 +msgid "Mat_VarReadDataAll failed" +msgstr "" + +#: ../libvips/freq_filt/im_fractsurf.c:72 +msgid "dimension should be in (2,3)" +msgstr "" + +#: ../libvips/freq_filt/im_freq_mask.c:108 +msgid "mask sizes power of 2 only" +msgstr "" + +#: ../libvips/freq_filt/im_freq_mask.c:155 +msgid "unimplemented mask type" +msgstr "" + +#: ../libvips/freq_filt/im_fwfft.c:125 ../libvips/freq_filt/im_fwfft.c:241 +#: ../libvips/freq_filt/im_invfftr.c:124 ../libvips/freq_filt/im_invfft.c:105 +msgid "unable to create transform plan" +msgstr "" + +#: ../libvips/freq_filt/im_fwfft.c:301 ../libvips/freq_filt/im_invfftr.c:145 +#: ../libvips/freq_filt/im_invfft.c:130 +msgid "vips configured without FFT support" +msgstr "" + +#: ../libvips/freq_filt/fmaskcir.c:158 ../libvips/freq_filt/fmaskcir.c:303 +#: ../libvips/freq_filt/fmaskcir.c:394 ../libvips/freq_filt/fmaskcir.c:476 +#: ../libvips/freq_filt/fmaskcir.c:556 +msgid "bad sizes" +msgstr "" + +#: ../libvips/freq_filt/fmaskcir.c:172 ../libvips/freq_filt/fmaskcir.c:228 +#: ../libvips/freq_filt/fmaskcir.c:242 ../libvips/freq_filt/fmaskcir.c:317 +#: ../libvips/freq_filt/fmaskcir.c:321 ../libvips/freq_filt/fmaskcir.c:408 +#: ../libvips/freq_filt/fmaskcir.c:412 ../libvips/freq_filt/fmaskcir.c:570 +#: ../libvips/freq_filt/fmaskcir.c:574 ../libvips/freq_filt/fmask4th.c:120 +#: ../libvips/freq_filt/fmask4th.c:129 ../libvips/freq_filt/fmask4th.c:163 +#: ../libvips/freq_filt/fmask4th.c:172 ../libvips/freq_filt/fmask4th.c:205 +#: ../libvips/freq_filt/fmask4th.c:214 ../libvips/freq_filt/fmask4th.c:252 +#: ../libvips/freq_filt/fmask4th.c:261 ../libvips/freq_filt/fmask4th.c:292 +#: ../libvips/freq_filt/fmask4th.c:301 ../libvips/freq_filt/fmask4th.c:333 +#: ../libvips/freq_filt/fmask4th.c:342 ../libvips/freq_filt/fmask4th.c:373 +#: ../libvips/freq_filt/fmask4th.c:387 ../libvips/freq_filt/fmask4th.c:423 +#: ../libvips/freq_filt/fmask4th.c:437 ../libvips/freq_filt/fmask4th.c:473 +#: ../libvips/freq_filt/fmask4th.c:487 ../libvips/freq_filt/fmask4th.c:527 +#: ../libvips/freq_filt/fmask4th.c:541 ../libvips/freq_filt/fmask4th.c:578 +#: ../libvips/freq_filt/fmask4th.c:592 ../libvips/freq_filt/fmask4th.c:629 +#: ../libvips/freq_filt/fmask4th.c:643 ../libvips/freq_filt/fmask4th.c:697 +msgid "bad args" +msgstr "" + +#: ../libvips/freq_filt/fmaskcir.c:490 +msgid "bad args (f)" +msgstr "" + +#: ../libvips/freq_filt/fmaskcir.c:494 +msgid "bad args (ac)" +msgstr "" + +#: ../libvips/freq_filt/fmaskcir.c:655 ../libvips/freq_filt/fmask4th.c:791 +msgid "unimplemented mask" +msgstr "" + +#: ../libvips/histograms_lut/im_buildlut.c:120 +msgid "x value not an int" +msgstr "" + +#: ../libvips/histograms_lut/im_buildlut.c:133 +msgid "x range too small" +msgstr "" + +#: ../libvips/histograms_lut/im_buildlut.c:278 +msgid "bad input matrix size" +msgstr "" + +#: ../libvips/histograms_lut/im_histnD.c:227 +#, c-format +msgid " bins out of range [1,%d]" +msgstr "" + +#: ../libvips/histograms_lut/im_stdif.c:186 +#: ../libvips/histograms_lut/im_lhisteq.c:159 +msgid "window too large" +msgstr "" + +#: ../libvips/histograms_lut/im_stdif.c:191 +#: ../libvips/histograms_lut/im_lhisteq.c:164 +msgid "window too small" +msgstr "" + +#: ../libvips/histograms_lut/im_invertlut.c:132 +msgid "element out of range [0,1]" +msgstr "" + +#: ../libvips/histograms_lut/im_invertlut.c:287 +msgid "bad input matrix" +msgstr "" + +#: ../libvips/histograms_lut/im_invertlut.c:292 +msgid "bad lut_size" +msgstr "" + +#: ../libvips/histograms_lut/tone.c:194 +msgid "bad in_max, out_max parameters" +msgstr "" + +#: ../libvips/histograms_lut/tone.c:199 +msgid "bad Lb, Lw parameters" +msgstr "" + +#: ../libvips/histograms_lut/tone.c:204 +msgid "Ps not in range [0.0,1.0]" +msgstr "" + +#: ../libvips/histograms_lut/tone.c:209 +msgid "Pm not in range [0.0,1.0]" +msgstr "" + +#: ../libvips/histograms_lut/tone.c:214 +msgid "Ph not in range [0.0,1.0]" +msgstr "" + +#: ../libvips/histograms_lut/tone.c:219 +msgid "S not in range [-30,+30]" +msgstr "" + +#: ../libvips/histograms_lut/tone.c:224 +msgid "M not in range [-30,+30]" +msgstr "" + +#: ../libvips/histograms_lut/tone.c:229 +msgid "H not in range [-30,+30]" +msgstr "" + +#: ../libvips/histograms_lut/im_identity.c:139 +#: ../libvips/other/im_make_xy.c:95 ../libvips/other/im_grey.c:101 +msgid "bad size" +msgstr "" + +#: ../libvips/histograms_lut/im_maplut.c:97 +#, c-format +msgid "%d overflows detected" +msgstr "" + +#: ../libvips/inplace/im_draw_line.c:389 +msgid "mask image not 1 band 8 bit uncoded" +msgstr "" + +#: ../libvips/inplace/im_draw_line.c:395 +msgid "ink image does not match in image" +msgstr "" + +#: ../libvips/inplace/im_draw_line.c:399 +msgid "ink image not 1x1 pixels" +msgstr "" + +#: ../libvips/iofuncs/operation.c:97 +msgid "input" +msgstr "" + +#: ../libvips/iofuncs/operation.c:97 +msgid "output" +msgstr "" + +#: ../libvips/iofuncs/operation.c:246 +msgid "operations" +msgstr "" + +#: ../libvips/iofuncs/operation.c:273 +msgid "usage:" +msgstr "" + +#: ../libvips/iofuncs/operation.c:287 ../libvips/iofuncs/object.c:1239 +#: ../libvips/resample/interpolate.c:615 +#, c-format +msgid "class \"%s\" not found" +msgstr "" + +#: ../libvips/iofuncs/operation.c:699 +#, c-format +msgid "unknown argument '%s'" +msgstr "" + +#: ../libvips/iofuncs/operation.c:810 +msgid "too few arguments" +msgstr "" + +#: ../libvips/iofuncs/operation.c:931 +msgid "too many arguments" +msgstr "" + +#: ../libvips/iofuncs/sinkdisc.c:121 +msgid "per-thread state for sinkdisc" +msgstr "" + +#: ../libvips/iofuncs/sinkdisc.c:236 ../libvips/iofuncs/sinkscreen.c:537 +#: ../libvips/iofuncs/threadpool.c:606 +msgid "unable to create thread" +msgstr "" + +#: ../libvips/iofuncs/sinkdisc.c:262 ../libvips/iofuncs/util.c:656 +msgid "write failed" +msgstr "" + +#: ../libvips/iofuncs/vips.c:286 +#, c-format +msgid "\"%s\" is not a VIPS image" +msgstr "" + +#: ../libvips/iofuncs/vips.c:374 +msgid "unable to read history" +msgstr "" + +#: ../libvips/iofuncs/vips.c:407 +msgid "more than a 10 megabytes of XML? sufferin' succotash!" +msgstr "" + +#: ../libvips/iofuncs/vips.c:455 +msgid "incorrect namespace in XML" +msgstr "" + +#: ../libvips/iofuncs/vips.c:579 +msgid "error transforming from save format" +msgstr "" + +#: ../libvips/iofuncs/vips.c:680 +#, c-format +msgid "unable to set property \"%s\" to value \"%s\"." +msgstr "" + +#: ../libvips/iofuncs/vips.c:728 +msgid "error transforming to save format" +msgstr "" + +#: ../libvips/iofuncs/vips.c:776 ../libvips/iofuncs/vips.c:973 +#: ../libvips/iofuncs/window.c:237 +msgid "file has been truncated" +msgstr "" + +#: ../libvips/iofuncs/vips.c:890 ../libvips/iofuncs/vips.c:899 +#: ../libvips/iofuncs/vips.c:922 +msgid "xml save error" +msgstr "" + +#: ../libvips/iofuncs/vips.c:959 +#, c-format +msgid "unable to read header for \"%s\"" +msgstr "" + +#: ../libvips/iofuncs/vips.c:972 ../libvips/iofuncs/window.c:236 +#, c-format +msgid "unable to read data for \"%s\", %s" +msgstr "" + +#: ../libvips/iofuncs/vips.c:984 +#, c-format +msgid "error reading XML: %s" +msgstr "" + +#: ../libvips/iofuncs/sinkscreen.c:185 +msgid "per-thread state for render" +msgstr "" + +#: ../libvips/iofuncs/sinkmemory.c:108 +msgid "per-thread state for sinkmemory" +msgstr "" + +#: ../libvips/iofuncs/header.c:210 +#, c-format +msgid "unknown band format %d" +msgstr "" + +#: ../libvips/iofuncs/header.c:611 ../libvips/iofuncs/generate.c:343 +msgid "too many images" +msgstr "" + +#: ../libvips/iofuncs/header.c:781 +#, c-format +msgid "field \"%s\" not found" +msgstr "" + +#: ../libvips/iofuncs/header.c:949 +#, c-format +msgid "field \"%s\" is of type %s, not %s" +msgstr "" + +#: ../libvips/iofuncs/image.c:293 +msgid "unable to close fd" +msgstr "" + +#: ../libvips/iofuncs/image.c:373 +#, c-format +msgid "%dx%d %s, %d band, %s" +msgid_plural "%dx%d %s, %d bands, %s" +msgstr[0] "" +msgstr[1] "" + +#: ../libvips/iofuncs/image.c:403 +#, c-format +msgid " %s, %d band, %s" +msgid_plural " %s, %d bands, %s" +msgstr[0] "" +msgstr[1] "" + +#: ../libvips/iofuncs/image.c:529 +#, c-format +msgid "%s %s: %d threads, %d x %d tiles, groups of %d scanlines" +msgstr "" + +#: ../libvips/iofuncs/image.c:542 +#, c-format +msgid "%s %s: %d%% complete" +msgstr "" + +#. Spaces at end help to erase the %complete message we overwrite. +#. +#: ../libvips/iofuncs/image.c:559 +#, c-format +msgid "%s %s: done in %ds \n" +msgstr "" + +#: ../libvips/iofuncs/image.c:738 +#, c-format +msgid "unable to open \"%s\", file too short" +msgstr "" + +#: ../libvips/iofuncs/image.c:748 +#, c-format +msgid "%s is longer than expected" +msgstr "" + +#: ../libvips/iofuncs/image.c:765 +#, c-format +msgid "bad mode \"%s\"" +msgstr "" + +#: ../libvips/iofuncs/image.c:820 +msgid "image class" +msgstr "" + +#: ../libvips/iofuncs/image.c:916 +msgid "Image filename" +msgstr "" + +#: ../libvips/iofuncs/image.c:922 +msgid "Mode" +msgstr "" + +#: ../libvips/iofuncs/image.c:923 +msgid "Open mode" +msgstr "" + +#: ../libvips/iofuncs/image.c:929 +msgid "Kill" +msgstr "" + +#: ../libvips/iofuncs/image.c:930 +msgid "Block evaluation on this image" +msgstr "" + +#: ../libvips/iofuncs/image.c:936 +msgid "Demand style" +msgstr "" + +#: ../libvips/iofuncs/image.c:937 +msgid "Preferred demand style for this image" +msgstr "" + +#: ../libvips/iofuncs/image.c:950 +msgid "Foreign buffer" +msgstr "" + +#: ../libvips/iofuncs/image.c:951 +msgid "Pointer to foreign pixels" +msgstr "" + +#: ../libvips/iofuncs/image.c:1215 +#, c-format +msgid "killed for image \"%s\"" +msgstr "" + +#: ../libvips/iofuncs/image.c:1815 +msgid "bad image descriptor" +msgstr "" + +#: ../libvips/iofuncs/image.c:1873 ../libvips/iofuncs/generate.c:682 +#, c-format +msgid "unable to output to a %s image" +msgstr "" + +#: ../libvips/iofuncs/image.c:1917 +#, c-format +msgid "auto-rewind for %s failed" +msgstr "" + +#: ../libvips/iofuncs/image.c:1973 ../libvips/iofuncs/image.c:2168 +#: ../libvips/iofuncs/image.c:2185 +msgid "no image data" +msgstr "" + +#: ../libvips/iofuncs/image.c:2041 ../libvips/iofuncs/image.c:2208 +msgid "image not readable" +msgstr "" + +#: ../libvips/iofuncs/image.c:2062 ../libvips/iofuncs/image.c:2238 +#: ../libvips/iofuncs/image.c:2247 +msgid "image already written" +msgstr "" + +#: ../libvips/iofuncs/image.c:2086 ../libvips/iofuncs/image.c:2259 +msgid "image not writeable" +msgstr "" + +#: ../libvips/iofuncs/image.c:2132 +msgid "bad file type" +msgstr "" + +#: ../libvips/iofuncs/region.c:212 +#, c-format +msgid "start function failed for image %s" +msgstr "" + +#: ../libvips/iofuncs/region.c:528 ../libvips/iofuncs/region.c:598 +#: ../libvips/iofuncs/region.c:745 ../libvips/iofuncs/region.c:1241 +msgid "valid clipped to nothing" +msgstr "" + +#: ../libvips/iofuncs/region.c:642 +msgid "bad image type" +msgstr "" + +#: ../libvips/iofuncs/region.c:687 +msgid "no pixel data on attached image" +msgstr "" + +#: ../libvips/iofuncs/region.c:693 +msgid "images do not match in pixel size" +msgstr "" + +#: ../libvips/iofuncs/region.c:726 ../libvips/iofuncs/region.c:1223 +msgid "dest too small" +msgstr "" + +#: ../libvips/iofuncs/region.c:813 +msgid "bad position" +msgstr "" + +#: ../libvips/iofuncs/region.c:1102 ../libvips/iofuncs/region.c:1294 +#, c-format +msgid "unable to input from a %s image" +msgstr "" + +#: ../libvips/iofuncs/region.c:1126 +msgid "incomplete header" +msgstr "" + +#: ../libvips/iofuncs/region.c:1197 +msgid "inappropriate region type" +msgstr "" + +#: ../libvips/iofuncs/sink.c:105 +#, c-format +msgid "stop function failed for image \"%s\"" +msgstr "" + +#: ../libvips/iofuncs/sink.c:142 +#, c-format +msgid "start function failed for image \"%s\"" +msgstr "" + +#: ../libvips/iofuncs/sink.c:175 +msgid "per-thread state for sink" +msgstr "" + +#: ../libvips/iofuncs/error.c:210 +msgid "windows error" +msgstr "" + +#: ../libvips/iofuncs/error.c:219 +msgid "unix error" +msgstr "" + +#: ../libvips/iofuncs/error.c:304 ../libvips/iofuncs/error.c:305 +#: ../libvips/iofuncs/error.c:354 ../libvips/iofuncs/error.c:355 +#, c-format +msgid "%s: " +msgstr "" + +#: ../libvips/iofuncs/error.c:304 +msgid "vips diagnostic" +msgstr "" + +#: ../libvips/iofuncs/error.c:354 +msgid "vips warning" +msgstr "" + +#: ../libvips/iofuncs/error.c:438 +msgid "image must be uncoded" +msgstr "" + +#: ../libvips/iofuncs/error.c:466 +msgid "image coding must be NONE or LABQ" +msgstr "" + +#: ../libvips/iofuncs/error.c:494 +msgid "unknown image coding" +msgstr "" + +#: ../libvips/iofuncs/error.c:520 +msgid "Radiance coding only" +msgstr "" + +#: ../libvips/iofuncs/error.c:546 +msgid "LABQ coding only" +msgstr "" + +#: ../libvips/iofuncs/error.c:570 +msgid "image must one band" +msgstr "" + +#: ../libvips/iofuncs/error.c:595 +#, c-format +msgid "image must have %d bands" +msgstr "" + +#: ../libvips/iofuncs/error.c:620 +msgid "image must have one or three bands" +msgstr "" + +#: ../libvips/iofuncs/error.c:648 +msgid "images must have the same number of bands, or one must be single-band" +msgstr "" + +#: ../libvips/iofuncs/error.c:675 +#, c-format +msgid "image must have 1 or %d bands" +msgstr "" + +#: ../libvips/iofuncs/error.c:699 +msgid "image must be non-complex" +msgstr "" + +#: ../libvips/iofuncs/error.c:723 +msgid "image must be complex" +msgstr "" + +#: ../libvips/iofuncs/error.c:749 +#, c-format +msgid "image must be %s" +msgstr "" + +#: ../libvips/iofuncs/error.c:774 +msgid "image must be integer" +msgstr "" + +#: ../libvips/iofuncs/error.c:799 +msgid "image must be unsigned integer" +msgstr "" + +#: ../libvips/iofuncs/error.c:827 +msgid "image must be 8- or 16-bit integer, signed or unsigned" +msgstr "" + +#: ../libvips/iofuncs/error.c:854 +msgid "image must be 8- or 16-bit unsigned integer" +msgstr "" + +#: ../libvips/iofuncs/error.c:880 +msgid "image must be 8- or 16-bit unsigned integer, or float" +msgstr "" + +#: ../libvips/iofuncs/error.c:908 +msgid "image must be unsigned int or float" +msgstr "" + +#: ../libvips/iofuncs/error.c:933 +msgid "images must match in size" +msgstr "" + +#: ../libvips/iofuncs/error.c:959 +msgid "images must have the same number of bands" +msgstr "" + +#: ../libvips/iofuncs/error.c:1013 +msgid "images must have the same band format" +msgstr "" + +#: ../libvips/iofuncs/error.c:1039 +msgid "images must have the same coding" +msgstr "" + +#: ../libvips/iofuncs/error.c:1064 +#, c-format +msgid "vector must have 1 or %d elements" +msgstr "" + +#: ../libvips/iofuncs/error.c:1089 +msgid "histograms must have width or height 1" +msgstr "" + +#: ../libvips/iofuncs/error.c:1094 +msgid "histograms must have not have more than 65536 elements" +msgstr "" + +#: ../libvips/iofuncs/error.c:1123 ../libvips/iofuncs/error.c:1151 +msgid "nonsense mask parameters" +msgstr "" + +#: ../libvips/iofuncs/error.c:1176 +msgid "mask must be 1D" +msgstr "" + +#: ../libvips/iofuncs/util.c:639 +msgid "unable to get file stats" +msgstr "" + +#: ../libvips/iofuncs/util.c:720 +#, c-format +msgid "unable to open file \"%s\" for reading" +msgstr "" + +#: ../libvips/iofuncs/util.c:742 +#, c-format +msgid "unable to open file \"%s\" for writing" +msgstr "" + +#: ../libvips/iofuncs/util.c:767 +#, c-format +msgid "\"%s\" too long" +msgstr "" + +#: ../libvips/iofuncs/util.c:784 +msgid "out of memory" +msgstr "" + +#: ../libvips/iofuncs/util.c:810 +#, c-format +msgid "error reading from file \"%s\"" +msgstr "" + +#: ../libvips/iofuncs/util.c:857 +#, c-format +msgid "write error (%zd out of %zd blocks written) ... disc full?" +msgstr "" + +#: ../libvips/iofuncs/util.c:1106 ../libvips/iofuncs/util.c:1113 +msgid "unable to truncate" +msgstr "" + +#: ../libvips/iofuncs/util.c:1297 +msgid "unexpected end of string" +msgstr "" + +#: ../libvips/iofuncs/util.c:1315 +#, c-format +msgid "expected %s, saw %s" +msgstr "" + +#: ../libvips/iofuncs/util.c:1485 +#, c-format +msgid "unable to make temporary file %s" +msgstr "" + +#. File length unit. +#. +#: ../libvips/iofuncs/buf.c:520 +msgid "bytes" +msgstr "" + +#. Kilo byte unit. +#. +#: ../libvips/iofuncs/buf.c:524 +msgid "KB" +msgstr "" + +#. Mega byte unit. +#. +#: ../libvips/iofuncs/buf.c:528 +msgid "MB" +msgstr "" + +#. Giga byte unit. +#. +#: ../libvips/iofuncs/buf.c:532 +msgid "GB" +msgstr "" + +#. Tera byte unit. +#. +#: ../libvips/iofuncs/buf.c:536 +msgid "TB" +msgstr "" + +#: ../libvips/iofuncs/base64.c:170 +msgid "too little data" +msgstr "" + +#. We shouldn't really be used for large amounts of data. +#. +#: ../libvips/iofuncs/base64.c:176 ../libvips/iofuncs/base64.c:241 +msgid "too much data" +msgstr "" + +#: ../libvips/iofuncs/generate.c:606 +msgid "demand hint not set" +msgstr "" + +#: ../libvips/iofuncs/generate.c:625 ../libvips/iofuncs/generate.c:650 +msgid "generate() called twice" +msgstr "" + +#: ../libvips/iofuncs/mapfile.c:130 ../libvips/iofuncs/mapfile.c:297 +msgid "unable to CreateFileMapping" +msgstr "" + +#: ../libvips/iofuncs/mapfile.c:138 ../libvips/iofuncs/mapfile.c:309 +msgid "unable to MapViewOfFile" +msgstr "" + +#: ../libvips/iofuncs/mapfile.c:178 +msgid "unable to mmap" +msgstr "" + +#: ../libvips/iofuncs/mapfile.c:179 +#, c-format +msgid "" +"map failed (%s), running very low on system resources, expect a crash soon" +msgstr "" + +#: ../libvips/iofuncs/mapfile.c:196 ../libvips/iofuncs/mapfile.c:303 +msgid "unable to UnmapViewOfFile" +msgstr "" + +#: ../libvips/iofuncs/mapfile.c:202 +msgid "unable to munmap file" +msgstr "" + +#: ../libvips/iofuncs/mapfile.c:224 +msgid "file is less than 64 bytes" +msgstr "" + +#: ../libvips/iofuncs/mapfile.c:229 ../libvips/iofuncs/mapfile.c:263 +msgid "unable to get file status" +msgstr "" + +#: ../libvips/iofuncs/mapfile.c:235 +msgid "not a regular file" +msgstr "" + +#: ../libvips/iofuncs/mapfile.c:269 +msgid "unable to read data" +msgstr "" + +#: ../libvips/iofuncs/mapfile.c:329 +#, c-format +msgid "unable to mmap: \"%s\" - %s" +msgstr "" + +#: ../libvips/iofuncs/mapfile.c:339 +#, c-format +msgid "unable to mmap \"%s\" to same address" +msgstr "" + +#: ../libvips/iofuncs/init.c:366 +msgid "evaluate with N concurrent threads" +msgstr "" + +#: ../libvips/iofuncs/init.c:369 +msgid "set tile width to N (DEBUG)" +msgstr "" + +#: ../libvips/iofuncs/init.c:372 +msgid "set tile height to N (DEBUG)" +msgstr "" + +#: ../libvips/iofuncs/init.c:375 +msgid "set thinstrip height to N (DEBUG)" +msgstr "" + +#: ../libvips/iofuncs/init.c:378 +msgid "set fatstrip height to N (DEBUG)" +msgstr "" + +#: ../libvips/iofuncs/init.c:381 +msgid "show progress feedback" +msgstr "" + +#: ../libvips/iofuncs/init.c:384 +msgid "leak-check on exit" +msgstr "" + +#: ../libvips/iofuncs/init.c:387 +msgid "images larger than N are decompressed to disc" +msgstr "" + +#: ../libvips/iofuncs/init.c:390 +msgid "disable vectorised versions of operations" +msgstr "" + +#: ../libvips/iofuncs/init.c:393 +msgid "cache at most N operations" +msgstr "" + +#: ../libvips/iofuncs/init.c:396 +msgid "cache at most N bytes in memory" +msgstr "" + +#: ../libvips/iofuncs/init.c:399 +msgid "allow at most N open files" +msgstr "" + +#: ../libvips/iofuncs/init.c:402 +msgid "trace operation cache" +msgstr "" + +#: ../libvips/iofuncs/init.c:405 +msgid "dump operation cache on exit" +msgstr "" + +#: ../libvips/iofuncs/init.c:428 +msgid "VIPS Options" +msgstr "" + +#: ../libvips/iofuncs/init.c:428 +msgid "Show VIPS options" +msgstr "" + +#: ../libvips/iofuncs/object.c:148 +#, c-format +msgid "parameter %s not set" +msgstr "" + +#: ../libvips/iofuncs/object.c:500 +#, c-format +msgid "no property named `%s'" +msgstr "" + +#: ../libvips/iofuncs/object.c:508 +#, c-format +msgid "no vips argument named `%s'" +msgstr "" + +#: ../libvips/iofuncs/object.c:515 +#, c-format +msgid "argument `%s' has no instance" +msgstr "" + +#: ../libvips/iofuncs/object.c:1288 +msgid "base class" +msgstr "" + +#: ../libvips/iofuncs/object.c:1302 +msgid "Nickname" +msgstr "" + +#: ../libvips/iofuncs/object.c:1303 +msgid "Class nickname" +msgstr "" + +#: ../libvips/iofuncs/object.c:1309 +msgid "Description" +msgstr "" + +#: ../libvips/iofuncs/object.c:1310 +msgid "Class description" +msgstr "" + +#: ../libvips/iofuncs/object.c:1537 +#, c-format +msgid "enum '%s' has no member '%s'" +msgstr "" + +#: ../libvips/iofuncs/object.c:1797 +#, c-format +msgid "unable to set '%s'" +msgstr "" + +#: ../libvips/iofuncs/object.c:1805 +msgid "not , or ) after parameter" +msgstr "" + +#: ../libvips/iofuncs/object.c:1812 +msgid "extra tokens after ')'" +msgstr "" + +#: ../libvips/iofuncs/threadpool.c:217 +#, c-format +msgid "threads clipped to %d" +msgstr "" + +#: ../libvips/iofuncs/threadpool.c:281 +msgid "per-thread state for vipsthreadpool" +msgstr "" + +#: ../libvips/iofuncs/memory.c:231 +msgid "vips_free: too many frees" +msgstr "" + +#: ../libvips/iofuncs/memory.c:235 +msgid "vips_free: too much free" +msgstr "" + +#: ../libvips/iofuncs/memory.c:295 ../libvips/iofuncs/memory.c:298 +#, c-format +msgid "out of memory --- size == %dMB" +msgstr "" + +#: ../libvips/morphology/im_cntlines.c:81 +msgid "flag should be 0 (horizontal) or 1 (vertical)" +msgstr "" + +#: ../libvips/morphology/im_profile.c:104 +msgid "dir not 0 or 1" +msgstr "" + +#: ../libvips/morphology/im_rank_image.c:303 +msgid "zero input images!" +msgstr "" + +#: ../libvips/morphology/im_rank_image.c:308 +#, c-format +msgid "index should be in range 0 - %d" +msgstr "" + +#: ../libvips/morphology/morphology.c:311 +#, c-format +msgid "bad mask element (%d should be 0, 128 or 255)" +msgstr "" + +#: ../libvips/morphology/im_zerox.c:141 +msgid "flag not -1 or 1" +msgstr "" + +#: ../libvips/morphology/im_zerox.c:145 +msgid "image too narrow" +msgstr "" + +#: ../libvips/morphology/im_rank.c:365 +msgid "image too small for window" +msgstr "" + +#: ../libvips/mosaicing/im_clinear.c:136 +msgid "im_invmat failed" +msgstr "" + +#: ../libvips/mosaicing/im_tbmosaic.c:89 +#: ../libvips/mosaicing/im_lrmosaic.c:113 +msgid "bad area parameters" +msgstr "" + +#: ../libvips/mosaicing/im_tbmosaic.c:110 +#: ../libvips/mosaicing/im_lrmosaic.c:134 +msgid "overlap too small for search" +msgstr "" + +#: ../libvips/mosaicing/im_tbmosaic.c:143 +#: ../libvips/mosaicing/im_lrmosaic.c:167 +msgid "unknown Coding type" +msgstr "" + +#: ../libvips/mosaicing/im_tbmerge.c:163 ../libvips/mosaicing/im_tbmerge.c:217 +#: ../libvips/mosaicing/im_tbmerge.c:535 ../libvips/mosaicing/im_lrmerge.c:213 +#: ../libvips/mosaicing/im_lrmerge.c:262 ../libvips/mosaicing/im_lrmerge.c:603 +msgid "internal error" +msgstr "" + +#: ../libvips/mosaicing/im_tbmerge.c:634 ../libvips/mosaicing/im_lrmerge.c:803 +#: ../libvips/resample/im_affine.c:469 +msgid "unknown coding type" +msgstr "" + +#: ../libvips/mosaicing/im_tbmerge.c:652 ../libvips/mosaicing/im_lrmerge.c:820 +msgid "too much overlap" +msgstr "" + +#: ../libvips/mosaicing/global_balance.c:145 +msgid "no matching '>'" +msgstr "" + +#: ../libvips/mosaicing/global_balance.c:154 +msgid "too many items" +msgstr "" + +#: ../libvips/mosaicing/global_balance.c:448 +msgid "circularity detected" +msgstr "" + +#: ../libvips/mosaicing/global_balance.c:482 +#: ../libvips/mosaicing/global_balance.c:538 +#, c-format +msgid "image \"%s\" used twice as output" +msgstr "" + +#: ../libvips/mosaicing/global_balance.c:587 +msgid "bad number of args in join line" +msgstr "" + +#: ../libvips/mosaicing/global_balance.c:629 +msgid "bad number of args in join1 line" +msgstr "" + +#: ../libvips/mosaicing/global_balance.c:665 +msgid "bad number of args in copy line" +msgstr "" + +#: ../libvips/mosaicing/global_balance.c:723 +msgid "" +"mosaic root not found in desc file\n" +"is this really a mosaiced image?" +msgstr "" + +#: ../libvips/mosaicing/global_balance.c:734 +msgid "more than one root" +msgstr "" + +#: ../libvips/mosaicing/global_balance.c:1053 +msgid "empty overlap!" +msgstr "" + +#: ../libvips/mosaicing/im_lrmerge.c:703 +msgid "mwidth must be -1 or >= 0" +msgstr "" + +#: ../libvips/mosaicing/im_lrmerge.c:732 +msgid "no overlap" +msgstr "" + +#: ../libvips/mosaicing/im_avgdxdy.c:64 +msgid "no points to average" +msgstr "" + +#: ../libvips/mosaicing/im_lrcalcon.c:203 +msgid "overlap too small for your search size" +msgstr "" + +#: ../libvips/mosaicing/im_lrcalcon.c:242 +#, c-format +msgid "found %d tie-points, need at least %d" +msgstr "" + +#: ../libvips/mosaicing/im_lrcalcon.c:287 +msgid "not 1-band uchar image" +msgstr "" + +#: ../libvips/mosaicing/im_chkpair.c:200 +msgid "inputs incompatible" +msgstr "" + +#: ../libvips/mosaicing/im_chkpair.c:204 +#: ../libvips/mosaicing/im_tbcalcon.c:102 +msgid "help!" +msgstr "" + +#: ../libvips/mosaicing/im_remosaic.c:104 +#, c-format +msgid "substitute image \"%s\" is not the same size as \"%s\"" +msgstr "" + +#: ../libvips/mosaicing/im_tbcalcon.c:116 +msgid "overlap too small" +msgstr "" + +#: ../libvips/other/im_sines.c:88 +msgid "wrong sizes" +msgstr "" + +#: ../libvips/other/im_sines.c:101 +msgid "calloc failed" +msgstr "" + +#: ../libvips/other/im_zone.c:80 +msgid "size must be even and positive" +msgstr "" + +#: ../libvips/other/im_eye.c:83 +msgid "factor should be in [1,0)" +msgstr "" + +#: ../libvips/resample/im_shrink.c:359 +msgid "shrink factors should be >= 1" +msgstr "" + +#: ../libvips/resample/im_affine.c:410 +msgid "output coordinates out of range" +msgstr "" + +#: ../libvips/resample/im_rightshift_size.c:120 +msgid "shift by zero: falling back to im_copy" +msgstr "" + +#: ../libvips/resample/im_rightshift_size.c:124 +msgid "would result in zero size output image" +msgstr "" + +#: ../libvips/resample/im_rightshift_size.c:132 +msgid "image and band_fmt must match in sign" +msgstr "" + +#: ../libvips/resample/interpolate.c:180 +msgid "VIPS interpolators" +msgstr "" + +#: ../libvips/resample/interpolate.c:361 +msgid "Nearest-neighbour interpolation" +msgstr "" + +#: ../libvips/resample/interpolate.c:532 +msgid "Bilinear interpolation" +msgstr "" + +#: ../libvips/video/im_video_test.c:51 +msgid "error requested" +msgstr "" + +#: ../libvips/video/im_video_v4l1.c:241 +msgid "no file descriptor" +msgstr "" + +#: ../libvips/video/im_video_v4l1.c:246 +#, c-format +msgid "ioctl(0x%x) failed: %s" +msgstr "" + +#: ../libvips/video/im_video_v4l1.c:295 +#, c-format +msgid "cannot open video device \"%s\"" +msgstr "" + +#: ../libvips/video/im_video_v4l1.c:303 +msgid "cannot get video capability" +msgstr "" + +#: ../libvips/video/im_video_v4l1.c:312 +msgid "card cannot capture to memory" +msgstr "" + +#: ../libvips/video/im_video_v4l1.c:458 +msgid "unable to map memory" +msgstr "" + +#: ../libvips/video/im_video_v4l1.c:470 +#, c-format +msgid "channel not between 0 and %d" +msgstr "" + +#: ../libvips/video/im_video_v4l1.c:698 +msgid "compiled without im_video_v4l1 support" +msgstr "" + +#: ../tools/edvips.c:82 +msgid "tag file as big or little-endian" +msgstr "" + +#: ../tools/edvips.c:84 +msgid "set width to N pixels" +msgstr "" + +#: ../tools/edvips.c:86 +msgid "set height to N pixels" +msgstr "" + +#: ../tools/edvips.c:88 +msgid "set Bands to N" +msgstr "" + +#: ../tools/edvips.c:90 +msgid "set BandFmt to F (eg. uchar, float)" +msgstr "" + +#: ../tools/edvips.c:92 +msgid "set interpretation to I (eg. xyz)" +msgstr "" + +#: ../tools/edvips.c:94 +msgid "set Coding to C (eg. labq)" +msgstr "" + +#: ../tools/edvips.c:96 +msgid "set Xres to R pixels/mm" +msgstr "" + +#: ../tools/edvips.c:98 +msgid "set Yres to R pixels/mm" +msgstr "" + +#: ../tools/edvips.c:100 +msgid "set Xoffset to N pixels" +msgstr "" + +#: ../tools/edvips.c:102 +msgid "set Yoffset to N pixels" +msgstr "" + +#: ../tools/edvips.c:104 +msgid "replace extension block with stdin" +msgstr "" + +#: ../tools/edvips.c:106 +msgid "set Xsize to N (deprecated, use width)" +msgstr "" + +#: ../tools/edvips.c:108 +msgid "set Ysize to N (deprecated, use height)" +msgstr "" + +#: ../tools/edvips.c:110 +msgid "set Type to T (deprecated, use interpretation)" +msgstr "" + +#: ../tools/edvips.c:121 +#, c-format +msgid "'%s' is not a positive integer" +msgstr "" + +#: ../tools/edvips.c:133 +msgid "unable to start VIPS" +msgstr "" + +#: ../tools/edvips.c:138 +msgid "vipsfile - edit vipsfile header" +msgstr "" + +#: ../tools/edvips.c:150 +#, c-format +msgid "usage: %s [OPTION...] vipsfile\n" +msgstr "" + +#: ../tools/edvips.c:157 +#, c-format +msgid "could not open image %s" +msgstr "" + +#: ../tools/edvips.c:160 +#, c-format +msgid "could not read VIPS header for %s" +msgstr "" + +#: ../tools/edvips.c:169 +#, c-format +msgid "bad endian-ness %s, should be 'big' or 'little'" +msgstr "" + +#: ../tools/edvips.c:182 +#, c-format +msgid "bad format %s" +msgstr "" + +#: ../tools/edvips.c:190 +#, c-format +msgid "bad interpretation %s" +msgstr "" + +#: ../tools/edvips.c:198 +#, c-format +msgid "bad coding %s" +msgstr "" + +#: ../tools/edvips.c:211 +#, c-format +msgid "could not seek on %s" +msgstr "" + +#: ../tools/edvips.c:214 +#, c-format +msgid "could not write to %s" +msgstr "" + +#: ../tools/edvips.c:221 +msgid "could not get ext data" +msgstr "" + +#: ../tools/edvips.c:230 +msgid "could not set extension" +msgstr "" + +#: ../tools/find_mosaic.c:112 ../tools/find_mosaic.c:122 +#: ../tools/find_mosaic.c:144 ../tools/find_mosaic.c:154 +#: ../tools/find_mosaic.c:163 ../tools/find_mosaic.c:184 +#: ../tools/find_mosaic.c:194 ../tools/find_mosaic.c:203 +#: ../tools/mergeup.c:238 ../tools/mergeup.c:248 ../tools/mergeup.c:270 +#: ../tools/mergeup.c:280 ../tools/mergeup.c:289 ../tools/mergeup.c:310 +#: ../tools/mergeup.c:320 ../tools/mergeup.c:329 +#, c-format +msgid "bad file name format '%s'" +msgstr "" + +#: ../tools/header.c:85 +msgid "show all fields" +msgstr "" + +#: ../tools/header.c:87 +msgid "" +"print value of FIELD (\"getext\" reads extension block, \"Hist\" reads image " +"history)" +msgstr "" + +#: ../tools/header.c:210 +msgid "- print image header" +msgstr "" + +#: ../tools/mergeup.c:381 +msgid "allocation failure in mergeup" +msgstr "" + +#: ../tools/mergeup.c:391 +msgid "Need more than one image" +msgstr "" + +#: ../tools/vips.c:101 +msgid "load PLUGIN" +msgstr "" + +#: ../tools/vips.c:102 +msgid "PLUGIN" +msgstr "" + +#: ../tools/vips.c:104 +msgid "print version" +msgstr "" + +#: ../tools/vips.c:147 +#, c-format +msgid "no package or function \"%s\"" +msgstr "" + +#: ../tools/vips.c:917 +msgid "list classes|packages|all|package-name|operation-name" +msgstr "" + +#: ../tools/vips.c:919 +msgid "generate headers for C++ binding" +msgstr "" + +#: ../tools/vips.c:921 +msgid "generate bodies for C++ binding" +msgstr "" + +#: ../tools/vips.c:923 +msgid "generate links for vips/bin" +msgstr "" + +#: ../tools/vips.c:1043 +msgid "[ACTION] [OPTIONS] [PARAMETERS] - VIPS driver program" +msgstr "" + +#: ../tools/vips.c:1111 +msgid "possible actions:\n" +msgstr "" + +#: ../tools/vips.c:1116 +msgid "execute named vips operation" +msgstr "" + +#: ../tools/vips.c:1118 +#, c-format +msgid "unknown action \"%s\"" +msgstr "" + +#: ../tools/vipsthumbnail.c:54 +msgid "set thumbnail size to SIZE" +msgstr "" + +#: ../tools/vipsthumbnail.c:55 +msgid "SIZE" +msgstr "" + +#: ../tools/vipsthumbnail.c:57 +msgid "set output to FORMAT" +msgstr "" + +#: ../tools/vipsthumbnail.c:58 +msgid "FORMAT" +msgstr "" + +#: ../tools/vipsthumbnail.c:60 +msgid "resample with INTERPOLATOR" +msgstr "" + +#: ../tools/vipsthumbnail.c:61 +msgid "INTERPOLATOR" +msgstr "" + +#: ../tools/vipsthumbnail.c:63 +msgid "don't sharpen thumbnail" +msgstr "" + +#: ../tools/vipsthumbnail.c:65 +msgid "export with PROFILE" +msgstr "" + +#: ../tools/vipsthumbnail.c:66 ../tools/vipsthumbnail.c:69 +msgid "PROFILE" +msgstr "" + +#: ../tools/vipsthumbnail.c:68 +msgid "import untagged images with PROFILE" +msgstr "" + +#: ../tools/vipsthumbnail.c:71 +msgid "don't delete profile from exported image" +msgstr "" + +#: ../tools/vipsthumbnail.c:73 +msgid "verbose output" +msgstr "" + +#: ../tools/vipsthumbnail.c:412 +msgid "- thumbnail generator" +msgstr "" + +#: ../libvips/resample/vsqbs.cpp:400 +msgid "B-Splines with antialiasing smoothing" +msgstr "" + +#: ../libvips/resample/nohalo.cpp:1577 +msgid "Edge sharpening resampler with halo reduction" +msgstr "" + +#: ../libvips/resample/lbb.cpp:861 +msgid "Reduced halo bicubic" +msgstr "" + +#: ../libvips/resample/bicubic.cpp:430 +msgid "Bicubic interpolation (Catmull-Rom)" +msgstr ""