Commit Graph

4196 Commits

Author SHA1 Message Date
John Cupitt
7f08e8fd28 remove stray flag 2019-07-27 16:13:54 +01:00
John Cupitt
01a82646a1 experiment with minimise in insert
try minimising sub after we've passed it
2019-07-27 13:40:18 +01:00
John Cupitt
67f3cc13ec remove old close-early comment from openexr load
no longer relevant in the world of minimise
2019-07-25 11:34:50 +01:00
John Cupitt
53e0bc6698 pdfload / pdfiumload use minimise to close early
see https://github.com/libvips/libvips/issues/1370#issuecomment-514949292
2019-07-25 11:31:21 +01:00
John Cupitt
9373d63d6e better early close for gif header read 2019-07-24 18:17:54 +01:00
John Cupitt
265cb8dffd close heif early for header read err
we were only closing early if there was an error during pixel read
2019-07-24 18:00:37 +01:00
John Cupitt
e11811a316 fix early close for corrupt gifs
we were not closing early on a read error during gif scan

see https://github.com/libvips/libvips/issues/1370#issuecomment-514172899
2019-07-24 17:43:14 +01:00
John Cupitt
264f41df1c Merge branch '8.8' 2019-07-24 16:07:39 +01:00
John Cupitt
3510e7abcf fetch HEIC metadata from the main image
since thumbs don't have it, see https://github.com/libvips/libvips/issues/1373
2019-07-24 16:06:49 +01:00
John Cupitt
28090d614f oops logic mixup
Kleis pointed out a suprious return in png load minimise.

see https://github.com/libvips/libvips/issues/1370#issuecomment-513706480
2019-07-23 12:06:35 +01:00
John Cupitt
7f3174c3e5 Merge branch 'master' into loader-minimise-experiment 2019-07-23 11:45:24 +01:00
John Cupitt
019ac9a14d Merge branch 'master' of github.com:libvips/libvips 2019-07-22 12:56:47 +01:00
John Cupitt
a6fbf1af36
Merge pull request #1264 from omira-sch/add-oss-fuzz
improve fuzz targets and oss-fuzz integration
2019-07-21 17:48:58 +01:00
John Cupitt
4f2f4b4577 add gif, heif, rad, webp early close 2019-07-21 12:29:25 +01:00
John Cupitt
2c654060f9 experiment with a different early-close strategy
We close loaders early in order to save file handles, and on Windows to
make sure that files can be deleted as soon as possible.

Currently loaders do this by watching the Y coordinate of requests and
freeing the fd when the final line of the file is fetched. This is messy
and does not always work, since there are cases when the final line is
not fetched.

Instead, this patch gets loaders to listen for "minimise" on their
output and close on that. This signal is emitted on all upstream images
whenever a threadpool finishes a scan of an image and is usually used to
trim caches after computation.

See https://github.com/libvips/libvips/issues/1370
2019-07-20 16:31:30 +01:00
John Cupitt
67ad303d43 add VIPS_PROFILE env var to enable profiling 2019-07-19 16:04:07 +01:00
John Cupitt
64a6a27326 Merge branch '8.8' 2019-07-19 11:59:38 +01:00
John Cupitt
8cf6a9f9ca don't attempt to save large XMP to JPG
jpeg_write_marker() with some libjpeg versions will throw a fatal
error with large chunks.

To write >64kb XMP it you need to parse the whole XMP object,
pull out the most important fields, code just them into the main
XMP block, then write any remaining XMP objects into a set of
extended XMP markers.

http://wwwimages.adobe.com/content/dam/Adobe/en/devnet/xmp/pdfs/XMPSpecificationPart3.pdf

Instead, just warn and skip large XMP blocks.

see https://github.com/libvips/libvips/issues/1372
2019-07-19 11:37:36 +01:00
Oscar Mira
f3cdf25923 disable PNG CRC checks in fuzzing mode 2019-07-15 14:02:27 +02:00
Oscar Mira
3ea72c286e improve fuzz targets and oss-fuzz integration
It replaces current fuzz setup with 5 new fuzzers integrating them with
top-level Makefile. It now supports multiple fuzzing engines and Google's
oss-fuzz. By default, the fuzzers are linked against an standalone runner to
easily reproduce bugs.
2019-07-15 14:02:27 +02:00
John Cupitt
2da56b918d note about libtiff error handlers 2019-07-13 14:28:50 +01:00
John Cupitt
044f8b74f6 Merge branch 'master' into add-tiff-webp-zstd 2019-07-11 13:50:47 +01:00
John Cupitt
c3e7504835 Merge branch '8.8' 2019-07-10 17:44:39 +01:00
John Cupitt
7f47acab56 tiny improvement 2019-07-10 17:43:17 +01:00
John Cupitt
5e2d66d14b better early shutdown behaviour in shrinkv
read the tail of the input to force early shutdown in seq readers

