Commit Graph

1186 Commits

Author SHA1 Message Date
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