Commit Graph

1085 Commits

Author SHA1 Message Date
John Cupitt
8f47c75a85 tiff uses vipdbuf 2017-02-28 16:44:12 +00:00
John Cupitt
f2a178e98f move buf writers on top of dbuf
tiff and webp not moved
2017-02-28 13:40:34 +00:00
John Cupitt
40294bb85c started png and jpg with dbuf
rad and webp still to do, maybe tiff
2017-02-27 22:06:22 +00:00
John Cupitt
e1b9c789cb add dbuf object
dynamically expanding buffer

also, escape "<>& appropriately when we write xml
2017-02-26 17:37:46 +00:00
John Cupitt
5614330cc4 remove libxml from xml save
just some printfs now
2017-02-25 18:10:42 +00:00
John Cupitt
134ce0560c use expat for xml read
we were using libxml for xml load, use expat instead, we get it for free
with glib
2017-02-25 13:07:43 +00:00
John Cupitt
a4d3c2a754 more UNBUF fixes
try to keep compat better, remove the single-thread-first-tile idea
2017-02-21 16:53:48 +00:00
John Cupitt
959f412380 remove stalling 2017-02-21 15:03:15 +00:00
John Cupitt
36761bcfd7 make vips_gaussnoise() pixels reproducible
previously, pixel values were regenerated on every calculation, so they
changed on recomputation

pixel values are now generated from the pixel (x, y) coordinate plus a per-call
seed

thanks MvGulik, see

https://github.com/jcupitt/nip2/issues/60

https://github.com/jcupitt/libvips/issues/583
2017-01-24 09:36:25 +00:00
John Cupitt
79c21dfcf8 seems to be done! 2017-01-18 14:39:27 +00:00
John Cupitt
c464503510 Merge branch 'master' into invalidate-on-load-error 2017-01-17 13:47:14 +00:00
John Cupitt
fb88d037fc Merge branch 'master' into add-thumbnail-geometry 2017-01-17 11:51:10 +00:00
John Cupitt
f302bd6570 all working! 2017-01-12 14:06:54 +00:00
John Cupitt
3d216da8c9 rename recomp as reorder 2017-01-12 09:15:10 +00:00
John Cupitt
d1ef5a6890 compiles, needs more testing 2017-01-11 14:05:50 +00:00
John Cupitt
c5e675f7db fix --vips-cache-max etc.
--vips-cache-max, --vips-cache-max-memory and --vips-cache-max-files were not
working and probably hadn't been for a while

vipsthumbnail.c turns off the operation cache, it's not useful for
the same operation repeated across many files
2017-01-10 14:12:24 +00:00
John Cupitt
2fa3736722 all done, I think 2017-01-06 13:43:43 +00:00
John Cupitt
784c7c0669 don't enable structured logging by default 2017-01-04 14:53:45 +00:00
John Cupitt
0c4a40e82f oop missed a merge conflict 2017-01-04 10:18:54 +00:00
John Cupitt
262d5a10f7 Merge branch 'master' into glib-logging 2017-01-04 10:13:06 +00:00
John Cupitt
07e6ac1994 support --vips-info
now turns on glib g_info() output
2017-01-04 07:23:50 +00:00
John Cupitt
e7a6ea3d0c oops! revert previous 2017-01-03 17:12:42 +00:00
John Cupitt
0d97c78f02 compat macro for early glibs 2017-01-03 17:06:50 +00:00
John Cupitt
2be0b97dce switch to g_warning()_/g_info()
we had vips_warn() and vips_info(), but they are a bit crappy ... switch
to g_warning() and g_info() instead

see https://github.com/jcupitt/libvips/issues/544
2017-01-03 15:52:27 +00:00
John Cupitt
c31f4ec2d7 add VIPS_SONAME etc.
helps check ABI and php-vips-ext lock the right library
2016-12-31 17:58:33 +00:00
John Cupitt
25dd60c781 add tests
all done, I think
2016-11-23 17:20:04 +00:00
John Cupitt
bba1aba4b6 don't clear meta before creating a pipeline
vips__image_copy_fields_array() used to wipe meta on the output before
merging the input images. This broke foreign.c in some cases, since it
likes setting some meta on the output before calling the subclass
loaders, and they sometimes call write().