does reducev need something similar?

see https://github.com/kleisauke/net-vips/issues/12
2019-07-09 16:58:30 +01:00
John Cupitt
52ee3b083f add webp and zstd support to tiffsave
needs some tests still
2019-07-08 10:39:44 +01:00
John Cupitt
063234fde1 set webp loop even if we strip
Make sure that webp loop_count is set, even if strip is enabled.

See https://github.com/libvips/libvips/issues/1339
2019-07-08 08:48:06 +01:00
John Cupitt
c7f98ad0a5 Merge branch '8.8' 2019-07-07 13:12:51 +01:00
John Cupitt
f45f0ecef4 limit resize if shrink would drop axis <1px
vips_resize() will break the aspect ratio and limit resize on an axis if
it would result in an image of less than 1px on that axis

see https://github.com/lovell/sharp/issues/1782#issuecomment-508921306
2019-07-07 10:19:33 +01:00
John Cupitt
c8ca8f02ba keep magicksave delay array alive for longer
fixes a segv in magicksave_buffer ... we could try to use delay after im
had been unreffed in some circumstances
2019-07-06 17:45:41 +01:00
John Cupitt
3871369d3e Merge branch 'master' into deftomat-master 2019-07-06 14:50:40 +01:00
John Cupitt
e7b6709f99 use a single loop to get frame and alpha metadata
we had two before, plus use the do/while form recommended for libwebp
frame iteration
2019-07-06 14:46:29 +01:00
John Cupitt
515bf68f46 reformatting for vips2webp
- move a couple of small functions inline for simplicity
- mark "gif-delay" as deprecated
- minor reformatting
2019-07-06 13:37:33 +01:00
John Cupitt
777c360774 safer gifload delay array init
- remove assumptions about n_pages
- minor reformatting
2019-07-06 11:34:20 +01:00
Tomáš Szabo
bd9c97feed
Changes based on review 2019-07-05 17:23:29 +02:00
Przemysław Sobala
1c30a8567c [webp] Use well documented use_sharp_yuv option instead of preprocessing 2019-07-05 13:14:32 +02:00
John Cupitt
80f247cfb2 Merge branch '8.8' 2019-07-03 15:33:43 +01:00
John Cupitt
8cb2b613b7 note new heifsave param in changelog
plus tiny reformatting
2019-07-03 15:04:58 +01:00
John Cupitt
4a2c80043d
Merge pull request #1360 from lovell/heifsave-expose-compression
heifsave: expose compression option
2019-07-03 13:34:08 +01:00
Lovell Fuller
42f9f78c86 heifsave: expose compression option
improve error messaging, add further suffixes
2019-07-03 13:07:58 +01:00
John Cupitt
26100041e7 fewer warnings on tiffload
We were setting TIFFTAG_JPEGCOLORMODE == JPEGCOLORMODE_RGB for *all*
images, but libtiff warns if you use it on an image which is not
jpg-compressed.

Only set it for jpg-compressed images.

See https://github.com/libvips/libvips/issues/1329
2019-07-02 12:23:53 +01:00
John Cupitt
e596fe5cd3 Merge branch 'master' into add-unlimited-to-svgload 2019-07-01 12:04:54 +01:00
Tomáš Szabo
091bb853dd
Merge remote-tracking branch 'upstream/master' 2019-06-30 18:03:45 +02:00
John Cupitt
25af46a189 add rgba -> rgb stage for webp output 2019-06-30 16:53:11 +01:00
Tomáš Szabo
166aae1440
sync fork 2019-06-30 17:10:56 +02:00
John Cupitt
aac01126af magicksave supports strip option 2019-06-29 20:23:46 +01:00
John Cupitt
20b9d77086 don't need to test xoff / yoff 2019-06-29 13:18:29 +01:00
John Cupitt
d3cd51a8c3 check alpha on animation rects too
see https://github.com/libvips/libvips/issues/1351#issuecomment-506942104
2019-06-29 11:50:26 +01:00
John Cupitt
55e49831b8 add "unlimited" to svgload
By default librsvg blocks SVGs > 10MB for security. This patch adds an
"unlimited" flag to remove this check.

