Commit Graph

1630 Commits

Author SHA1 Message Date
John Cupitt 70abf4efde merge pdfload range to master 2016-05-15 10:02:46 +01:00
John Cupitt ffc5279d2f Merge branch 'master' into loadpdf-range 2016-05-15 10:01:27 +01:00
John Cupitt 7f02e843dc add ack for dzsave tile skip
see https://github.com/jcupitt/libvips/issues/352
2016-05-15 09:53:37 +01:00
John Cupitt 46f2776d22 fix up changelog order 2016-05-15 09:50:40 +01:00
John Cupitt 72b67d0ec2 Merge branch 'master' into no-blank-tiles 2016-05-15 09:48:21 +01:00
John Cupitt f18fbe1fa2 add @n option to pdfload
so you can load many pages at once as a tall strip
2016-05-12 14:13:50 +01:00
John Cupitt 143593d6a6 comment reformat 2016-05-09 11:07:48 +01:00
John Cupitt 38fe936eee Merge remote-tracking branch 'origin/8.3' 2016-05-08 11:09:28 +01:00
John Cupitt f7a6a02ee8 fix giflib4 detection
and a problem in giflib4 error handling
2016-05-08 11:02:21 +01:00
John Cupitt 1fbae62cf8 seems to work for jpg anyway
try some tests next
2016-05-05 20:07:17 +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
John Cupitt 02821ae9e3 expose @kernel setting for vips_resize()
a new optional arg lets you pick the downsizing kernel
2016-05-01 12:33:49 +01:00
John Cupitt c2d1de9a26 allow mixed zoom and shrink in resize
vips_resize() now allows >1 on one axis, <1 on the other ... previously,
although you could have non-square ratios, you couldn't mix zoom and
shrink
2016-05-01 12:03:13 +01:00
John Cupitt 5e933fe8e9 Merge branch 'master' into no-blank-tiles 2016-04-25 09:54:01 +01:00
John Cupitt d11a7960b7 add support for giflib5
gifload.c now works with giflib5, and well as giflib4 ... forced by
ubuntu's switch to giflib5 in 16.04

see https://github.com/jcupitt/libvips/issues/407
2016-04-25 09:29:25 +01:00
John Cupitt 699ade0877 Merge branch 'master' into no-blank-tiles 2016-04-24 09:59:04 +01:00
John Cupitt 23eaf93867 fix build with graphicsmagick
GM is still using the old page interface of subimage/subrange, IM has
deprecated that in favour of scene/number_scenes

we were accidentally just supporting the new IM system ... this change
adds support for GM as well, plus a configure test to pick one

see https://github.com/jcupitt/libvips/issues/423
2016-04-18 15:21:11 +01:00
John Cupitt f0271f050d note oo stuff 2016-04-18 12:36:55 +01:00
John Cupitt 1e44ab5d39 version bump for 8.3.1 2016-04-15 08:42:36 +01: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 f58190bccd tag non-int rgb tiff as scrgb
Photoshop uses 0 - 1 and no gamma for float RGB, so we tag float /
complex RGB tiffs as scRGB

thanks Murat
2016-04-11 12:37:48 +01:00
John Cupitt f3835ef0bf webpsave_buffer no longer ignores @lossless
the @lossless arg to webpsave buffer was never wired up to anything,
thanks aaron42net.

see

https://github.com/jcupitt/libvips/issues/410
2016-03-31 21:48:40 +01:00
John Cupitt 618af96723 vips_system() out-format can take options
you can now put options like [scale=2] at the end of out_format ...
these are stripped before running the command, but use to load the
output image back into libvips again
2016-03-28 10:50:39 +01:00
John Cupitt ddd7ab7459 doc fixups 2016-03-25 10:56:59 +00:00
John Cupitt ec5cdf4fff Merge branch '8.2' 2016-03-24 16:09:44 +00:00
John Cupitt 72ea91fecc fix nohalo, vsqbs interpolators
we were getting occasional memory access problems in nohalo and vsqbs
interpolators ... the previous fix was not enough

version bump
2016-03-24 16:06: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 46a18118c6 works! 2016-03-15 16:46:18 +00:00
John Cupitt dc7902b12f Merge branch 'master' into add-lanczos3 2016-03-13 11:23:03 +00:00
John Cupitt 6368ab0649 add switches to disable rad, analyze and ppm
vips has built-in support for rad, analyze and ppm ... add configure
switches to disable these readers

useful to reduce the attack surface in some applications
2016-03-12 16:48:27 +00:00
John Cupitt 42224b6b0e Merge branch '8.2' 2016-03-12 15:12:56 +00:00
John Cupitt abe4e70d02 make radload slightly more robust
stops some valgrind warnings
2016-03-12 15:10:52 +00:00
John Cupitt 4974a1ed9c better rounding for vips_resize()
we were getting off by one size errors
2016-03-10 19:53:05 +00:00
John Cupitt 9209fb25c5 update notes 2016-03-10 17:40:19 +00:00
John Cupitt 9201248623 Merge branch '8.2' 2016-03-06 18:05:12 +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 2ea5c5f7e5 make python bandrank() work like bandjoin()
we had a custom wrapper for bandjoin(), but bandrank(), a function with
an almost identical interface, did not ... this was confusing

bandrank() now has a custom wrapper too ... this breaks API
unfortunately, but hopefully very few people were using this thing and
it's better to make this change as soon as possible
2016-03-01 12:12:51 +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 19a838470b add webp shrink-on-load
and vipsthumbnail knows about it too

see https://github.com/jcupitt/libvips/issues/398
2016-02-28 14:36:21 +00:00
John Cupitt e582f13d13 tiny polish to hist_find
slightly faster again
2016-02-28 12:08:06 +00:00
John Cupitt b197773095 oop, overflow in sharpen
plus another tweak of the defaults
2016-02-28 11:24:35 +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 609e639528 Merge branch '8.2' 2016-02-26 12:44:54 +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 c1f1a7c1b3 improve sharpen for screen work
it was a bit granular (since it was designed for offset work), make sharpen
easier to adjust for smaller effects

- new 'sigma' parameter
- greater parameter range
- more self-tests
2016-02-25 11:16:24 +00:00
John Cupitt 01238a0fd5 more progressive jpg changes
- Remove the nocache stuff for prog jpg images. There was no saving in
  practice, since operations downstream could be cached.

  nocache is for objects that can change, not for memory saving

- Call _destroy on the decompress object much earlier, it frees a huge
  amount of memoey for prog jpg images.
2016-02-21 10:57:36 +00:00
John Cupitt 6f94cb5ed4 don't cache progressive jpg images
progressive jpg images need loads of memory, we shouldn't cache them by
default ... our called can hold a ref if they want to keep the image
around