see https://github.com/jcupitt/ruby-vips/issues/93
2016-11-22 18:04:58 +00:00
John Cupitt
85be55fe4f add vips_image_get_fields()
helps bindings (which struglle with vips_image_map()) get a list of
header fields

works from py, but not ruby, I guess gchar** isn't a supported type for
ruby-gnome

see https://github.com/jcupitt/libvips/issues/533
2016-11-12 16:37:13 +00:00
John Cupitt
bb0a6643f9 move @fail from jpegload into the base load class
and add fail support to csv and openslide

see https://github.com/jcupitt/libvips/issues/546
2016-11-12 15:33:35 +00:00
John Cupitt
d4b4eb44a3 works! 2016-11-02 11:07:30 +00:00
John Cupitt
3f1f950bff add vips_image_hasalpha() 2016-10-31 11:14:27 +00:00
John Cupitt
e715c62e27 Merge branch '8.4' 2016-10-28 16:51:43 +01:00
John Cupitt
a7edd235c4 improve compat with ancient glibs
and fix a tiny threading leak
2016-10-28 16:25:31 +01:00
John Cupitt
ca7b51fb9e revise header get/set
rework header.c

- built-in enum fields, like "interpretation" are handled as enums, not
  ints
- vips_image_get_*() functions always convert to the target type if they
  can
- rename "field" to "name" in the docs
- clarify docs
2016-10-20 12:41:32 +01:00
John Cupitt
26a534eeac count threads for leak test
see https://github.com/jcupitt/libvips/issues/542
2016-10-19 10:52:18 +01:00
John Cupitt
1a915db678 no longer need to clean up main buffers
thread-private buffers are now only on workers, no need to to start them
up or free them on the main thread
2016-10-19 09:58:13 +01:00
John Cupitt
b4d6d6c590 compiles, but untested 2016-10-13 14:57:18 +01:00
John Cupitt
ccfe4cb215 seems to work?
needs stress testing still

see https://github.com/jcupitt/libvips/issues/535
2016-10-10 15:12:12 +01:00
John Cupitt
fc9322f71b move concurrency_set into the public API
oops, it was off in threadpool and wasn't being scanned
2016-09-09 08:52:14 +01:00
John Cupitt
57e1423d57 Merge branch 'master' into windows-unicode 2016-09-05 13:12:06 +01:00
John Cupitt
c4a1ac6310 fix ROUND_UP, add a test for felix's corner case 2016-08-20 13:18:25 +01:00
John Cupitt
271d8656e9 use round() rather than rint() where appropriate
rint() rounds to nearest even, rather than nearest ... in some cases,
like geometry transforms, we want strict nearest
2016-08-20 12:59:41 +01:00
John Cupitt
578764b582 gifload does unicode on win
sigh again
2016-08-17 14:37:15 +01:00
John Cupitt
feca00958c seems to be sort-of working! 2016-08-16 18:33:48 +01:00
John Cupitt
1f403a4add first attempt
seems to all work, test it a bit more

see https://github.com/jcupitt/libvips/issues/491
2016-08-15 15:45:26 +01:00
John Cupitt
c658332215 vips_conva() done and working
remove im_conva() nest, add tests
2016-08-03 18:29:50 +01:00
John Cupitt
2e8f14c6a5 Merge branch 'master' into rewrite-convf 2016-08-01 15:08:45 +01:00
John Cupitt
e439c5f78f add .svg.gz suffix
allow .x.y suffixes
2016-08-01 14:57:33 +01:00
John Cupitt
b5781a5760 Merge branch '8.3' 2016-07-30 10:57:40 +01:00
John Cupitt
88148318eb fix performance regression
the extra check on bandfmt in sizeof() in 8.3.2 was causing some performance
problems ... move the check to file read, so we only do it once
per image, not once per pixel or scanline

thanks Lovell!
2016-07-30 10:51:54 +01:00
John Cupitt
c469bb3983 perlin sort-of works 2016-07-24 11:46:42 +01:00
John Cupitt
dac671439c kind-of working 2016-07-19 10:57:21 +01:00
John Cupitt
9c18f1b4d5 yet mmore doc fixes
classes are working again in gtk-doc, yay
2016-07-13 22:39:16 +01:00
John Cupitt
b814baa78c fix various small doc problems 2016-07-13 17:07:26 +01:00
John Cupitt
f873a51b09 sort-of working 2016-07-06 14:56:28 +01:00
John Cupitt
df81a6fe24 almost there 2016-06-30 14:59:20 +01:00
John Cupitt
bd7bad1916 almost done vector path 2016-06-28 11:07:20 +01:00
John Cupitt
5e660addc8 convi working
need to add vector path next
2016-06-24 16:03:15 +01:00
John Cupitt
93a55310d3 compiles 2016-06-23 15:00:26 +01:00
John Cupitt
b90145ca31 free pixel buffers on image close
We were freeing pixel buffers on thread exit. This was convenient, but
meant that main thread buffers were not freed until program exit. As a
result, long-running programs which created main thread buffers would
slowly fill the operation cache with useless junk, forcing everything else out.