We have to switch to using gio to get the librsvg API for this This
needs testing on the platforms we support.

We'll also need to bump the min version of librsvg we require in
configure.ac.

See https://github.com/libvips/libvips/issues/1354
2019-06-28 13:48:18 +01:00
John Cupitt
7d8b6d9d9f note webp change 2019-06-28 04:09:31 +01:00
John Cupitt
8a354c5aec improve webp rgba handling
disable webp alpha output if all frame fill the canvas and are solid

see https://github.com/libvips/libvips/issues/1351
2019-06-27 18:44:38 +01:00
John Cupitt
01a92679b5 oop left some DEBUG turned on 2019-06-27 17:34:07 +01:00
John Cupitt
72c103f95a Revert "remove no-alpha webp support"
This reverts commit d1094847a3.
2019-06-27 17:27:53 +01:00
John Cupitt
80648c2d2f text autofit could sometimes underfit
The autofit loop would terminate if either width or height fitted exactly,
but this could happen very early by chance. This patch makes it keep
looping until it finds a dpi which just fits.

See https://github.com/libvips/libvips/issues/1352
2019-06-27 17:19:53 +01:00
John Cupitt
d1094847a3 remove no-alpha webp support
We used to try to spot webp images with no alpha and load them as plain
RGB, but it turns out this is difficult to do reliably, especially
for animated images.

This patch simply removes support, so all webp images now load as RGBA.

See https://github.com/libvips/libvips/issues/1351
2019-06-27 16:37:11 +01:00
Tomáš Szabo
42218cd613
formatting: use tabs instead of spaces 2019-06-21 15:59:32 +02:00
Tomáš Szabo
ae50136845
feat: support frame delays 2019-06-21 15:06:22 +02:00
John Cupitt
ea2367e24c forgot to rename the wrapper script
and add tiny dbg to gifload
2019-06-20 12:18:40 +01:00
John Cupitt
2aef873fcd add vips_image_get/set_array_int() 2019-06-20 11:32:47 +01:00
John Cupitt
8a98bea063 fix vipsthumbnail for pyr tiff files
thumbnail was not testing pyramidal tiff images for pyramidness correctly.

see https://github.com/libvips/libvips/issues/1297
2019-06-19 17:56:09 +01:00
John Cupitt
65c41ef7a5 fix a couple of clang compiler warnings 2019-06-15 17:35:46 +01:00
John Cupitt
75e69cc1e5 disable Orc if CET is on
If we are building with -fcf-protection (run-time checking of
indirect jumps) then Orc won't work. Make sure it's off.

Orc may support -fcf-protection in the future, but does not in June 2019.

https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html#index-fcf-protection
https://gitlab.freedesktop.org/gstreamer/orc/issues/17

see https://github.com/libvips/libvips/issues/1006#issuecomment-501802550
2019-06-14 14:22:00 +01:00
John Cupitt
db36e19ffa note PNG XMP support in docs 2019-06-13 09:26:09 +01:00
John Cupitt
37a3a6322c remove 256 band limit from arithmetic.c
there was a fixed-size array in vips__bandup()

see https://github.com/libvips/libvips/issues/1335
2019-06-12 09:22:30 +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
eaaa203f0a better compat with older IM
in the ismagick() test
2019-06-08 17:32:04 +01:00
John Cupitt
dc8555201d use our sniffer as well is ismagick()
We need to check files for magickload with our sniffer as well as the
imagemagick one.
2019-06-08 17:13:49 +01:00
John Cupitt
bb75535151 much faster ismagick
We used to Ping files to see if IM would load them, but this can be
extremely slow for file formats like ARW.

Instead, use GetImageMagick() ... it just checks the magic number.
2019-06-08 16:47:40 +01:00
John Cupitt
eb6c803481 istiff tests first dir rather than magic number
We were testing for TIFF by checking the magic number at the head of the
file. However, formats like ARW are TIFF-like without being TIFF, and
will not load with tiffload.

Instead, try reading the whole of the first directory. This is enough to
stop tiffload trying to load files where it will simply fail
immediately, and make libvips fall back to eg. imagemagick.