see https://github.com/jcupitt/libvips/issues/387
2016-02-18 19:00:19 +00:00
John Cupitt de59ff0e5a Merge branch 'master' into add-magickload-page 2016-02-18 11:28:09 +00:00
John Cupitt ef6d8f5979 make test for matlab files more specific
Previously vips just called Mat_Open() to test if a file was a Matlab
save file, but this is rather unreliable. For example, some JPEG files
can crash libmatio, and it can incorrectly think that at least some JP2
files are Matlab save files.

Instead, look for "MATLAB 5.0" at the start of the file. This is really too
specific, the first 116 bytes of a Matlab save file are freeform text,
but in practice all Matlab writers use the first few bytes to record the
file type.

See https://github.com/jcupitt/libvips/issues/385
2016-02-16 09:53:04 +00:00
John Cupitt 8e667fbb3e still not quite there
works, but is no faster, how odd

john@kiwi:~/pics$ time vips magickload nipguide.pdf[40] x.tif
real	0m0.244s
user	0m0.212s
sys	0m0.040s

$ time vips magickload nipguide.pdf x.tif --page 40
real	0m7.035s
user	0m6.900s
sys	0m0.152s

both give same result
2016-02-15 08:53:23 +00:00
John Cupitt 9262d672b7 almost done
a valgrind failure still
2016-02-12 10:53:04 +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 625e0fbd9e vipsthumbnail knows about pdfload
woo, fast!
2016-02-09 09:26:54 +00:00
John Cupitt 991cc4f88b rename as pdfload 2016-02-08 20:25:03 +00:00
John Cupitt 69c2fe00f7 add C API and docs for popplerload 2016-02-08 10:05:37 +00:00
John Cupitt 8da4e706dd start adding poppler support 2016-02-07 23:33:43 +00:00
John Cupitt 41b41effde Merge branch 'add-reduce' 2016-02-07 17:46:46 +00:00
John Cupitt 8cffd136e9 finish reduce
and fix up bicubic a bit, it works better on int32 images now
2016-02-07 17:41:39 +00:00
John Cupitt 67f3ecfd8d wire up to resize / similarity
still need tests
2016-01-29 15:23:00 +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 e19f9ea0b3 working!
doesn't seem to slow us down significantly ... before:

$ time vips dzsave CMU-1.svs x --layout google --background "243 243 243 255"
real	1m1.940s
user	2m15.004s
sys	0m37.092s

after:

$ time vips dzsave CMU-1.svs x --layout google --background "243 243 243 255"
strip_work: skipping blank tile 176 x 67
strip_work: skipping blank tile 21 x 112
real	1m3.503s
user	2m16.012s
sys	0m40.328s
2015-11-24 17:08:56 +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
John Cupitt 4b25ce2cf2 note pathname parse fix 2015-10-14 13:00:41 +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 2b2ac1b077 rename vips-8.0 as vips-8.1
also bump configure version

thanks Danilo!
2015-10-13 08:55:54 +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 3889dcc3e2 make tiff load and save IPCT data
we did XMP already, but add IPCT as well

see https://github.com/jcupitt/libvips/issues/332
2015-09-29 17:41:11 +01:00
John Cupitt 956e2f5cdf tiny cleanups
see https://github.com/jcupitt/libvips/pull/327

- small layout changes
- rename @linespacing as @spacing
- add ChangeLog notes and gtk-doc notes
- fix text arg priority
2015-09-20 11:08:44 +01:00
John Cupitt f1c34932b6 working, at least with bug case
working, at least with robclouth test case

see

https://github.com/jcupitt/libvips/issues/326#issuecomment-138888981
2015-09-09 17:27:19 +01:00
John Cupitt 75a0b5b789 add vips_entropy()
calculates image entropy from a histogram
2015-08-11 14:00:43 +01:00
John Cupitt fbe321eebf change exif names argh
change exif names again: we were storing under @title, but that's both
subject to i18n, and unlookupable in libexif

we now use @name, which is not subject to i18n and can be searched for
... this will break most code which expects certain exif tag names

also, when we update exif, allow any tag, not just updates to existing
tags, see:

https://github.com/lovell/sharp/issues/189
2015-07-15 13:27:47 +01:00
John Cupitt b3d35da677 don't try to write oversized jpeg markers
see https://github.com/jcupitt/libvips/issues/311
2015-07-08 13:28:50 +01:00
John Cupitt 17bace3483 fix corrupt test image 2015-06-22 06:52:02 +01:00
John Cupitt 33788f7336 allow dzsave zip output > 4gb
thanks benjamin
2015-06-08 09:35:25 +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 a3c881ae78 support "with Vips.Image" in Python
though it doesn't actually do anything, it looks nice
2015-06-03 15:08:02 +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 baf78fc04a oops, fix base64 encode/decode padding
we were adding up to two bytes of null to the end of base64-encoded
binary data due to a signed/unsigned mixup

add a test for this, plus a test for vips file format
2015-05-31 18:17:26 +01:00
John Cupitt 36331739ab add bandand() bandor() bandeor() to py
convenience funcs
2015-05-26 10:32:15 +01:00
John Cupitt cea1e29527 Merge remote-tracking branch 'origin/8.0'
Conflicts:
	ChangeLog
	configure.ac
	doc/libvips-docs.xml
2015-05-24 18:19:32 +01:00
John Cupitt 3451766004 fix dzsave/vips2tiff for some image sizes
we were not clipping new strip size against image size, see

https://github.com/jcupitt/libvips/issues/300
2015-05-24 17:53:05 +01:00
John Cupitt 045678d438 vips_copy() can turn bands into width
handy for slicing up very large 3D arrays
2015-05-15 14:24:53 +01:00
John Cupitt 25bf910f21 vipsthumbnail uses vips_premultiply() 2015-05-09 16:33:38 +01:00
John Cupitt 9ea012f737 vipsthumbnail now uses vips_resize()
it used to have its own copy of this code
2015-05-09 12:54:50 +01:00
John Cupitt ec52d1b922 change vips_flatten() alpha rules
now match vips_premultiply()

add tests

foreign knows about new logic
2015-05-09 12:10:42 +01:00
John Cupitt 472bf7dbc3 add vips_unpremultiply() 2015-05-08 10:26:23 +01:00
John Cupitt 90a47b0cad start 8.1 2015-05-07 18:15:07 +01:00
John Cupitt 5f3d4c7971 start 8.0 supported branch 2015-05-07 18:11:57 +01:00
John Cupitt 8ba680605a soname bump, test suite improvements
test suite now tests load from buffer and save to buffer

test suite adapts for differences in newer libMagick

bump soname for safety
2015-05-05 09:40:29 +01:00
John Cupitt db4ee8d6b6 fix a ref leak in the C++ API
see https://github.com/jcupitt/libvips/issues/290

