Commit Graph

397 Commits

Author SHA1 Message Date
John Cupitt 0193e23c64 only flatten in find_trim if there is an alpha
oops, flatten always flattens, it doesn't check for alpha first

see https://github.com/jcupitt/libvips/issues/670
2017-09-18 14:48:15 +01:00
John Cupitt 0d93f9f9dd note flatten before getpoint for find_trim
add note on flatten before getpoint

see https://github.com/jcupitt/libvips/issues/670
2017-09-18 12:56:35 +01:00
John Cupitt cfe907deb3 missing bandor in find_trim
it cropped too aggressively on images with highly-coloured edges

see https://github.com/jcupitt/libvips/issues/670
2017-09-18 12:44:19 +01:00
Alistair Thomas d289b61fdc Improve the gobject introspection annotations for Image.avg () 2017-09-17 22:51:14 +01:00
John Cupitt 2a9c522de8 Merge branch 'master' into add-find-trim 2017-07-26 16:45:27 +01:00
John Cupitt 18595ca0dd find_trim works for all bg images
width/height == 0 if whole image is bg
2017-07-26 15:13:12 +01:00
John Cupitt 34970d0cf2 remove some casts
and use VIPS_AREA instead
2017-07-26 14:57:27 +01:00
John Cupitt 254e6a8b2a flatten alpha, bg default adjusts
bg default adjusts to image type, thanks Kleis
2017-07-26 14:56:28 +01:00
John Cupitt 6359c92c01 polish, add test for find_trim 2017-07-26 10:43:28 +01:00
John Cupitt effc1d53d0 works 2017-07-25 19:00:21 +01:00
John Cupitt 1e7541bfb8 add find_trim
compiles, not yet working
2017-07-25 14:52:45 +01:00
John Cupitt cbd9fad040 fix a few more problems with input args
a few other operators were modifying input args and messing up caching
2017-05-29 18:58:24 +01:00
John Cupitt 0a5375b6cd Merge branch 'master' into remove-seq-stalling 2017-03-15 12:26:44 +00:00
John Cupitt 51f96ce9af argh revert the arg order change
we need to patch bindings instead
2017-03-13 08:24:06 +00:00
John Cupitt 507212e3d8 Merge branch 'master' into remove-seq-stalling 2017-03-08 09:30:48 +00:00
John Cupitt 205fb817e8 change three C API funcs to match Python/C++/CLI
vips_math2_const(), vips_boolean_const() and vips_relational_const() had
the const and oper args reversed from the Python/CLI/C++ API

add something to check for arg priority conflicts and resolve the
conflicts it found
2017-03-07 14:28:31 +00:00
John Cupitt 362c7efdfc argh reapply seq removal 2017-03-06 11:55:38 +00:00
John Cupitt 3d961653a9 use VIPS_MAX_COORD in a few more places
we had RANGE defined in each file before
2017-03-01 11:29:39 +00:00
John Cupitt e6b20cbd0f Revert "remove stalling"
This reverts commit 959f412380.
2017-02-27 10:26:32 +00:00
John Cupitt 959f412380 remove stalling 2017-02-21 15:03:15 +00:00
John Cupitt 7136053451 sort max/min results by y and x coordinate
previously the list of maxima or minima found by max/min were in found
order, so essentially random

they now sort equal values by y then x coordinate, so the results are
consistent between runs, provided there are fewer maxima / minima than
are being tracked
2017-01-24 14:25:15 +00:00
John Cupitt fb544e3f25 add note about non-determinism in stats
added a note to the docs for max/min/stats about non-determinism in the
results if there are many maxima/minima

thanks Mark
2017-01-24 12:14:55 +00:00
John Cupitt f302bd6570 all working! 2017-01-12 14:06:54 +00:00
John Cupitt d1ef5a6890 compiles, needs more testing 2017-01-11 14:05: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 ebecede462 fix doc typo 2016-10-18 12:48:47 +01:00
John Cupitt ded6f17fa8 fix up new buffer.c
and make getpoint() use the threading system
2016-10-14 09:00:21 +01:00
John Cupitt fa79fcde35 more overcomp reporting 2016-05-19 14:40:16 +01:00
John Cupitt 1ae92bb15f make optional args into bullets
make docs easier to read
2016-05-02 10:12:37 +01: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 e582f13d13 tiny polish to hist_find
slightly faster again
2016-02-28 12:08:06 +00:00
Lovell Fuller c49e882239 Improve performance of histogram generation for 1-4 band uchar.
The inner loop cannot be auto-vectorized by the compiler so
manually unroll for common cases to achieve a 2x-3x speed-up.
2016-02-23 19:31:19 +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 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
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 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 32f6f5ed22 fix atan() for -ve angles 2015-11-20 14:45:51 +00:00
John Cupitt 40173838d1 use atan2 and hypot more
might be a little quicker
2015-11-19 14:34:03 +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 d3351c77a3 revert a test change for coverity 2015-09-30 11:47:10 +01:00
John Cupitt e6a8485d70 oops 2015-09-30 11:37:42 +01:00
John Cupitt 67a45a3749 more small coverity tweaks 2015-09-30 11:11:11 +01:00
John Cupitt d88dd1ab72 fix a few coverity issues
a couple of minor bugs, and a lot of warnings
2015-09-30 09:54:50 +01:00
John Cupitt e62df8c573 fix more cppcheck warnings
cppcheck now passes, with a few false positives

see https://github.com/jcupitt/libvips/issues/331
2015-09-29 09:23:01 +01:00
John Cupitt 35232e751d make log/log10 zero-avoiding
stops -inf appearing in images
2015-08-11 13:59:11 +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 d8018e8126 improve min/max docs
thanks Paul, see