see https://github.com/libvips/libvips/issues/1304
2019-06-07 17:52:13 +01:00
John Cupitt
dc16f1253a fix a memleak in tiff pyr to memory
we were not freeing layers other than the top layer
2019-06-06 10:20:14 +01:00
Lovell Fuller
8d0a42efe2 Ensure WebP quality option is set for lossless 2019-06-05 23:01:06 +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
81861baee9 add note to docs in vips_init() 2019-05-30 19:46:05 +01:00
John Cupitt
675c6361eb revise page-height rules again
Only set `page-height` if `n` is set as an argument. This means you only
get a multi-page image if you specifically ask for it.
2019-05-29 14:18:46 +01:00
John Cupitt
bd8a6980f5 more consistent behaviour for multi-page load
Some loaders were setting page-height even when the user was loading a
single page triggering unexpected multi-page behaviour from later
savers.

New rule: only set page-height when loading more than one page.

See https://github.com/libvips/libvips/issues/1318
2019-05-29 10:10:28 +01:00
John Cupitt
c7e213a9fa LinearGRAYColorspace is rather recent, it seems 2019-05-24 17:47:50 +01:00
John Cupitt
02bdb8b96c better error message for "unsupported colorspace"
we just printed the enum number before
2019-05-24 17:42:10 +01:00
John Cupitt
5855321638 improve realpath() compat on older libc
older libc didn't allow a NULL for the second param
2019-05-24 15:24:18 +01:00
John Cupitt
da402cee23 faster and more accurate bilinear
go to fixed point earlier in calculation of interpolation coefficients
2019-05-14 13:10:45 +01:00
John Cupitt
29d9673fd8 update comment 2019-05-14 08:20:30 +01:00
John Cupitt
44afdbc314 more accurate bicubic of int16 images
use float path for int16 -- the fixed-point path can miss by a small
amount

see https://github.com/libvips/libvips/issues/1309
2019-05-13 22:05:41 +01:00
John Cupitt
c9ba0915c1 more accurate bilinear for int16 pixels
fixed-point interpolation could give small errors

see https://github.com/libvips/libvips/issues/1309

need a similar change for bicubic etc.
2019-05-13 18:32:48 +01:00
John Cupitt
3e60e816ed split heifload / heifsave
test for libheif supporting decode and encode, and turn heifload and
heifsave on and off
2019-05-08 21:13:00 +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
447e0f3ea2 Merge branch 'master' into revise-composite 2019-05-08 16:14:01 +01:00
John Cupitt
3921e63561 fix vips image writes of more than 2gb
With very wide images and huge numbers of threads, it was possible to
trigger an int overflow in write_vips().

Thanks @erdmann

See https://github.com/libvips/libvips/issues/1306
2019-05-07 13:56:52 +01:00
John Cupitt
bcdaeca578 fix anim webp load for some sizes
rounding on resize for each frame needs to match resize for whole image
2019-05-01 16:34:58 +01:00
John Cupitt
b1c995b2d9 more animated webp load fixes
webpload scale on load works for animated images
2019-05-01 16:25:13 +01:00
John Cupitt
37865e34f8 oop silly webp jpg mixup in last commit 2019-04-30 20:07:08 +01:00
John Cupitt
394f9baa5e deprecate webpload @shrink, use @scale instead
We need a fractional scale for thumbnail on webp to work well. @shrink
still works, but @scale overrides it.
2019-04-30 18:29:16 +01:00
John Cupitt
29d29533d4 better pdfload page size rounding
We were doing simple round down for page size with @scale param. But
this makes it very sensitive to rounding errors, so do rint() instead.

vips-resize() does rint() on the output size as well for the same
reason.

See https://github.com/libvips/libvips/issues/1297#issuecomment-487682785
2019-04-30 16:08:26 +01:00
John Cupitt
7326a409c6 reenable webp shrink-on-load in thumbnail
the breakage is in animated webp load with preshrink rather than
thumbnail
2019-04-29 17:30:34 +01:00
John Cupitt
ea9e477ad3 better gif-loop handling (again)
setting loops to 0 was broken
2019-04-29 17:12:20 +01:00
John Cupitt
522ddc1430 better thumbnailing of multipage docs
shrink-on-load should now work for multipage PDF thumbnailing

see https://github.com/libvips/libvips/issues/1297
2019-04-29 17:05:19 +01:00
John Cupitt
8482aa3ff1 tiny cleanup
some left-over pyramid detection code in tiff2vips
2019-04-29 12:52:47 +01:00
John Cupitt
53b43e0497 fix setting of iterations in magicksave
ImageMagick uses 0 to mean unset, so we must always add 1. See
coders/gif.c.