thanks huskier

added a write-to-buffer example as well
2015-05-04 19:44:56 +01:00
John Cupitt bfeeb3eb27 better leak reporting
Vips::print_all now shows VipsArea leaks as well
2015-05-01 16:42:23 +01:00
John Cupitt f5a77dd80d start some notes on threading 2015-04-27 10:57:27 +01:00
John Cupitt ffdd9ff851 init glib langs on startup
works around a crash under heavy load, see

https://github.com/openslide/openslide/issues/161
2015-04-26 10:30:39 +01:00
John Cupitt 6c6d0d6b78 fix some compiler warnings 2015-04-25 17:39:16 +01:00
John Cupitt ad017dc56f add more C++ convenience functions
flipver() etc.
2015-04-24 10:10:44 +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 fcb348db64 notes on recent changes 2015-04-19 13:15:24 +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 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 41b38f2fd2 Merge remote-tracking branch 'origin/7.42'
Conflicts:
	ChangeLog
	configure.ac
	libvips/foreign/vips2tiff.c
2015-04-09 09:49:59 +01:00
John Cupitt da1611e070 add miniswhite tiffsave option 2015-03-27 10:07:59 +00:00
John Cupitt 09b81b7580 im_maxpos_avg() avoids NaN 2015-03-26 17:16:52 +00:00
John Cupitt 9552315e80 version bump 2015-03-26 08:46:52 +00:00
John Cupitt c4672f389b oops in vips_getpoint() C wrapper 2015-03-08 15:13:56 +00:00
John Cupitt 339f268200 add some API for args, fix a docs messup 2015-03-02 22:02:33 +00:00
John Cupitt ded01df512 c++: add [], change ()
() used to return element zero, just return a vector

add [] overload
2015-03-01 10:43:02 +00:00
John Cupitt 5d912fdbbb add [] overload to python
index and slice image bands
2015-02-28 16:53:06 +00:00
John Cupitt a49e6772fd notes 2015-02-27 11:54:18 +00:00
John Cupitt fc5a4a917a make file format readers close fds early
we were using two fds per open image, now we just use one

jpg, magick, tiff, png
2015-02-26 14:09:01 +00:00
John Cupitt ed5c90175a final cleanup 2015-02-17 14:45:39 +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
John Cupitt c15f37719b add test_foreign.py
plus some more test images
2015-02-16 16:03:39 +00:00
John Cupitt 99b4bcb838 small cleanups
split magicload up into a base class plus file and buffer subclasses

magickload_buffer should do all reading in header method
2015-02-16 10:45:56 +00:00
John Cupitt 187a12987a add vips_region_shrink()
add fast x2 region shrink

