John Cupitt
cb1927e1b7
make C and vector path for composite match
...
one was <, one was <= for HARD_LIGHT
no effect on result, but it's better if they are consistent
2022-06-03 16:15:51 +01:00
Kleis Auke Wolthuizen
0337c09700
Cleanup gettext handling ( #2695 )
...
Use GLib's i18n support instead of copying and pasting that
logic into its own header. This deprecates the vips/intl.h
header in favour of glib/gi18n.h.
2022-02-27 15:27:28 +00:00
John Cupitt
c5f2fea8bf
fix a gcc warning with clang pragmas
2022-02-22 10:06:43 +00:00
John Cupitt
f39e2e271d
don't invalidate in sinkscreen
...
it was called from a bg thread and could race when under heavy load, eg.
vipsdisp displaying animated jpg images
2021-06-06 16:53:00 +01:00
Kleis Auke Wolthuizen
305714c978
Move max_band_vec to first position
2021-03-23 16:47:53 +01:00
Kleis Auke Wolthuizen
e7faebf6af
Tell the compiler that v4f is aligned
...
It's guaranteed that this is now aligned on a 16-byte boundary.
2021-03-20 11:33:37 +01:00
Kleis Auke Wolthuizen
5ef9c84f97
Use cross-platform functions for allocating aligned memory
...
A malloc library is expected to provide a better implementation.
2021-03-15 11:10:16 +01:00
Kleis Auke Wolthuizen
a55513a194
Ensure max_band vector is aligned on a 16-byte boundary
...
See https://github.com/mstorsjo/llvm-mingw/issues/190
2021-03-12 14:27:19 +01:00
John Cupitt
c9af99c2f7
add CMYK as a compositing space
...
might work!
2020-06-27 12:08:25 +01:00
John Cupitt
73c1331439
swap abs() for fabs() in composite
...
The non-vector fallback path had abs(double). Thanks brcarp.
See https://github.com/libvips/libvips/issues/1572
2020-03-11 09:08:39 +00:00
John Cupitt
8b1817ddd0
fix a couple of clang warnings
2019-08-09 15:22:56 +01:00
John Cupitt
ad98222073
better behaviour for vips_region_fetch()
...
we weren't clipping the fetch area against region valid, so in some
cases we could return many more pixels than expected
see https://github.com/libvips/pyvips/issues/103
2019-06-09 20:38:13 +01:00
John Cupitt
5657099223
fix composite for some combinations of blend modes
...
composite could get mixed up blend modes if:
- many images being composited
- some small and positioned with x/y
- at least one unskippable blend mode
phew!
2019-06-04 15:24:54 +01:00
John Cupitt
d5ca1ddfd4
all tested and working
...
revised formula for in/out/dest-in/dest-out, for vector and scalar paths
see https://github.com/libvips/libvips/issues/1301
2019-05-08 18:16:40 +01:00
John Cupitt
b100f5a025
start revising composite again
...
we can get ugly sparkles in transparent areas in some cases ... start
reworking some modes
see https://github.com/libvips/libvips/issues/1301
2019-04-29 07:43:14 +01:00
John Cupitt
6bc564a1e1
turn on smalltile
...
2D locality helps a lot with many subimages
2018-12-07 16:43:44 +00:00
John Cupitt
2a32a95be9
new subimage code for composite done!
...
seems to work, passes all tests
2018-12-07 16:11:58 +00:00
John Cupitt
7b19ad8dc1
composite subimage positioning almost done
...
--x fails though? odd
vips composite2 Gugg_coloured.jpg PNG_transparency.png x.jpg over --x 600 --y 100
--x causes the dice to clip, but not translate
2018-12-06 18:28:55 +00:00
John Cupitt
2c26c23163
composite in scanlines, not pixels
...
try compositing a scanline at a time, should improve cache locality for
deep image stacks
seems to work, needs benchmarking
2018-11-27 18:27:38 +00:00
John Cupitt
e6f271df10
remove stop-at-solid feature
...
We used to stop compositing when we reached the first solid image, but
that only works for modes like OVER.
Instead, composite all images, regardless of transparency.
See https://github.com/libvips/libvips/issues/928
2018-11-27 14:51:56 +00:00
Lovell Fuller
ec2ad85279
Silence 'missing sentinel' warnings in GCC v6+
2018-09-04 11:00:39 +01:00
John Cupitt
3b1e3e1841
add Mitchell kernel
...
see https://github.com/jcupitt/libvips/issues/966
2018-06-12 12:55:10 +01:00
John Cupitt
cc29a13cc7
revise composite position code slightly
...
- move x/y into composite and out of composite base, have separate x/y int
params for composite2
- upsize later for a small speed improvement
- doc comment
- note in changelog
see https://github.com/jcupitt/libvips/pull/934
2018-06-11 17:04:29 +01:00
John Cupitt
8693179ef2
Merge pull request #934 from medakk/compositexy
...
Adding x,y arguments to vips_composite
2018-06-11 16:00:29 +01:00
Angel Sánchez
7125608904
WinSDK stdlib.h has only abs function for int, long, long long and __int64 parameteres, cstdlib has the abs function with a double parameter
2018-05-31 14:00:35 +02:00
Karthik Karanth
8d04dab0db
remove unnecessary args in composite2
2018-04-09 13:14:03 +05:30
Karthik Karanth
d06f420763
use vips_embed to position images
2018-04-09 12:57:21 +05:30
Karthik Karanth
e406015fe8
add args
2018-04-07 13:57:27 +05:30
John Cupitt
421f659d33
allow 1 mode in composite
...
reused for all joins
see https://github.com/jcupitt/pyvips/issues/30
2018-01-30 10:12:03 +00:00
John Cupitt
5fd2ecf81d
remove limit on n image in composite
...
composite was limited to a max of 64 images ... remove the limit
see https://github.com/jcupitt/pyvips/issues/30
2018-01-30 09:48:34 +00:00
John Cupitt
97a4ed2ca9
fix a c++ warning
...
see https://github.com/jcupitt/libvips/pull/864
2018-01-26 07:56:43 +00:00
John Cupitt
94f458ed04
fix some compiler warnings
2017-12-13 15:49:12 +00:00
John Cupitt
c5139a0e50
doc fixups
...
various small things; fix the docs for composite, reduceh and reducev
2017-12-04 13:42:31 +00:00
John Cupitt
b876f1d904
try to fix composite docs
2017-12-04 10:40:43 +00:00
John Cupitt
14fd2af396
add composite2 class
...
so we have a nice CLI interface to the new operator
2017-11-30 12:47:56 +00:00
John Cupitt
61fc94946a
reverse order of arrays in composite
...
base first now ... makes a better API for bindings
2017-10-08 12:27:49 +01:00
John Cupitt
f0aeed1c64
regenerate cpp binding for new methods
2017-10-06 16:39:52 +01:00
John Cupitt
95c8a1915b
all doneo
...
seems to work!
2017-10-06 16:00:54 +01:00
John Cupitt
f430209a47
more getting ready
2017-10-06 08:19:44 +01:00
John Cupitt
df8a2f4802
move to a prescale / unprescale model
...
our own prescale / unprescale loops
2017-10-05 15:42:44 +01:00
John Cupitt
07d6424a3e
fix compositing space
...
typo
2017-10-03 17:51:35 +01:00
John Cupitt
ce4a3bc5f6
speedups, add missing paths, docs
2017-10-02 15:34:49 +01:00
John Cupitt
9f62b963b9
test for C++ vector arithmetic
...
clang seems to have shuffle but not mixed vector and scalar
2017-10-02 10:23:06 +01:00
John Cupitt
7b9c969e39
test for vector shuffle
2017-10-02 09:22:06 +01:00
John Cupitt
99568356ab
add a configure test for vector_size
2017-10-02 08:17:11 +01:00
John Cupitt
645618592c
off by one error
2017-10-01 19:52:54 +01:00
John Cupitt
3a43fd4057
vectorize 3 band case
...
needs to test for gcc though
2017-10-01 19:07:02 +01:00
John Cupitt
37ef9c2074
whitespace
2017-09-29 12:44:37 +01:00
John Cupitt
7dda5810f9
rewrite composite in c++
...
easier to read, will be easier to add PDF operators
2017-09-29 11:54:42 +01:00