See https://github.com/libvips/libvips/issues/1302
2019-04-29 08:43:39 +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
efadb5dc42 fix thumbnail shrink-on-load
we had the alignment check in the wrong place
2019-04-27 22:33:20 +01:00
John Cupitt
120c3b62d9 more cmyk jpg tweaks
passes tes_formats.sh now
2019-04-27 13:27:18 +01:00
John Cupitt
536c76f966 Merge branch 'master' into improve-cmyk-jpg 2019-04-27 11:02:26 +01:00
Lovell Fuller
aff0c4cde5 Ensure png_set_interlace_handling before png_read_update_info 2019-04-26 22:29:16 +01:00
John Cupitt
3245dd301b Merge branch 'master' into szi-associated 2019-04-25 17:25:32 +01:00
John Cupitt
4a9db0e83f fix animated webp background handling
We were using WEBP_FF_BACKGROUND_COLOR as the background colour, but
that's not correct, it should always be zero (transparent).
WEBP_FF_BACKGROUND_COLOR is there just as a hint when flattening down to
plain RGB.
2019-04-24 18:18:21 +01:00
John Cupitt
0102a10b49 seems to work 2019-04-24 17:04:31 +01:00
John Cupitt
0df3f0268c Merge branch 'master' into revise-thumbnail 2019-04-24 16:11:25 +01:00
John Cupitt
bb22f66453 oop remove git markup 2019-04-24 16:11:08 +01:00
John Cupitt
8b71d0179c Merge branch 'master' into revise-thumbnail 2019-04-23 20:27:30 +01:00
John Cupitt
d2a9a20a78 fix thumbnail regression with cmyk in and out
56d98f3ef0 broke cmyk->cymk thumbnails
2019-04-23 17:09:20 +01:00
John Cupitt
56d98f3ef0 thumbnail no longer needs to import cmyk
since colourspace knows about cmyk now
2019-04-23 11:35:13 +01:00
John Cupitt
12bc5fbbe3 revise set_stacksize() once more
so we g_info() if we change it
2019-04-23 10:12:08 +01:00
John Cupitt
76aca0370f revise set_stacksize() again 2019-04-23 10:01:35 +01:00
Abdul Chaudhry
c6b9015799
fixes set_stacksize 2019-04-22 09:09:05 -07:00
John Cupitt
23955c8511 Merge branch '8.7' 2019-04-21 11:41:26 +01:00
John Cupitt
4a7b80cc26 ban chroma subsample in non-jpg tiffs
tiffcp barfs on these too
2019-04-21 11:39:31 +01:00
John Cupitt
27d8cd40fe Merge branch '8.7' 2019-04-20 17:35:39 +01:00
John Cupitt
472293c8ed rationalize member names in tiff read
they were rather confusing
2019-04-20 17:34:59 +01:00
John Cupitt
b26b2105dc oop dbg code committed by mistake 2019-04-20 12:14:27 +01:00
John Cupitt
7e4ebb3a94 fix stacksize on glibc
- need to define _GNU_SOURCE for glibc to get pthread_setattr_default_np()
- don't warn if we already have enough stack
- reformat to libvips standard
- add note to docs

see: https://github.com/libvips/libvips/pull/1291
2019-04-20 12:07:27 +01:00
John Cupitt
36bd9dfe4a
Merge pull request #1291 from abdollar/set_stack_size_linux
provide an option to set the default stack size on linux
2019-04-20 11:29:05 +01:00
John Cupitt
8fbbfd752f set png chunk limit to 50mb
we did have it unlimited, which could perhaps leave us open to DOS
attacks
2019-04-20 10:29:24 +01:00
John Cupitt
ee854d43c4 add configure test for png_set_chunk_malloc_max 2019-04-20 06:07:18 +01:00
John Cupitt
8d7e03237a allow huge png metadata chunks
By default, libpng refuses to open files with a metadata chunk larger than
8mb. Disable this sanity check.