aim to share between pyramid builders
2015-02-14 13:44:32 +00:00
John Cupitt be5052d0c3 tiff pyramid builder no longer copies base image
we used to make a copy of the base image ... instead, write once and
append other layers at end of run
2015-02-13 13:40:35 +00:00
John Cupitt 4d9436f4b3 Merge branch '7.42' 2015-02-13 12:21:46 +00:00
John Cupitt 4d0887f5de fix .dz as a target
and add a test for this as well
2015-02-13 11:17:55 +00:00
John Cupitt 8f7c2c7110 sort out alpha going to and from 16-bit
rewritten sRGB <-> scRGB so that 16-bit alpha is scaled to float 8
2015-02-12 17:50:38 +00:00
John Cupitt 244ab301f7 start final push for vips 8 2015-02-11 17:01:02 +00:00
John Cupitt 5b90e36559 notes 2015-02-10 14:44:35 +00:00
John Cupitt 346a9e70c0 remove --disable-cxx flag
it was getting too hard to support :( automake now generates libtool
lines before configure runs, so it can't know we don't want a C++ link

see https://github.com/jcupitt/libvips/issues/231
2015-02-07 10:37:13 +00:00
John Cupitt 3d902d2feb improvements to python configure 2015-02-06 14:54:52 +00:00
John Cupitt 9d11c02e35 version bump 2015-02-06 13:39:39 +00:00
John Cupitt d6dbfea064 much faster RGB16 -> sRGB path 2015-02-04 16:48:25 +00:00
John Cupitt 0c466b9495 don't use isnormal() to test for crazy FP numbers
it fails for 0.0 and for subnormal numbers, thanks Murat Korkmazov
2015-02-04 15:13:11 +00:00
John Cupitt e429772ae8 turn on leak testing in python test suite 2015-02-02 11:36:29 +00:00
John Cupitt eb5fee5e65 add lower-level cache access 2015-02-01 17:56:48 +00:00
John Cupitt ce557ba6de add VInterpolate wrapper class
to cplusplus, see https://github.com/jcupitt/libvips/issues/230
2015-01-30 21:19:58 +00:00
John Cupitt e8f456a7e2 more tests 2015-01-27 21:45:14 +00:00
John Cupitt 70b60e1dd5 tiny cleanup 2015-01-22 13:19:21 +00:00
John Cupitt 229636fc66 rename vipsthumbnail -o as -f
-o stays as a hidden flag

see https://github.com/jcupitt/libvips/issues/216
2015-01-20 09:10:36 +00:00
John Cupitt 23071d73ac Merge branch 'master' of github.com:jcupitt/libvips
Conflicts:
	ChangeLog
2015-01-19 22:03:05 +00:00
John Cupitt dbd98ba86c disable chroma subsample in jpeg-tiff if Q>=90
see https://github.com/jcupitt/libvips/issues/218
2015-01-19 22:01:13 +00:00
John Cupitt f1d901a229 try to handle tiffs with 8-bit colormaps
see

https://github.com/jcupitt/libvips/issues/220
2015-01-19 14:52:57 +00:00
John Cupitt c805b382fe vipsthumbnail sets an error on failure
conversion errors are ignored as before, but on final exit vipsthumbnail will
return an error code if one or more of the conversions failed

see https://github.com/jcupitt/libvips/issues/219
2015-01-13 17:31:09 +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 6f101ae86b remove VImage::scale()
it clashed with the VipsScale operator, see

https://github.com/jcupitt/libvips/pull/213
2015-01-06 12:00:11 +00:00
John Cupitt 6440830315 required C++ output params were broken
see https://github.com/jcupitt/libvips/pull/213

this now works:

        VImage rows;
	VImage cols = in.profile( &rows );
2015-01-06 11:51:53 +00:00
John Cupitt 90725b9f5e more tests 2015-01-05 13:48:35 +00:00
John Cupitt 6c35ae5540 display default and range in usage
eg. we now see:

$ vips gamma
gamma an image
usage:
   gamma in out
where:
   in           - Input image, input VipsImage
   out          - Output image, output VipsImage
optional arguments:
   exponent     - Gamma factor, input gdouble
  			default: 2.4
			min: 1e-06, max: 1000
operation flags: sequential-unbuffered
2014-12-30 13:16:22 +00:00
John Cupitt 32625146db cpp can set enums from strings
eg.

	set("extend", "copy")->
2014-12-30 11:27:04 +00:00
John Cupitt d077d7c1fc small stuff 2014-12-27 10:00:01 +00:00
John Cupitt b01dd59309 fix VipsBlob read
oops, forgot the .get()
2014-12-27 09:41:01 +00:00
John Cupitt 366e7e3a5e add gobject to Requires: line
vips C and C++ programs can link directly against things in gobject
without appearing to, for example:

	a = VIPS_OBJECT( b );

the macro will expand to include a g_type_check_instance_is_a(). So we
have to have gobject-2.0 in the link line of things like:

	g++ -g -Wall hello8.cc `pkg-config vips-cpp --cflags --libs`

see also

	https://github.com/jcupitt/libvips/issues/196
2014-12-24 10:10:14 +00:00
John Cupitt 1b86de44f4 "make check" works uninstalled
and skips tests for missing features
2014-12-22 10:35:26 +00:00
John Cupitt abdd98409d add configure option for pyvips8
it tests for pygobject as well
2014-12-18 09:15:58 +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 c3102b15bb add python3 support 2014-12-10 17:02:51 +00:00
John Cupitt 76653e9e78 add notes to logs for @density 2014-12-04 21:47:46 +00:00
John Cupitt f8cca8e59d load and save XMP metadata in tiff
see https://github.com/jcupitt/libvips/issues/198
2014-12-03 09:03:09 +00:00
John Cupitt ffe90ef38a add .szi as a synonym for .zip
in dzsave
2014-11-26 14:26:57 +00:00
John Cupitt 4c3461967b duuh fix up misplaced patch 2014-11-25 12:05:04 +00:00
John Cupitt 6bfe9b45b7 Merge branch '7.40' 2014-11-25 12:04:24 +00:00
John Cupitt f66afb78da fix profile handling in XYZ2scRGB
see

https://github.com/lovell/sharp/issues/125
2014-11-25 12:01:13 +00:00
John Cupitt 4b51a9d61f don't strip profiles in XYZ2scRGB
see

https://github.com/lovell/sharp/issues/125
2014-11-25 11:43:48 +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 f16e252b3e Merge branch '7.40' 2014-11-11 20:43:19 +00:00
John Cupitt 8a44d6f7b3 fix memleak in sharpen
see https://github.com/jcupitt/libvips/issues/194
2014-11-11 20:42:26 +00:00
John Cupitt cce90b4fba add pbm save
previously vips could load but not save pbm (one bit) images

fix a few bugs in float load and save as well, and improve one-bit load
2014-11-08 17:40:43 +00:00
John Cupitt cfcd819246 better default resolution for png load
see

https://github.com/lovell/sharp/issues/96
2014-11-04 09:38:21 +00:00
John Cupitt 63469b1c9d merge new C++ API 2014-11-03 09:07:28 +00:00
John Cupitt c56e23e3c2 Merge remote-tracking branch 'origin/7.40'
Conflicts:
	ChangeLog
	configure.ac
2014-10-27 13:47:17 +00:00
John Cupitt 965936307b better bigtiff detection
update Changelog and bump version
2014-10-27 13:45:45 +00:00
John Cupitt 620bff2d78 allow symbolic names for flags
you can now use numbers or names for GFlags values, eg.:

$ vips copy 50020484-00001.png x.png[filter=avg]
$ vips copy 50020484-00001.png x.png[filter=64]

was numbers only before
2014-10-27 11:40:43 +00:00
John Cupitt ad86f45cd9 add autorot as an operator as well 2014-10-19 10:35:10 +01:00
John Cupitt 0a51536162 seems to work 2014-10-17 13:17:44 +01:00
John Cupitt 3d4eecf921 add vips8 plugin support 2014-10-09 12:50:16 +01:00
John Cupitt 5683c3095c Merge remote-tracking branch 'origin/master' into update-cimg 2014-10-08 17:51:40 +01:00
John Cupitt 927b2d7954 remove cimg and gmic
move this to a plugin, it's too big for the core library
2014-10-08 17:51:07 +01:00
John Cupitt bf65a024b6 Merge remote-tracking branch 'origin/7.40'
Conflicts:
	ChangeLog
2014-10-08 13:12:44 +01:00
John Cupitt 9069b2f9ad improve interpretation of maplut output
a mono image though a colour lut needs to take the lut's interpretation
2014-10-08 12:31:36 +01:00
John Cupitt 5225d70438 Merge branch '7.40'
Conflicts:
	ChangeLog
	configure.ac
	libvips/colour/Lab2LabQ.c
	libvips/colour/Lab2LabS.c
	libvips/colour/LabS2Lab.c
	libvips/colour/LabS2LabQ.c
	libvips/colour/float2rad.c
	libvips/colour/sRGB2scRGB.c
	libvips/colour/scRGB2sRGB.c
2014-10-08 12:01:25 +01:00
John Cupitt aa45c81464 fix extra band handling in colour
backport of new colour.c from 7.41
2014-10-08 11:55:24 +01:00
John Cupitt ca2ae681cd add --with-gmic configure option 2014-10-07 14:54:53 +01:00
John Cupitt 3788c85e54 gmic uses an imagevec for input images 2014-10-06 21:52:27 +01:00
John Cupitt d85c5ef3fd Merge branch '7.40' 2014-09-30 12:14:11 +01:00
John Cupitt cad052544c try to make vips_thread_shutdown() optional
see

https://github.com/jcupitt/ruby-vips/issues/55

it's still better to call vips_thread_shutdown(), but not calling it
should no longer leak memory
2014-09-30 11:28:24 +01:00
John Cupitt 154796a8dc rename VIPS_ANGLE_0 as VIPS_ANGLE_D0
and other similar cases

VIPS_ANGLE_0 becomes Vips.Angle.0 in Python, which is very inconvenient, so we
rename ... the D stands for degrees, I think
2014-09-29 13:56:55 +01:00
John Cupitt 21ae8321f2 Merge branch '7.40'
Conflicts:
	ChangeLog
	configure.ac
2014-09-29 12:37:19 +01:00
John Cupitt b1827128ea icc checks input profile compat
check the input profile colourspaces matches the image ... for example,
if a CMYK image has an embedded RGB profile, fall back to the specified
external profile

see:

https://github.com/jcupitt/libvips/issues/183
2014-09-29 11:04:53 +01:00
John Cupitt f467924156 move ImageProperties.xml
it's now in x/, not x/x/, same as the official tool
2014-09-25 11:16:14 +01:00
John Cupitt fd9300750d test extra band handling in dE 2014-09-24 14:52:24 +01:00
John Cupitt f18fd4b089 Merge branch '7.40' 2014-09-19 11:49:30 +01:00
John Cupitt 862d7f03ea tiny cache clean-up 2014-09-19 11:38:16 +01:00
John Cupitt 36d1312a32 Merge branch '7.40' 2014-09-18 09:41:24 +01:00
John Cupitt 14a8c5ad47 add @profile option to pngsave
tiff and jpeg save both have a @profile option, this patch adds one to png as
well, see

https://github.com/jcupitt/libvips/issues/180
2014-09-18 09:38:12 +01:00
John Cupitt ef847de996 done arithmetic testsuite
all passes, woo
2014-09-17 12:03:06 +01:00
John Cupitt de594151a5 rename NOTEQUAL as NOTEQ
since <= is LESSEQ

python has some relational overloads now
2014-09-16 17:25:20 +01:00
John Cupitt c4a3e9a1a0 add VIPS_ARGUMENT_MODIFY
a flag for arguments meaning the operator will modify an input

the python binding uses this to take a copy of the arg before calling
2014-09-15 14:47:34 +01:00
John Cupitt ca0437d002 Merge branch '7.40' 2014-09-12 12:03:47 +01:00
John Cupitt e4461ae1f9 fix vipsthumbnail with broken embedded profiles
if the embedded profile is broken or incompatible with the specified
output profile, retry with the specified input profile

see

https://github.com/jcupitt/libvips/issues/178
2014-09-12 10:51:49 +01:00
John Cupitt b1f3acf17b fix vipsthumbnail
with input cmyk and output rgb profiles both specified ... it was
importing twice, causing a band mismatch

see

https://github.com/jcupitt/libvips/issues/177
2014-09-12 09:04:58 +01:00
John Cupitt 62a98dbdf7 Merge branch '7.40' 2014-09-11 19:29:09 +01:00
John Cupitt b21c47b1c5 add @background arg to save
used to flatten A out of images, if necessary

vipsthumbnail rtd-img.png -o x.jpg[background=255]
2014-09-11 09:18:38 +01:00
John Cupitt 01bd7cad04 support GRAY as an input and output ICC space
see

https://github.com/jcupitt/libvips/issues/176
2014-09-10 09:37:13 +01:00
John Cupitt 2ec0a8b87e Merge branch '7.40'
Conflicts:
	ChangeLog
	configure.ac
2014-09-09 16:58:28 +01:00
John Cupitt 158237254d fix jfif resunit read
see https://github.com/jcupitt/libvips/issues/170

the previous fix just did exif resolution "none", we need jfif "none" as
well
2014-09-09 16:46:16 +01:00
John Cupitt cb9360dac9 Merge branch '7.40' 2014-09-09 12:19:09 +01:00
John Cupitt 6269c852cc support exif res unit "none"
well why would you want that, but it seems some images use it
2014-09-09 12:18:21 +01:00
John Cupitt 891e6db8f0 Merge branch '7.40' 2014-09-09 11:21:28 +01:00
John Cupitt d085351f0f fix mono <-> rgb converter extra band handling
see

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

thanks James
2014-09-09 10:07:35 +01:00
John Cupitt b746984318 Merge branch '7.40'
Conflicts:
	ChangeLog
	configure.ac
2014-09-08 19:49:09 +01:00
John Cupitt a8becfc9d4 bump version to 7.40.8 2014-09-08 19:47:01 +01:00
John Cupitt 5ab3009ce2 add thread_shutdown() to python
see https://github.com/jcupitt/libvips/issues/170
2014-09-07 10:21:01 +01:00
John Cupitt e9ce212b62 make out of order read a fatal error
For png and jpg, out of order must always be a fatal error, since you
can't read from a specific y position.

This was a g_assert() before which meant that this test was missing from
production builds. It's now always a fatal error.
2014-09-02 09:37:08 +01:00
John Cupitt a370e5003e vips array types are more binding-friendly
this all works now:

```python
from gi.repository import Vips

a = Vips.ArrayDouble.new([1,2,3])
a.get()

a = Vips.ArrayInt.new([1,2,3])
a.get()

a = Vips.ArrayImage.new([c, d, e])
a.get()
```
2014-08-31 10:41:53 +01:00
John Cupitt f8f288c1a6 vips_init() comes back
we need a public function for bindings
2014-08-29 13:51:03 +01:00
John Cupitt 43eddbef7a Merge branch '7.40' 2014-08-28 17:19:58 +01:00
John Cupitt 70b35f5ec5 update ChangeLog 2014-08-28 16:44:03 +01:00
John Cupitt 180142b2b1 Merge branch '7.40'
Conflicts:
	ChangeLog
	configure.ac
2014-08-27 14:00:54 +01:00
John Cupitt 86b729150c fix memleak in type.c
see

https://github.com/jcupitt/libvips/pull/164
2014-08-27 13:46:51 +01:00
John Cupitt 30aae507a3 fix memleak in tilecache 2014-08-26 17:07:44 +01:00
John Cupitt a75ddfbd5a fix matlab load
oops, width and height were swapped
2014-08-21 22:01:40 +01:00
John Cupitt 694d86e5c5 fix vipsthumbnail on very-many-core systems
see:

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

we were using UNBUFFERED, but on very-many-core systems this can get out
of order enough to make vipspng free the read object early
2014-08-21 13:05:29 +01:00
John Cupitt 5125cc535c Merge branch '7.40'
Conflicts:
	TODO
2014-08-19 18:04:24 +01:00
John Cupitt 03577ad832 fix dzsave date attr on Windows
see

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

thanks John
2014-08-18 21:30:26 +01:00
John Cupitt cb2b217434 fix 16-bit PNG save
see

https://github.com/jcupitt/libvips/issues/156
2014-08-18 13:54:06 +01:00
John Cupitt 2e2809a6b4 Merge remote-tracking branch 'origin/7.40'
Conflicts:
	ChangeLog
2014-08-17 10:00:03 +01:00
John Cupitt c646356b4f Merge branch 'master' of github.com:jcupitt/libvips
Conflicts:
	ChangeLog
	TODO
2014-08-17 09:58:24 +01:00
John Cupitt 0b896119d4 fix similarity rotate + scale
thanks Topochicho

see https://github.com/jcupitt/libvips/issues/154
2014-08-13 17:44:29 +01:00
John Cupitt fe7bd9bdcc add vips_resize()
a wrapper over affine that just scales ... much faster from the
command-line, since it can set SEQ mode
2014-08-13 13:57:52 +01:00
John Cupitt b24cbb492c Merge remote-tracking branch 'origin/7.40'
Conflicts:
	ChangeLog
	TODO
	configure.ac
	libvips/foreign/vipspng.c
2014-08-12 13:41:52 +01:00
John Cupitt 2f72a9925f more docs work 2014-08-12 13:37:16 +01:00
John Cupitt ed3c56fcbf add an anti-alias filter to vipsthumbnail
vipsthumbnail blurs slightly between shrink and affine, if the affine
will be doing a large shrink
2014-08-11 10:26:12 +01:00
John Cupitt 385b2ea5fa do argb -> rgba for openslide read associated 2014-08-09 22:21:10 +01:00
John Cupitt 296eb8b54e fix pngload with libpng >=1.6.11
thaks Lovell
2014-08-09 17:14:49 +01:00
John Cupitt b25dcc9ebe Merge remote-tracking branch 'origin/7.40'
Conflicts:
	TODO
2014-08-09 17:03:43 +01:00
John Cupitt 12e4acceef note pngload change 2014-08-09 17:03:00 +01:00
John Cupitt 7888526361 fix some compiler warnings
various false positives from gcc -O3 flow analysis
2014-08-05 19:23:56 +01:00
John Cupitt ebeee822bc better rounding behaviour for bicubic
fixed-point bicubic was not rounding to nearest, introducing some noise
in flat areas
2014-08-05 10:02:11 +01:00
John Cupitt f1df91eebb vipsthumbnail defaults to bicubic + noshapen
if bicubic is available
2014-08-04 09:55:18 +01:00
John Cupitt 004c98f296 pngsave interlaced makes a copy of the image
interlaced png is hard to write: you have to make seven passes over the
image to make the whole file. It advertises itself as sequential, it
needs to only ake a single pass. Therefore, it must take a copy in
memory of the image to write.
2014-08-03 09:34:46 +01:00
John Cupitt ecd771cde7 Merge branch 'affine-bug'
Conflicts:
	libvips/resample/transform.c
2014-08-01 16:35:59 +01:00
John Cupitt 274e6c1b2b revise affine, yet again
how can this be so hard

the tougher self-tests in nip2/test/extras now all pass
2014-08-01 16:34:09 +01:00
John Cupitt 9ddca0e99e change @whole_slide to @autocrop
on seconds thoughts, make openslide crop-on-load an option, not the
default

also, clip image bounds against image size
2014-07-31 09:04:32 +01:00
John Cupitt 639c22bf53 add "whole_slide" toggle
openslideload now crops to image bounds (if set) ... use @whole_slide to
stop this autocrop
2014-07-30 12:27:19 +01:00
John Cupitt 0bb8a218bb exit() in fewer cases
we now only exit() when we know the stack has been trashed, just warn in
other cases
2014-07-29 15:23:27 +01:00
John Cupitt 32a8fe117e start working on --disable-deprecated
need to move im_conv() etc to classes to finish this
2014-07-25 18:06:52 +01:00
John Cupitt 0114afa5fb limit nthr on tiny images
we always made N threads for a threadpool ... we could end up making
loads of threads we never used if the image was tiny

for very small images, limit the number of threads we make
2014-07-25 14:51:29 +01:00
John Cupitt a338a48c63 fix a race in im_maxpos_avg() 2014-07-25 13:52:36 +01:00
John Cupitt 0ced5cb24b add webp support to vips7
see https://github.com/jcupitt/libvips/issues/144
2014-07-17 09:09:39 +01:00
John Cupitt a0a6868d90 better error detection in vips_system() 2014-07-17 03:31:58 +01:00
John Cupitt cdecee2705 more vips7 compat fixes
thanks steve
2014-07-16 09:40:26 +01:00
John Cupitt df289f1bea better im_openout() compat 2014-07-15 22:00:45 +01:00
John Cupitt 388f25fc0c vips_scale() needs round to nearest
or we can get rounding errors in some cases
2014-07-14 14:36:35 +01:00
John Cupitt a9fdde9ddb fix im_point()
oops ... helps ruby-vips self test
2014-07-12 15:29:02 +01:00
John Cupitt c2ae9f30c6 fix vips_rawsave_fd()
see https://github.com/jcupitt/libvips/issues/143

thanks aferrero2707
2014-07-04 13:58:47 +01:00
John Cupitt 70eacc4543 Merge branch 'dzsave-metadata'
Conflicts:
	ChangeLog
2014-07-03 09:42:13 +01:00
John Cupitt f562dfdd5b oops 2014-07-03 09:13:01 +01:00
John Cupitt 50c98c39d1 cache the image before write for fits
write must be strictly top-to-bottom for :seq to work
2014-07-02 12:45:19 +01:00
John Cupitt 93d8433270 fix use of header 2014-07-01 14:51:16 +01:00
John Cupitt fc14733b2b Merge branch 'dzsave-metadata' of github.com:jcupitt/libvips into dzsave-metadata
Conflicts:
	ChangeLog
	configure.ac
2014-07-01 08:47:50 +01:00
John Cupitt c5fbe6daa6 more tweaks to dzsave props
add docs too
2014-06-30 12:58:57 +01:00
John Cupitt 8c82ffb865 fix interlaced thumbnails
we need to cache the thumbnail before we write it in case the writer
needs to make several passes

see https://github.com/jcupitt/libvips/issues/140
2014-06-30 12:07:00 +01:00
John Cupitt c2a8c542b6 we assumed GType fitted in an int
which isn't true on freebsd, and perhaps others
2014-06-29 11:17:23 +01:00
John Cupitt 04d130828f add --enable-docs configure option
so you can now stop all docs installing, freebsd likes this
2014-06-27 14:56:11 +01:00
John Cupitt a13ec2aef8 improve short option name handling
we were setting short option names for deprecated options causing
confusion, see:

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

thanks bgilbert
2014-06-27 14:33:40 +01:00
John Cupitt 40e3466482 fix a bash-ism in configure.ac
helps freebsd
2014-06-26 17:18:24 +01:00
John Cupitt a02deb3ac9 stop dzsave zip write at 4gb
see https://github.com/jcupitt/libvips/issues/138

not great, but better than producing a corrupt file
2014-06-25 14:34:13 +01:00
John Cupitt d1e082889f fix guess prefix
oop, basename / dirname swapped
2014-06-24 17:51:29 +01:00
John Cupitt 9ad0942062 update man pages
oops, forgot to update man pages for header -> vipsheader rename
2014-06-24 14:19:57 +01:00
John Cupitt da77b68d3e bump version to 7.40
and rename header and edvips as vipsheader and vipsedit

remove mergeup and find_mosaic
2014-06-23 20:22:50 +01:00
John Cupitt 84d65c1727 Merge branch '7.38'
Conflicts:
	libvips/resample/affine.c
2014-06-18 13:48:08 +01:00
John Cupitt d01beb5411 fix coordinate error in affine
see https://github.com/jcupitt/libvips/issues/131
2014-06-17 14:22:55 +01:00
John Cupitt eed4bfc731 Merge remote-tracking branch 'origin/single-thread-first-tile'
Conflicts:
	ChangeLog
	TODO
2014-06-13 11:46:11 +01:00
John Cupitt d7bad8fd5b cache drops operations on invalidate
we can now enable the vips8 operation cache in nip2, woo!
2014-06-12 13:40:00 +01:00
John Cupitt a8d04a7dd1 add op invalidate stuff
still need to test and link to cache
2014-06-12 09:22:28 +01:00
John Cupitt cbc60722fc skipahead is back
thanks to a new threadpool idea, see

https://github.com/jcupitt/libvips/issues/117
2014-06-10 17:44:31 +01:00
John Cupitt 35533a54cf finish reviding the fixed-up image load/save API 2014-06-08 11:16:58 +01:00
John Cupitt e7743ddc3c finish mosaicing rewrite 2014-05-29 09:35:17 +01:00
John Cupitt 170efb1452 redo im_*merge1() as classes 2014-05-28 18:15:20 +01:00
John Cupitt adfda3cf14 redo im_*mosaic1() as classes 2014-05-28 15:15:06 +01:00
John Cupitt b8886fc209 wrap im_remosaic() as a class 2014-05-27 15:18:19 +01:00
John Cupitt 781a7d4dc9 wrap im_global_balance*() as a class 2014-05-26 15:02:15 +01:00
John Cupitt 4f3b37ad04 wrap im_match*() as a class 2014-05-23 13:46:38 +01:00
John Cupitt ab12cd1c3d wrap im_*mosaic() as classes 2014-05-22 18:14:40 +01:00
John Cupitt 98012d7613 im_*merge() class wrapper works 2014-05-22 16:32:09 +01:00
John Cupitt 4993ff15d6 add Travis CI config
thanks Lovell
2014-05-19 12:54:04 +01:00
John Cupitt dc22d9c4c8 add hough_circle() to vipsCC and python
now exposed to Python and C++
2014-05-17 22:00:36 +01:00
John Cupitt 22d525d54f export a better cache operator for nip2 2014-05-10 14:00:01 +01:00
John Cupitt f6de1e7cb9 make libgsf-1 an optional dependency
dzsave vanishes if you don't have it, but you can still build vips
2014-05-09 13:13:18 +01:00
John Cupitt 1384f9d4e0 Merge branch 'master' into dzsave-gsf
Conflicts:
	ChangeLog
2014-05-04 17:32:42 +01:00
John Cupitt c81a12ee00 vips_system() now uses g_spawn_command_line_sync()
helps stop stray command windows appearing on Windows, better error msg
too
2014-05-03 18:04:25 +01:00
John Cupitt b1b3c6e9de support 1/2/4 bit palette tiff images with alpha 2014-04-30 14:39:50 +01:00
John Cupitt 3dc708d2b6 add @container option to dzsave 2014-04-25 10:26:23 +01:00
John Cupitt 6ab49a9af3 Merge remote-tracking branch 'origin/master' into dzsave-gsf
Conflicts:
	ChangeLog
2014-04-24 18:35:33 +01:00
John Cupitt c03d9440cb added vips_object_set_from_string() 2014-04-23 12:57:49 +01:00
John Cupitt 61891865bf add vips_foreign_save_buffer() 2014-04-22 19:42:13 +01:00
John Cupitt d0f50febbb added vips_foreign_load_buffer() 2014-04-22 16:27:43 +01:00
John Cupitt 3f11403346 add .vips as an alternative vips suffix
helps imagemagick, see

http://www.imagemagick.org/discourse-server/viewtopic.php?f=2&t=25445&p=110491#p110491
2014-04-22 13:22:58 +01:00
John Cupitt 070c9bd5a7 add load from buffer 2014-04-22 10:43:13 +01:00
John Cupitt 325f3b9451 dzsave will write a zip file
but see the TODO in dzsave.c

- no way to pick a tile format, always jpeg
- no way to pick a container format, always zip
- needs testing
- examine memuse, how well do we work for large zips
- can we make a zip over 4gb?
2014-04-19 15:15:25 +01:00
John Cupitt 6d2c4c4d60 8 and 16-bit paletter TIFFs can have alpha
plus 16-bit palette TIFFs now become 16-bit images
2014-04-14 12:16:15 +01:00
John Cupitt 3b977586f9 Merge remote-tracking branch 'origin/7.38' 2014-04-09 15:34:09 +01:00
John Cupitt a17ef9b7c8 vips_system() allows many input images
you can change the image argument order too, with %Ns

added postbuild signal
2014-04-09 11:42:03 +01:00
John Cupitt bfbc132879 updated German translation
thanks Chris

see

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=743613

https://github.com/jcupitt/libvips/issues/116
2014-04-04 21:51:26 +01:00
John Cupitt 052a73eb8e Merge remote-tracking branch 'origin/master' into hough
Conflicts:
	ChangeLog
2014-04-01 12:50:08 +01:00
John Cupitt ee53b01886 vips_hough_circle() added 2014-04-01 12:27:15 +01:00
John Cupitt 252897dc83 Merge remote-tracking branch 'origin/7.38' 2014-03-30 15:28:40 +01:00
John Cupitt 10354be6c3 ooops, sorry Andrea 2014-03-30 15:26:36 +01:00
John Cupitt bc79cb4f62 crash-causing typo in vips_rawsave()
thanks Alessandro
2014-03-30 15:23:55 +01:00
John Cupitt 9b13188fc1 add "mode" to vips_draw_image() 2014-03-28 13:55:56 +00:00
John Cupitt 5f0f188659 drop the default max operations
the cache defaulted to 10,000 operations, fine for nip2, not fine for
batch-style applications

thanks Rafael
2014-03-28 09:48:27 +00:00
John Cupitt 7752eb89e0 add vips_draw_add()
and start vips_hough_circle()
2014-03-26 20:33:31 +00:00
John Cupitt 9a1fa499f5 split hough to a base class and a line detector 2014-03-24 16:56:54 +00:00
John Cupitt 755f9ed1cb comment improvements 2014-03-23 11:29:39 +00:00
John Cupitt ffd61773c4 changelog update too 2014-03-18 21:20:57 +00:00
John Cupitt 4c31c77d80 add vips_sum()
sum an array of images
2014-03-18 19:39:47 +00:00
John Cupitt 58239a4583 vipsthumbnail fix
fix to vipsthumbnail ... --crop could fail for very non-square images,
thanks Alessandro
2014-03-18 17:41:39 +00:00
John Cupitt 66d0e28dc2 remove the embedded thumbnail reader
remove the embedded thumbnail reader, embedded thumbnails are too unlike
the main image wrt. rotation / colour / etc.
2014-03-07 16:57:20 +00:00
John Cupitt ffed43dffe add basic auto-rotate support to vipsthumbnail 2014-03-06 19:39:18 +00:00
John Cupitt 7ed644789c Merge branch 'master' of github.com:jcupitt/libvips 2014-03-06 16:04:05 +00:00
John Cupitt 28b6602683 Merge remote-tracking branch 'origin/7.38'
Conflicts:
	ChangeLog
	configure.ac
2014-03-06 16:03:33 +00:00
John Cupitt 62307d18ef fix to vips_grey() --uchar 2014-03-06 13:56:12 +00:00
John Cupitt 1cf0768f94 clean up the vipsthumbnail fix
nicer way to copy the metadata
2014-03-05 11:41:16 +00:00
John Cupitt 9e8798d541 sync 2014-02-25 18:56:16 +00:00
John Cupitt 1e698b403d Merge remote-tracking branch 'origin/7.38' 2014-02-25 18:55:30 +00:00
John Cupitt 4f22878215 backport the webp load from buffer fix 2014-02-25 16:21:44 +00:00
John Cupitt bc2bfd489b Merge remote-tracking branch 'origin/7.38' 2014-02-25 13:21:41 +00:00
John Cupitt 594af28c8e remove support for seq mode read for extract etc.
see comment in sequential

We used to not stall if the read position was zero, ie. if the first
request was for a line some way down the image, and assume this was
extract or somesuch. But this could sometimes break on busy, many-core
systems.

Think of a better way to support eg.  extract safely in sequential mode.
2014-02-25 12:28:36 +00:00
John Cupitt af8cecde1a Merge branch '7.38'
Conflicts:
	ChangeLog
	configure.ac
	libvips/foreign/jpeg2vips.c
2014-02-24 21:56:42 +00:00
John Cupitt d843521f77 jpeg load from buffer shouldn't modify buffer
fill_input_buffer() could write to the input buffer

see: https://github.com/jcupitt/libvips/pull/107

thanks Lovell
2014-02-24 17:10:07 +00:00
John Cupitt dd835bdac9 fix webp load from buffer
was broken horribly, see

fa8b7e66ca
2014-02-24 09:46:52 +00:00
John Cupitt a562f46e69 VipsLinear allows complex constants 2014-02-22 16:08:46 +00:00
John Cupitt ba75a0c0ad Merge remote-tracking branch 'origin/7.38' into draw
Conflicts:
	ChangeLog
	configure.ac
2014-02-13 16:10:52 +00:00
John Cupitt d201245a99 more locking for properties
need more locking on property create / lookup on very-threaded systems
2014-02-13 14:27:02 +00:00
John Cupitt bf2acf2621 fix --sharpen=none
thanks ferryfax
2014-02-13 08:42:59 +00:00
John Cupitt 025e56c894 im_label_regions() is a class 2014-02-11 14:55:31 +00:00
John Cupitt f4e970fb72 im_draw_smudge() done 2014-02-11 13:28:13 +00:00
John Cupitt 25fbe71c74 do im_read_point() / im_draw_point() 2014-02-10 21:54:54 +00:00
John Cupitt 33551fbf4c im_draw_rect() is a class 2014-02-10 11:07:00 +00:00
John Cupitt 495a6c7af1 im_draw_image() is a class 2014-02-09 19:38:53 +00:00
John Cupitt e809f9d169 stats operations are sequential 2014-02-08 14:14:53 +00:00
John Cupitt aa93889480 vips_paintmask() compiles 2014-02-07 14:59:18 +00:00
John Cupitt 95a9c52138 start line draw
line is working, doing a line_mask subclass
2014-02-06 14:46:45 +00:00
John Cupitt c5d5fd515d Merge remote-tracking branch 'origin/master' into draw
Conflicts:
	ChangeLog
	libvips/draw/flood.c
2014-02-05 09:26:15 +00:00
John Cupitt 5989a2a37e better rounding in vips_flatten()
thanks allesandro
2014-02-04 19:50:13 +00:00
John Cupitt e3dbbab570 vips_circle() works
flood next
2014-02-04 09:52:50 +00:00
John Cupitt 0509249c16 Merge remote-tracking branch 'origin/7.38'
Conflicts:
	ChangeLog
	configure.ac
2014-02-04 09:21:59 +00:00
John Cupitt de0448b53d undeprecate VIPS_MASK_*
ruby-vips was using them, thanks ahacking
2014-02-04 09:11:43 +00:00
John Cupitt fb489bad53 move vips_image_decode() into the public API 2014-02-03 14:29:57 +00:00
John Cupitt b72818a2b8 add VIPS_OPERATION_DEPRECATED
and fix a tiny problem in vipswrap7
2014-02-03 13:23:58 +00:00
John Cupitt 874511470f add source_space to vips_colourspace()
you can now specify the source colourspace, if you want
2014-02-03 09:33:15 +00:00
John Cupitt 9cb152596c bg render thread quits on shutdown
fixes a small memleak
2014-01-29 09:07:58 +00:00
John Cupitt fa2305e8d3 Merge remote-tracking branch 'origin/7.38' 2014-01-26 11:37:00 +00:00
John Cupitt acbb77ac40 add "rgbjpeg" flag to tiffsave
add a secret "rgbjpeg" flag to tiffsave to help IIPImage server

iipimage server 0.9.9 and earlier don't handle YCbCr-coded JPEG tiffs
correctly ... setting --rgbjpeg makes vips output RGB coded JPEG tiff
which iipsrv can handle.

Using this flag makes files 2x to 3x larger with no quality improvement,
so it is tagged as deprecated to keep it hidden.
2014-01-26 10:43:32 +00:00
John Cupitt e7efa8e6f2 more auto-decode 2014-01-23 16:51:32 +00:00
John Cupitt 13a6ed1457 Merge remote-tracking branch 'origin/7.38'
Conflicts:
	ChangeLog
	configure.ac
	libvips/conversion/falsecolour.c
	libvips/resample/affine.c
2014-01-23 15:25:09 +00:00
John Cupitt ae6ea3ba87 support many Radiance readers active at once
we had some globals for the Rad reader state, whcih was fine with the
old reader, but with the new sequential one you can have several active
at once
2014-01-23 15:06:37 +00:00
John Cupitt f5799c4608 falsecolour failed for some image types
type prevented the auto-cast-first-band thing working
2014-01-23 14:27:45 +00:00
John Cupitt bf9fc7f855 auto-unpack RAD in affine 2014-01-22 10:02:38 +00:00