This change also frees pixel buffers on image close. This makes the
cache work much better in long-running programs, and can substantially
reduce memory use.

See https://github.com/jcupitt/libvips/issues/466
2016-06-06 13:50:25 +01:00
John Cupitt
15878bffca Revert "free main-thread pixel buffers"
This reverts commit 2a77301033.
2016-06-06 06:38:18 +01:00
John Cupitt
2a77301033 free main-thread pixel buffers
threads keep pixel buffers in thread-private storage, and free these
buffers on thread exit ... this means buffers created by the main thread will
only be freed on program exit!

if your program creates any main-thread buffers, these buffers will
eventually fill the operation cache and force everything else out,
making the cache useless

this patch explicitly frees main-thread pixel buffers on image close
2016-06-05 16:59:07 +01:00
John Cupitt
7a91eaa583 tiff save converts for jpg in jpg mode
when jpg compression is on, tiffsave now converts the input image for
jpg save ... previously, it would try to send a tiff-formatted image
(eg. perhaps with an alpha channel, or float data), which would fail

see https://github.com/jcupitt/libvips/issues/449
2016-05-31 22:04:07 +01:00
John Cupitt
d51911cda8 fix up orientation docs
document the new orientation system

various tiff/jpeg doc fixups too
2016-05-28 11:17:17 +01:00
John Cupitt
5a9f2c787b compiles
needs testing etc.
2016-05-26 14:58:04 +01:00
Henri Chain
10a3782590 Add buffer write support for HDR Radiance 2016-05-19 22:32:17 +02:00
John Cupitt
db11d3b973 allow nested [] in CLI args
this now works:

	vips copy x y.dz[suffix=.jpg[Q=90]]
2016-05-16 11:09:47 +01:00
John Cupitt
1f701a61ea try signalling invalidate on load error
to knock load ops out of cache
2016-05-05 15:00:40 +01:00
John Cupitt
48ef215479 tiny fixups for the webp commit
just small formatting changes, plus an unneeded var

see

	https://github.com/jcupitt/libvips/pull/430
2016-05-02 09:55:16 +01:00
Felix Bünemann
f834ea39f6 Add lossy compression "preset" option to webpsave
This allows to tune the lossy webp encoder for certain types of images.
2016-04-22 23:57:07 +02:00
John Cupitt
2c646a02e4 better jpeg autorot
jpeg write is more careful about removing exif tags that have been
removed from the image metadata

it failed previously if there were multiple Orientation tags
2016-04-13 08:39:29 +01:00
John Cupitt
a7e564ed97 autorot looks in every ifd
some images have multiple orientation tags ... look and remove
orientation tags everywhere
2016-04-12 18:31:19 +01:00
John Cupitt
3115310bb7 fix no-orc builds 2016-03-26 10:45:31 +00:00
John Cupitt
e8b5cb6c23 add VIPS_COUNT_PIXELS, overcomputation tracking
added VIPS_COUNT_PIXELS(), use like this:

	static int vips_shrinkh_gen( VipsRegion *or, ... )
	{
        	VIPS_COUNT_PIXELS( or, "vips_shrinkh_gen" );
	}

and on image close, if more than 100% of the pixels have been
calculated, you get a warning

only if you enable debugging, since this hurts perf slightly
2016-03-22 12:26:45 +00:00
John Cupitt
05156edd15 add orc path for reducev
works, but still not quite right, see some banding
2016-03-18 17:41:51 +00:00
John Cupitt
dc7902b12f Merge branch 'master' into add-lanczos3 2016-03-13 11:23:03 +00:00
John Cupitt
d351e07a6b finish up 2016-03-10 17:33:34 +00:00
John Cupitt
a26291a426 reducehl3 is done
sort of anyway, tinkering with optimization
2016-03-09 22:47:02 +00:00
John Cupitt
25c3c49d1c better handling of cast+shift for non-int formats
before, im.cast(uchar, shift = true) where im was float and tagged as
rgb16 would not shift the image, since it's unclear how much to shift a float
type by

