Commit Graph

1223 Commits

Author SHA1 Message Date
John Cupitt abe4e70d02 make radload slightly more robust
stops some valgrind warnings
2016-03-12 15:10:52 +00:00
John Cupitt acf5f5169a fix hist_entropy
there was a copy-paste error in the call to vips_log(), thanks Lovell

see https://github.com/lovell/sharp/issues/295
2016-03-06 18:02:59 +00:00
John Cupitt 5a60dd26f9 fix parsing of filenames containing brackets
oops, missed part of a regexp in parse_token, see:

https://github.com/jcupitt/libvips/issues/395

thanks shilpi230
2016-02-26 12:41:48 +00:00
John Cupitt e4b31dde38 fix labq sparc read
byteswap was swapping coded images, or trying to
2016-01-27 12:44:36 +00:00
John Cupitt db20d70495 fix some more compiler warnings
and a bit of formatting
2016-01-26 15:10:46 +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
John Cupitt 73bcc8b5d3 improve the using-C docs
add some stuff on giving options to operations

see https://github.com/jcupitt/libvips/issues/373
2016-01-25 09:35:06 +00:00
John Cupitt 07a1903390 use g_assert_not_reached()
we were using g_assert(0) ... g_assert_not_reached() makes the
intention clearer
2016-01-24 13:21:53 +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
John Cupitt 94db738773 fix double free on tiff write
if you attached a profile to a tiff from a file during write, you'd get
a double-free

see https://github.com/jcupitt/libvips/issues/371
2016-01-22 17:43:42 +00:00
John Cupitt c7eb88b87f fix subsample at the command-line
it had the SEQ flag set, causing confusion with vips_sequential() when
it skipped scanlines on startup

see https://github.com/jcupitt/libvips/issues/370
2016-01-22 14:37:42 +00:00
John Cupitt 2e5880b69c speed up for vips_shrinkh()
remove the sum buffer, we can just use a local, about 5% faster

see https://github.com/jcupitt/libvips/pull/369
2016-01-22 09:15:38 +00:00
John Cupitt af8b43b16d fix to make check in non-C locales
"make check" uses bc, which needs '.' as a decimal sep.

https://github.com/jcupitt/libvips/issues/367
2016-01-17 09:29:25 +00:00
John Cupitt 4512400a3c better rounding in new bilinear interp
was off by 0.5
2016-01-14 13:13:08 +00:00
John Cupitt 6ca9a907b8 reorder load tests
and a slight memory saving on ifthenelse
2016-01-13 20:32:23 +00:00
John Cupitt 52384606dd bump version for new C++ patch 2016-01-12 17:12:46 +00:00
John Cupitt 50db131865 VImage::get_typeof() returns GType
it was int, causing some compiler warnings on some platforms.

see https://github.com/jcupitt/libvips/issues/362
2016-01-09 20:27:14 +00:00
John Cupitt 66373e9b41 remove exception specs from vips8 C++ interface
We had exception specs on the C++ interface, but C++11 does not support
them and some compilers have never honoured them. Remove all specs.
Thanks Lovell.

See https://github.com/jcupitt/libvips/issues/362
2016-01-09 14:52:05 +00:00
John Cupitt 9419e07a6b remove a lock from VImage.cc
it wasn't really needed, and windows will barf with pointers across
DLLs
2016-01-08 13:40:58 +00:00
John Cupitt b85231baba small doc improvements 2016-01-07 11:16:12 +00:00
John Cupitt e27aa4488a clearer changelog entry 2016-01-04 17:24:00 +00:00
John Cupitt e81900b187 bandjoin is just an instance function
we had both a class member bandjoin, and an instance member

Vips.Image.bandjoin([i1, i2, i3..])
i1.ibandjoin([i2, i3..])

this was confusing and annoying ... get rid of the class one and just
use bandjoin everywhere, so this is now the way to do it:

i1.bandjoin([i2, i3..])
2016-01-04 14:18:10 +00:00
John Cupitt e6cbdbb516 add a stub for compat
see https://github.com/jcupitt/libvips/issues/361
2016-01-01 10:58:53 +00:00
John Cupitt 8302e2ffcd notes on dzsave change
see https://github.com/jcupitt/libvips/pull/359
2015-12-23 09:16:58 +00: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 efed79f298 Merge branch 'new-bilinear' 2015-12-17 13:43:51 +00:00
John Cupitt fb084ef6a6 working 2015-12-17 13:43:34 +00:00
John Cupitt c74f7457a6 Merge branch 'master' of github.com:jcupitt/libvips 2015-12-17 12:58:04 +00:00
John Cupitt 42f5403cfa notes 2015-12-15 10:49:02 +00:00
John Cupitt af6e00e10f Merge branch 'master' of github.com:jcupitt/libvips 2015-12-15 10:45:23 +00:00
John Cupitt 70cf12d034 notes 2015-12-15 10:44:30 +00:00
John Cupitt 5916e25c31 rename python bandjoin as ibandjoin
oh argh class and instance methods are in the same namespace, so we have
to rename the instance one as ibandjoin

also, start adding a test for arrayjoin
2015-12-12 12:29:20 +00:00
John Cupitt 6e9834e623 add vips_arrayjoin() 2015-12-11 15:14:08 +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 6573af3c2a always strip dzsave tile metadata
dzsave now uses :strip => true for all tiles. There's no point adding
all the metadata to every tile, so hopefully this won't break anything.

Thanks Benjamin, see: https://github.com/jcupitt/libvips/issues/349
2015-11-25 13:29:23 +00:00
John Cupitt 2620f3b8c9 allow non-square vips_resize()
in a very crude way
2015-11-19 17:09:18 +00:00
John Cupitt 8506ff13a6 try to improve vips_resize() quality
small improvements to vips_resize() quality:

* turn down the anti-alias filter a little so we don't smudge out texture
* don't do the final sharpening pass if we skipped the anti-alias filter
* fix a >/>= mixup which meant we didn't sharpen for small resizes
2015-11-19 15:22:23 +00:00
John Cupitt 743b21e83e fix off by 1 error 2015-11-19 13:25:52 +00:00
John Cupitt bfbe254ece sync 2015-11-17 10:13:48 +00:00
John Cupitt 8e6ed3ef30 compiles 2015-11-16 14:58:51 +00:00
John Cupitt 3b32200cc1 sizealike() and friends elide completely
sizealike() / formatalike() and bandsalike() used to just vips_copy() if
the image didn't need any changes ... this was fast, but left a
vips_copy_gen() in the pipeline, wasting a lot of space on the C stack
during recursion.

They now vanish completely if the image is already in the right format.
Since we call them before most image processing operations, and
often all three of them, this saves a lot of C stack, more than x2 even
in simple cases.

There might also be a measureable CPU saving if the operations are very
simple (eg. insert).

See:

http://stackoverflow.com/questions/33658795/difficulty-with-handling-very-large-image-using-vips
2015-11-13 14:48:02 +00:00
John Cupitt d94a2807c9 smarter cache sizing for vips_resize
see comment in code, should now account for max delay possible
2015-11-11 10:23:50 +00:00
John Cupitt 66fe338d36 better alpha handling for tiff save
the tiff saver was writing all five-band images as CMYKA, even if they
were tagged as srgb ... it now follows the interpretation tag and will
write many alpha channels instead

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

thanks sadaqatullahn
2015-11-11 08:55:42 +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 b853012787 add memory.h to Python API
this makes the memory high water visible to Python, handy for testing
2015-11-04 10:09:06 +00:00
John Cupitt 11ce13d43d enable new shrink code
2x faster, much lower memuse
2015-10-31 12:15:48 +00: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 64d081e726 return default value for unset props
we used to issue a warning and return early, but this can leave garbage
in the *value pointer, I think

ruby gobject-introspection will walk object props during GC and can see
state inbetween init and build when not all objects have been given a
value ... we don't want these warnings
2015-10-16 14:50:44 +01:00
John Cupitt faf7b70e2e Merge branch '8.1'
Conflicts:
	ChangeLog
2015-10-14 13:04:36 +01:00