Commit Graph

4391 Commits

Author SHA1 Message Date
John Cupitt
d32bc97ccb start hacking it in 2015-11-16 11:08:10 +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
d88304a297 sync 2015-11-12 09:15:31 +00:00
John Cupitt
03a4e54649 slightly less stupid float->int mask
still not quite right
2015-11-11 16:51:08 +00:00
John Cupitt
f32ab06a1c fix test suite 2015-11-11 15:00:15 +00:00
John Cupitt
4c51f5b36d tune cache sizes a bit more 2015-11-11 13:00:25 +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
aedb174537 note 2015-11-11 08:33:41 +00:00
John Cupitt
ca51b46e9a docs, c++, all done 2015-11-07 20:54:00 +00:00
John Cupitt
295b18585a python uses bandjoin_const when possible
added a test case, speedup seems worthwhile
2015-11-07 20:34:56 +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
3ed0904fab fix travis 2015-11-06 15:56:13 +00:00
John Cupitt
2f98f38d8a started bandjoinconst 2015-11-06 14:58:32 +00:00
John Cupitt
de65da85b9 smarter conversion of float masks to int
we were just rint()ing masks going from float -> int, but this could
give bad results in some cases, with output images becoming darker
or lighter, as individual elemets moved up or down

now we adjust the output scale to try to keep the overall brightness
the same, if we can

see: https://github.com/jcupitt/libvips/issues/344
2015-11-06 14:29:23 +00:00
John Cupitt
d38a78d0ea notes 2015-11-05 12:40:03 +00:00
John Cupitt
82d96fb73e notes 2015-11-04 21:19:31 +00:00
John Cupitt
30a3d2f7fa fix shrink with non-int args
fix a silly bug, add a test
2015-11-04 12:00:49 +00:00
John Cupitt
d126a733a0 better rgb16/grey16 conversion
things like float tagged as rgb16 did not save well as png ... new
conversion rules should help

see https://github.com/jcupitt/libvips/issues/344
2015-11-04 11:34:52 +00:00
John Cupitt
7f400da698 better Py docs
talks about new_from_memory etc.
2015-11-04 11:03:36 +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
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
07ca974273 note on IM link problems
vips won't build against current imagemagick

seems to be a change in IM, see:

	http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=28603

see also:

https://github.com/jcupitt/libvips/issues/343
2015-10-30 14:53:35 +00:00
John Cupitt
c27fce059d Merge branch 'master' of github.com:jcupitt/libvips 2015-10-27 12:08:53 +00:00
John Cupitt
d73d7e6e18 type 2015-10-27 12:08:43 +00:00
John Cupitt
3b34308e6d only allow [] to enclose options
we could pick up ( ) too easily before

see https://github.com/jcupitt/libvips/issues/342
2015-10-26 13:59:55 +00:00
John Cupitt
9cad049051 notes 2015-10-26 11:06:57 +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
649c30018e add more links to README 2015-10-23 09:45:20 +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
9a4d82653c ignore ':' in col 1 of vips7 paths
oh argh, we were mangling windows paths

see https://github.com/jcupitt/build-win32/issues/11
2015-10-13 14:21:17 +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
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
b1cd4d1124 add doc note for operation.new
since language bindings use it
2015-10-13 07:28:58 +01:00
John Cupitt
ceb1b96d06 note that quadratic is unfinished 2015-10-08 17:40:37 +01:00
John Cupitt
3e16302701 bump version to 8.2 for the next cycle 2015-10-07 14:55:28 +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
a7766b28b3 improve py docs 2015-10-07 12:20:22 +01:00
John Cupitt
2b2bf30fbd oops, update cpp binding 2015-10-06 22:45:37 +01:00
John Cupitt
db291daf81 two small fixes for dzsave
fix a tiny leak, fix coloured @background
2015-10-06 13:30:25 +01:00
John Cupitt
8f4dfa5cb6 Merge pull request #335 from PolarNick239/patch-1
acinlude.m4: python3 compatible print
2015-10-05 08:38:44 +01:00
Nickolay Polyarniy
b28c530979 acinlude.m4: python3 compatible print
Python3 and python2 compatible print call in configure script.
2015-10-05 01:55:58 +03:00
John Cupitt
f1802ade84 fix a segv with small images and tiff pyr
images smaller than a tile would crash the tiff writer in pyramid mode

see https://github.com/jcupitt/libvips/issues/333
2015-10-02 15:44:18 +01:00