now we do two casts: first, we guess the numeric range from the
interpretation, so rgb16 would be ushort, so we cast float->ushort;
second, we cast to the target type and do the shift on the way

see https://github.com/jcupitt/libvips/issues/397

thanks apacheark
2016-03-01 11:31:54 +00:00
John Cupitt
ee1874c5ca much better handling of arrayimage cli args
we were not setting the access hint on arrayimage args, so

arrayjoin "$(echo *.jpg)" x.tif[bigtiff] --across 10

would open all the jpg images to memory, usually, in random mode

now arrayimage args see the operation's access hint (seq in this case),
for much better behaviour

also, we allow any whitespace as an arg separator in arrayimage from
string
2016-02-27 20:37:20 +00:00
John Cupitt
840c3f2e63 oops typo
thanks Lovell
2016-02-22 14:08:36 +00:00
John Cupitt
9262d672b7 almost done
a valgrind failure still
2016-02-12 10:53:04 +00:00
John Cupitt
bd985731eb unpremultiply svgload / pdfload
cairo uses premultipled ARGB, we need to undo this for transparency to
work correctly
2016-02-11 09:06:09 +00:00
John Cupitt
153886d2eb add svgload
load from bubffer is not working though, strange ... it seems to be
generating a 16-biit image?
2016-02-09 11:01:12 +00:00
John Cupitt
991cc4f88b rename as pdfload 2016-02-08 20:25:03 +00:00
John Cupitt
bff4157773 add load pdf from buffer 2016-02-08 17:48:18 +00:00
John Cupitt
adfd25a5ed byteswap popplerload
and better path absoluteization
2016-02-08 16:37:47 +00:00
John Cupitt
69c2fe00f7 add C API and docs for popplerload 2016-02-08 10:05:37 +00:00
John Cupitt
3e78bdb6a9 reduceh is working! 2016-01-27 14:34:06 +00:00
John Cupitt
8b09c86492 add cubich interp., start reduceh 2016-01-27 11:12:36 +00:00
John Cupitt
4d18300560 add VIPS_FABS/MAX/MIN/CLIP
macros which use the gcc __builtin_fabs() etc. functions when they can
2016-01-26 12:26:21 +00:00
Lovell Fuller
0cac224431 Replace use of "Duff's device" with for-loop to allow compiler to optimise.
Reduces CPU instruction count of conv_gen function by ~30%.
Improves performance of convolution operation by 20-25%.
2016-01-25 21:17:41 +00:00
John Cupitt
a7d889df06 use builtin floor / ceil
get rid of FAST_PSEUDO_FLOOR, add VIPS_FLOOR and VIPS_CEIL, use them
everywhere

see https://github.com/jcupitt/libvips/pull/372
2016-01-23 09:50:57 +00:00
Lovell Fuller
90c1fb9a94 Use gcc/clang isnan and isinf builtin functions where available.
These are used heavily in the building of look-up tables at
start-up time and therefore improve vipsthumbnail perf by ~4%.
2016-01-20 19:02:14 +00:00
John Cupitt
69d10ea4b2 add C decls for bandjoin_const
oops, forgot them
2015-12-30 16:30:56 +00:00
Eric Corriel
630f8bb02b fixing typo, should be IFDEF 2015-12-27 20:39:55 -05:00
John Cupitt
73436ddfc2 add @properties flag to tiffsave
writes all vips metadata to imagedescription tag
2015-12-21 14:43:59 +00:00
John Cupitt
0deb640bc4 load and save TIFFTAG_IMAGEDESCRIPTION
this often has useful metadata in, for example the OME spec has all the
metadata in there as an XML document

see https://github.com/jcupitt/libvips/issues/358
2015-12-21 13:53:33 +00:00
John Cupitt
6e9834e623 add vips_arrayjoin() 2015-12-11 15:14:08 +00:00
John Cupitt
1504ca7cdc have a more formal max image dimension
we now have VIPS_MAX_COORD for maximum image dimension, set to 10m
pixels ... we could go up to 2bn, but 10m seems a reasonable max, at
least for now

