Michael Drake
a373fd766e
lzw: Always read three bytes on fast path to avoid swtich.
2021-04-18 17:50:42 +01:00
Michael Drake
98e8673dbc
lzw: Restrict pointers through code reader.
2021-04-18 17:50:42 +01:00
Michael Drake
71eb67ba7c
lzw: Constify table pointers in writer functions.
2021-04-18 17:50:42 +01:00
Michael Drake
020fc32108
gif: Switch complex decoder over to continuous lzw API.
2021-04-18 17:50:42 +01:00
Michael Drake
05fddf49e3
lzw: Direct output into frame data, avoiding stack.
...
If the frame is non-interlaced, and has the same rowstride as the
full image, then we can decode lzw directly into the output image.
2021-04-18 17:50:42 +01:00
Michael Drake
0d394487c1
gif: Handle any uncompressed output before exiting due to error.
2021-04-18 17:50:42 +01:00
Michael Drake
5426e9b81a
lzw: Add function for decoding multiple LZW codes at a time.
2021-04-18 17:50:42 +01:00
Michael Drake
ed3363b899
lzw: Add support for resumable output of a single code.
...
This allows handling of insufficient output buffer space.
2021-04-18 17:50:42 +01:00
Michael Drake
abd8619bef
lzw: Return output array from decode function instead of init.
2021-04-18 17:50:42 +01:00
Michael Drake
01fde32f99
gif: Frame decoding: Rearrange for readability.
2021-04-18 17:50:42 +01:00
Michael Drake
7426c3d500
gif: Frame decoding: Simplify transparency check.
2021-04-18 17:50:42 +01:00
Michael Drake
663bf07aac
lzw: Remove written member from context.
...
Not needed now that clear codes are handled normally.
2021-04-18 17:50:42 +01:00
Michael Drake
64ddf20599
lzw: Adapt main code handling to handle clear codes too.
2021-04-18 17:50:42 +01:00
Michael Drake
367f64c5bc
lzw: Output values in picture order.
2021-04-18 17:50:42 +01:00
Michael Drake
06443e64e9
lzw: Store code's value count in table.
2021-04-18 17:50:42 +01:00
Michael Drake
8d8aa0dd46
gif: Split out gif frame data decode.
2021-04-18 17:50:42 +01:00
Michael Drake
c9a639d2bd
lzw: Rename a bunch of structures, functions and variables.
...
new_code -> code
last_value -> value
first_value -> first
previous_entry -> extends
current_entry -> table_size
previous_code -> prev_code
previous_code_first -> prev_code_first
current_code_size -> code_size
current_code_size_max -> code_max
lzw__next_code -> lzw_read_code
2021-04-18 17:50:42 +01:00
Michael Drake
26c83999cc
lzw: Split out output writing.
2021-04-18 17:50:42 +01:00
Michael Drake
92d53337d8
lzw: Rename minimum_code_size to match what it's called in spec.
2021-04-18 17:50:42 +01:00
Michael Drake
ac2d57c288
lzw: Slight simplification of clear code handling.
2021-04-18 17:50:42 +01:00
Michael Drake
eb07e204e7
lzw: Avoid code size increment check when dictionary is full.
2021-04-18 17:50:42 +01:00
Michael Drake
1714cf6c3a
lzw: Split out dictionary augmentation.
2021-04-18 17:50:42 +01:00
Michael Drake
47a441f86b
lzw: Create #define for number of dictionary entry slots.
2021-04-18 17:50:42 +01:00
Michael Drake
f66e20e017
lzw: Simplify new code handling.
...
The tiny overhead of an extra time through the output loop
is worth the simpler code.
2021-04-18 17:50:42 +01:00
John Cupitt
21c565d5d6
improve comment
2021-04-14 11:32:08 +01:00
John Cupitt
da6fe210b4
Merge pull request #2195 from libvips/text-colour-rendering
...
Text colour rendering
2021-04-13 08:42:14 +01:00
John Cupitt
cc04449dc5
remove extraeous "brew upgrade"
2021-04-12 20:40:00 +01:00
John Cupitt
31fe274626
fix mono rendering
...
always render RGBA, then in mono mode just use the alpha
2021-04-12 17:29:54 +01:00
John Cupitt
b27a10c547
ask brew to update/upgrade
...
might help CI failures on macOS
2021-04-12 16:55:01 +01:00
John Cupitt
b4fe2c7b8b
Note pagocairo dep in README
2021-04-12 16:52:14 +01:00
John Cupitt
985a3e2282
reenable fontfile
2021-04-12 15:46:56 +01:00
John Cupitt
f53959b824
switch font rendering to pangocairo
...
to make colour font rendering work
2021-04-12 15:11:18 +01:00
John Cupitt
8412b8233c
start adding colour text rendering
...
try eg.
vips text x.png 😀 --rgba --dpi 300
But it's not working :( need to tyweak something else?
2021-04-12 10:59:50 +01:00
John Cupitt
db22eb4d4f
add p3.icm to makefile.am
...
and fix make dist
2021-04-08 10:53:15 +01:00
John Cupitt
a2147d64be
Merge pull request #2190 from lovell/add-icc-profile-p3
...
colour: add a fallback for the increasingly-common P3 profile
2021-04-08 09:42:37 +01:00
Lovell Fuller
d56a47829b
colour: add a fallback for the increasingly-common P3 profile
...
Uses the CC0-licensed 'magic' compatibility profile from
https://github.com/saucecontrol/Compact-ICC-Profiles#display-p3
2021-04-07 21:44:33 +01:00
John Cupitt
930078a6f9
note jp2k support in README
2021-04-03 18:50:18 +01:00
John Cupitt
234c468489
comment fix
2021-04-03 16:32:23 +01:00
John Cupitt
f726edb7f7
remove stray bitmap_create call
...
missed this one in the delay gif alloc patch
2021-04-03 12:28:41 +01:00
John Cupitt
07e73475c1
make a patch for the libnsgif alloc delay
2021-04-02 12:00:50 +01:00
John Cupitt
9e10f4bf0f
Merge branch 'libnsgif-delay-alloc'
2021-04-02 11:59:44 +01:00
John Cupitt
c8363d4e61
Merge pull request #2179 from lovell/nsgifload-limit-dimensions
...
nsgifload: enforce maximum GIF dimensions of 16383
2021-04-02 11:44:30 +01:00
Lovell Fuller
701dcc7500
nsgifload: enforce maximum GIF dimensions of 16383
...
The GIF spec allows dimensions up to 65535 (16-bit unsigned),
but this equates to 17GB/frame.
A common task is to convert animated GIF to animated WebP,
and the latter supports dimensions up to 16383 (14-bit unsigned),
so that seems like a sensible limit and equates to 1GB/frame.
Also makes the error message consistent with other loaders.
2021-04-01 19:26:32 +01:00
John Cupitt
9bdf5e8cda
try delaying libnsgif alloc until read frame
...
gives the caller a chance to detect memory bombs
2021-04-01 12:53:57 +01:00
John Cupitt
e4453f8b18
update libnsgif
...
pick up a couple of patches
2021-03-29 11:56:58 +01:00
John Cupitt
9f15567f2c
fix fuzzer error
...
see https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=32638
2021-03-29 09:19:14 +01:00
John Cupitt
77ccd04cbe
Merge pull request #2168 from lovell/nsgifload-sanity-check-dimensions
...
nsgifload: check dimensions before memory allocation
2021-03-28 22:42:29 +01:00
Lovell Fuller
744e42edd1
nsgifload: check dimensions before memory allocation
...
GIF dimensions are 16-bit unsigned
Initialise memory to zero as image may be truncated
2021-03-28 19:59:21 +01:00
John Cupitt
0054c7dafa
add some more gifload tests
2021-03-28 13:49:34 +01:00
John Cupitt
b2cfe6a0a0
nsgifload was not setting filename
2021-03-28 13:38:41 +01:00