https://github.com/jcupitt/libvips/issues/252
2015-04-12 11:25:46 +01:00
John Cupitt c4672f389b oops in vips_getpoint() C wrapper 2015-03-08 15:13:56 +00:00
John Cupitt d20f0bf617 improve bandalike
better setting of interpretation in output
2015-03-05 12:10:26 +00:00
John Cupitt 3ceec6682f better error message from getpoint 2015-01-05 13:37:27 +00:00
John Cupitt 9b3351f73a vips_getpoint() frees input region sooner
we were leaving a region active after _build(), which caused problems later if
another operation triggered a rewind (for example)
2014-12-16 13:26:01 +00:00
John Cupitt 394149e9e8 fix all docs warnings 2014-11-17 10:32:40 +00:00
John Cupitt be4ffa6d8a more pyvips8 docs
and cleanups of various small doc markup errors
2014-11-07 14:49:18 +00:00
John Cupitt d7083d7a03 make arrayimage ref/unref 2014-09-23 14:38:46 +01:00
John Cupitt bb50478d77 fix more, moreeq
there was a problem with operation caching in complex programs because of
the way we were swapping pointers
2014-09-17 11:21:34 +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 a82fa01781 more tests 2014-09-15 13:58:31 +01:00
John Cupitt 24ff40e9be find_indexed wasn't banning complex images 2014-09-15 13:25:04 +01:00
John Cupitt 133e2f94e9 fix linear with mismatched vectors
we had:

	$ vips linear sarto_ng.v x.v "1 2 3" "4"
	$ vipsheader x.v
	x.v: 1865x2556 float, 1 band, b-w
	$ vips linear sarto_ng.v x.v "1" "4 5 6"
	$ vipsheader x.v
	x.v: 1865x2556 float, 3 bands, b-w

there was a typo in linear.c
2014-09-15 12:41:05 +01:00
John Cupitt 12d623fa25 fix hist_find crash with non-u8/u16 input 2014-09-15 11:42:21 +01:00
John Cupitt cc599844d2 fix getpoint(0,0)
and add more tests
2014-09-15 09:06:36 +01:00
John Cupitt 666a0a6f83 fix avg of complex
oops, can't avg mod2, duh
2014-09-12 14:01:20 +01:00
John Cupitt 7608524f61 fix up gtk-doc comments
fewer warnings now, phew
2014-09-03 14:32:55 +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 5125cc535c Merge branch '7.40'
Conflicts:
	TODO
2014-08-19 18:04:24 +01:00
John Cupitt 573b94e3ec more docs argh 2014-08-19 17:57: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 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 35533a54cf finish reviding the fixed-up image load/save API 2014-06-08 11:16:58 +01:00
John Cupitt 5b19fc4f8d update notes 2014-06-05 14:49:27 +01:00
John Cupitt 3a4569e99b longer stall time for ahead-threads
we must stall for AGES occasionally, really the stall time is about
enforcing a certain thread ordering
2014-05-22 13:40:06 +01:00
John Cupitt c3caa595a2 complex lut was broken 2014-05-21 17:34:53 +01:00
John Cupitt 087eb233f7 auto-decode to lab, not labs
helps in many places
2014-05-19 23:35:27 +01:00
John Cupitt 011fd99a1a start fixing up the auto-decode stuff 2014-05-19 14:53:47 +01:00
John Cupitt 1772588eb6 small fixes
help cleanup and debug if operations fail
2014-05-16 08:28:44 +01:00
John Cupitt 8f6e959133 include oops 2014-04-28 12:59:19 +01:00
John Cupitt ca30eac21a add credit to David 2014-04-04 10:39:08 +01:00
John Cupitt 04070445eb oops in hough_circle.c 2014-04-03 21:37:23 +01:00
John Cupitt b1c0acf3e2 docs for hough funcs 2014-04-01 19:45:51 +01:00
John Cupitt fb24bc84d3 normalise hough_circle output
correct for number of pixels in circumference
2014-04-01 19:39:10 +01:00
John Cupitt 59b36f8351 fix hough_circle params 2014-04-01 18:54:00 +01:00
John Cupitt ee53b01886 vips_hough_circle() added 2014-04-01 12:27:15 +01:00
John Cupitt 4c1d07f53a vips_hough uses vips_draw_image() to accumulate
rather than vips_sum() ... 2x faster
2014-03-28 14:11:05 +00:00
John Cupitt 7752eb89e0 add vips_draw_add()
and start vips_hough_circle()
2014-03-26 20:33:31 +00:00
John Cupitt bb87bb3690 small hough cleanups 2014-03-25 08:45:57 +00:00
John Cupitt 4d758af087 use a LUT for hough sin/cos 2014-03-24 19:45:03 +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 067b2a6ac1 started splitting hough.c up 2014-03-24 14:56:04 +00:00
John Cupitt 755f9ed1cb comment improvements 2014-03-23 11:29:39 +00:00
John Cupitt 0e608c89bf basic hough transform seems to work 2014-03-22 17:07:35 +00:00
John Cupitt 06b8b7a0f3 stuff 2014-03-20 09:15:15 +00:00
John Cupitt 4c31c77d80 add vips_sum()
sum an array of images
2014-03-18 19:39:47 +00:00
John Cupitt ea1aeaec8c argh revert complex linear again
how did it get tangled up
2014-03-06 19:43:45 +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 499b977043 back out the complex linear stuff
needs cooking for a while longer in a branch
2014-03-04 14:32:43 +00:00
John Cupitt a562f46e69 VipsLinear allows complex constants 2014-02-22 16:08:46 +00:00
John Cupitt c3def93361 ban size == 0 for max/min 2014-02-19 17:13:12 +00:00
John Cupitt 25fbe71c74 do im_read_point() / im_draw_point() 2014-02-10 21:54:54 +00:00