see https://github.com/jcupitt/libvips/issues/355
2015-12-03 12:14:39 +00:00
John Cupitt
2409767679 add vips_image_new_from_memory_copy()
takes a copy of a memory area when making an image ... this helps bindings
for languages which don't have much control over memory

see https://github.com/jcupitt/libvips/issues/346
2015-11-25 17:05:59 +00:00
John Cupitt
cdccf01c46 rename as mapim 2015-11-16 20:32:48 +00:00
John Cupitt
8e6ed3ef30 compiles 2015-11-16 14:58:51 +00:00
John Cupitt
d32bc97ccb start hacking it in 2015-11-16 11:08:10 +00:00
John Cupitt
9cb2674a77 now works woo
python interface plus test and benchmark to go

update c++ too I guess

oh docs as well sigh
2015-11-07 18:47:02 +00:00
John Cupitt
11ce13d43d enable new shrink code
2x faster, much lower memuse
2015-10-31 12:15:48 +00:00
John Cupitt
582a7f1810 shrink2 now done
big mem saving, still a bit slower though
2015-10-31 10:43:08 +00:00
John Cupitt
da8f236f95 try a split shrink
not quite done yet
2015-10-30 18:15:14 +00:00
John Cupitt
5160010eda add vips_array_image_empty()/_append()
to help bindings without init from array
2015-10-25 17:15:45 +00:00
John Cupitt
36617bd2e4 added vips_blob_copy()
helps ruby-vips8
2015-10-24 11:12:08 +01:00
John Cupitt
2b46b7e889 many more const decls
ruby gobject-introspection is quite fussy about needing a lot of const
declarations ... these changes help vips_image_matrix_from_array()
appear in Ruby
2015-10-23 11:45:11 +01:00
John Cupitt
4d95f4512c Merge branch '8.1'
Conflicts:
	ChangeLog
	configure.ac
	doc/libvips-docs.xml
2015-10-13 14:47:37 +01:00
John Cupitt
368a74abcd better vips7 filename splitting
helps windows, see https://github.com/jcupitt/build-win32/issues/11

also add some tests
2015-10-13 10:29:53 +01:00
John Cupitt
b8a28f1a8d add vips7 wrapper for magickload_buffer
see https://github.com/jcupitt/ruby-vips/issues/69
2015-10-07 14:48:32 +01:00
John Cupitt
3b75d90174 copy photoshop data in tiff load/save
well, try anyway, it might work

see https://github.com/jcupitt/libvips/issues/332
2015-09-29 18:02:30 +01:00
John Cupitt
75a0b5b789 add vips_entropy()
calculates image entropy from a histogram
2015-08-11 14:00:43 +01:00
John Cupitt
69fc2c1b7c getting closer ...
fix RefString handling, add a test case
2015-07-16 11:14:33 +01:00
John Cupitt
a42232a9a1 boilerplate for hsv colourspace 2015-06-09 10:18:30 +01:00
John Cupitt
e9720afb18 add vips_bandfold()/vips_bandunfold()
was part of vips_copy(), but it was very ugly there
2015-06-05 14:52:05 +01:00
John Cupitt
dbd852211e move bytw swapping out to vips_byteswap()
it was an option to vips_copy(), ugly!
2015-06-05 13:56:26 +01:00
John Cupitt
5cb2239d7d try to support DOS ppm/csv files on linux
swap \r\n for \n in vips__fgetc()
2015-06-04 12:58:30 +01:00
John Cupitt
c35e2e5427 add RefString getter
to python now unpacks VipsRefString on get_value()
2015-06-02 13:32:48 +01:00
John Cupitt
472bf7dbc3 add vips_unpremultiply() 2015-05-08 10:26:23 +01:00
John Cupitt
66c51b7d23 add an experimental premultiply operation 2015-05-07 23:42:02 +01:00
John Cupitt
dbdcf91171 remove some stray decls
see https://github.com/jcupitt/libvips/issues/288

version bump as well
2015-05-04 19:41:08 +01:00
John Cupitt
6c6d0d6b78 fix some compiler warnings 2015-04-25 17:39:16 +01:00
John Cupitt
a00db6c8f1 doc cleanups 2015-04-24 12:49:50 +01:00
John Cupitt
42efce5c66 fix various typos
thanks dg1727