See: https://github.com/lovell/sharp/issues/1664
2019-04-20 05:54:37 +01:00
Abdul Chaudhry
25bfad1306
provide an option to set the default stack size on linux 2019-04-19 08:59:45 -07:00
John Cupitt
5301df3d6b Merge branch '8.7' 2019-04-19 16:47:51 +01:00
John Cupitt
6acfcb0506 don't attempt to read YCBCR tiffs in scanlines
scanline read of YCBCR images will crash libtiff
2019-04-19 16:46:53 +01:00
John Cupitt
56e5e3c714 fix memleak on read error in webp
webp read could leak under some error conditions
2019-04-19 15:17:27 +01:00
John Cupitt
3a940e7080 note leak fix 2019-04-19 15:10:56 +01:00
John Cupitt
da2773000a oop remove dbg code 2019-04-19 15:03:33 +01:00
John Cupitt
7aa46b258a fix memleak in jpegsave_buffer with some errors
under some error conditions, jpegsave_buffer could forget to release a
half-built image
2019-04-19 15:01:20 +01:00
John Cupitt
c98da89ac9 Merge branch '8.7' 2019-04-19 12:47:35 +01:00
John Cupitt
691383c2b8 better rejection of broken embedded profiles
icc_import and _transform now test the embedded profile more carefully.
It must now be a valid profile and must be compatible with the image.

see https://github.com/libvips/libvips/issues/1286
2019-04-17 16:19:38 +01:00
John Cupitt
c8ba6fcae5 tiny cleanups 2019-04-16 18:11:37 +01:00
John Cupitt
ce24917d4a only read webp bg in anim
non-anim webp does not use the background property

see https://github.com/libvips/libvips/issues/1261
2019-04-16 17:52:09 +01:00
John Cupitt
bafc5775f0 fix ms/cs mixup in webp load/save
there was a mixup between milliseconds (what webp uses for timestamps)
and centiseconds (what gif uses for delay times)
2019-04-16 17:12:57 +01:00
John Cupitt
670d109a67 fix webp anim load
we were dropping the first frame and duplicating the last frame, thanks
to a < / <= mixup

see https://github.com/libvips/libvips/issues/1261
2019-04-16 16:54:47 +01:00
John Cupitt
e081ae2d99 experiment with app14 decode 2019-04-15 10:50:42 +01:00
John Cupitt
6a3b197f31 smoother aniamted webp write
set the timestamp for the fake final frame equal to the last actual
frame ... removes the anim hitch

we are still mysteriously dropping a frame though

see https://github.com/libvips/libvips/issues/1261
2019-04-12 17:06:42 +01:00
John Cupitt
827d8bca7e fix make dist 2019-04-11 18:20:39 +01:00
John Cupitt
6ea7085116 missing ! on vips_dbuf_write_amp() 2019-04-11 17:14:24 +01:00
John Cupitt
080ab87d37 Merge branch 'master' into HEAD 2019-04-11 16:18:39 +01:00
John Cupitt
91d0e7e3d0 move kill mechanism to public API
the vips_image_set_kill() system was internal. Move it to the public
API.

See eg.:

https://github.com/kleisauke/net-vips/issues/31
2019-04-06 16:53:42 +01:00
John Cupitt
66f1b4408c never use tiff memcpy mode for ycbcr images
We were still using memcpy mode for some strip YCbCr images. Clean up
read var naming to make the logic easier to follow.
2019-04-01 17:10:10 +01:00
John Cupitt
1f100c0c42 better buffer sizing in tiff reader
We were not setting JPEGCOLORMODE_RGB early enough, so buffers could be
undersized in some circumstances.

Thanks omira-sch.
2019-03-31 12:55:30 +01:00
Crashoz
9967ed2455
Fixed vips_rect
Fixed typo that broke function vips_rect
2019-03-22 15:43:10 +01:00
John Cupitt
57ce5a3343 set interlace flag for interlaced pngs
if libpng is recent enough
2019-03-20 21:50:56 +00:00
John Cupitt
640994b64a fix a possible segv writing images to buffers
if write failed, vips_image_write_to_buffer() could segv

thanks @dbouron !

see https://github.com/libvips/libvips/issues/1248
2019-03-20 17:32:44 +00:00
John Cupitt
18c12fd66d remove some old sanity-checks
regions can have null generate now
2019-03-20 16:28:22 +00:00
John Cupitt
af0dc5265f use glib's b64 encode/decode, if available
see https://github.com/libvips/libvips/issues/1263
2019-03-20 13:51:41 +00:00
John Cupitt
d7f9ad8b41 improve base64 encode
- better data source too large check
- could write up to three bytes too far in worst case
- remove dead base64.h
- add an assert for overflow

see https://github.com/libvips/libvips/issues/1263
2019-03-20 12:50:44 +00:00
John Cupitt
16d6e995a3 update assert in png read
Strip height in PNG read assert was out of date, casuing errors when
built with debug enabled.

see https://github.com/libvips/libvips/issues/1260
2019-03-19 14:04:32 +00:00