see https://github.com/jcupitt/libvips/issues/277
2015-04-21 18:39:02 +01:00
John Cupitt
e0a5d28100 add vips_vipsload() vips_vipssave() to C API
we didn't have these in the C API before, for some reason
2015-04-21 14:29:44 +01:00
John Cupitt
7495690cd6 remove vips__image_sizeof_bandformat
we had main API macros which used an array behind the scenes,
vips__image_sizeof_bandformat[]. Swap this for a function,
vips_format_sizeof(), to help DLLs.

the array symbol is still there for compatibility
2015-04-20 14:18:17 +01:00
John Cupitt
24084aed85 Merge branch 'add-copy-to-memory' 2015-04-19 11:13:15 +01:00
John Cupitt
54c37e7e0d add copy-to-memory
try to make a threadsafe vips_image_wio_input()
2015-04-19 09:45:20 +01:00
John Cupitt
a5a3b062fc support saving 1 and 2 band images to webp
see https://github.com/jcupitt/libvips/issues/267

libwebp does not supportG and GA images

make a new SAVEABLE type for savers which only do RGB and RGBA
2015-04-17 16:59:28 +01:00
John Cupitt
a0aacad871 much better convert to greyscale
mix RGB channels as .2, .7, .1 in linear light

see https://github.com/jcupitt/libvips/issues/266
2015-04-17 11:33:27 +01:00
John Cupitt
339f268200 add some API for args, fix a docs messup 2015-03-02 22:02:33 +00:00
John Cupitt
9e0bf03c64 Merge pull request #240 from mcuelenaere/foreign_is_a_buffer
Add vips_foreign_is_a_buffer() method
2015-02-27 11:44:58 +00:00
John Cupitt
044bdf38d1 more doc tweaks 2015-02-18 16:32:30 +00:00
John Cupitt
377075fe05 Merge branch 'new-tiff-save' of github.com:jcupitt/libvips into new-tiff-save
Conflicts:
	ChangeLog
	libvips/foreign/vips2tiff.c
2015-02-16 21:27:00 +00:00
Maurus Cuelenaere
dba1b1d81b Add ImageMagick buffer support
This commits adds buffer support for the ImageMagick backend, using the Blob
API.
2015-02-15 21:45:17 +01:00
John Cupitt
800208ec3a more tinkering 2015-02-15 17:44:56 +00:00
Maurus Cuelenaere
3d067af889 Add vips_foreign_is_a_buffer() method
This commits adds a vips_foreign_is_a_buffer() method, similar to
vips_foreign_is_a().
2015-02-15 16:31:29 +01:00
John Cupitt
9d11c02e35 version bump 2015-02-06 13:39:39 +00:00
John Cupitt
eb5fee5e65 add lower-level cache access 2015-02-01 17:56:48 +00:00
John Cupitt
29d073c04c now compiles cleanly with -Wstrict-prototypes
some downstream packages were seeing lots of spurious warnings
2015-01-21 09:02:56 +00:00
John Cupitt
eda4ed64f1 rename _!PIXEL etc. to help bindings
ruby gobject-introspection hates numbers at the start of _ separated
names
2015-01-07 14:22:13 +00:00
John Cupitt
ad6f42c869 remove dead proto
vips_draw_line_mask() was never implemented .. use
vips__draw_line_direct() instead.
2015-01-02 21:34:34 +00:00
John Cupitt
6e2135d8b5 mask builders take prec, not integer
vips_gaussmat() and vips_logmat() used to default to float, but
vips_conv() defaulted to int ... so this failed:

	vips gaussmat m.v 2 0.1 --separable
	vips convsep k2.jpg x.jpg m.v

since we were using a small float mask with an integer convolution

This change makes everything int by default, with gaussmat having a new
param called --precision whose arg can be int or float.

The old @integer param is deprecated.
2014-12-16 20:48:11 +00:00
John Cupitt
384a5e05dc change parameters of vips_gaussblur()
sorry :-(

The old param (passing sigma*2 as an int) were just too confusing
coming from other packages. This new behaviour matches ImageMagick, and
almost everyone else in the world.

A new optional param lets you set the minimum amplitude as well.
2014-11-19 12:27:26 +00:00
John Cupitt
589e15b8a4 better vips_resize() 2014-11-18 18:37:19 +00:00
John Cupitt
dda412c85f add command-line option parsing to python 2014-11-18 11:29:32 +00:00