Commit Graph

6875 Commits

Author SHA1 Message Date
John Cupitt 8e25eef3d0 make ppm load default to msb first
We has lsb first as the default, breaking 16-bit PPM load. Thanks ewelot.

see https://github.com/libvips/libvips/issues/1894
2020-11-22 16:00:34 +00:00
John Cupitt a446f2d6d9 oops typo in magick7 load 2020-11-22 06:33:11 +00:00
John Cupitt c17e696243 backport gifheight check
ensure gifheight can't oevrflow

see https://github.com/libvips/libvips/pull/1892
2020-11-21 14:25:09 +00:00
John Cupitt 1e5ac06f84 fix a possible read loop for truncated gifs 2020-11-20 13:46:24 +00:00
John Cupitt d971c75d6f block 0 width or height images from imagemagick
IM could return 0 width and/or height for some crafted images. Block
these.

Thanks @Koen1999.

See https://github.com/libvips/libvips/issues/1890
2020-11-20 12:17:42 +00:00
John Cupitt 98641ba153 add read loops to gifload
and check for error in ppnmload.
2020-11-12 13:21:33 +00:00
John Cupitt a09027b2a5 forgot to advance the buffer pointers
thanks kleis

see https://github.com/kleisauke/net-vips/issues/101#issuecomment-726046152
2020-11-12 12:32:51 +00:00
John Cupitt 2dd6fc1f36 note read fixes in changelog 2020-11-12 12:18:22 +00:00
John Cupitt ff450497ff add read loops to heif and ppm as well
We were not looping on vips_source_read() in these loaders, so they
could fail when reading from very slow pipes.

See https://github.com/kleisauke/net-vips/issues/101
2020-11-12 12:11:35 +00:00
John Cupitt c0102c5814 better GraphicsMagick image write
We were not setting matte or depth correctly, thanks bfriesen.
2020-11-12 12:00:11 +00:00
Kleis Auke Wolthuizen 0a91e2d8c7 Ensure that streams are properly read in spngload 2020-11-11 21:17:07 +00:00
John Cupitt 6894159ad5 fix icc-profiles and dzsave --no-strip
We were not copying metadata down pyramid layers in dzsave, so
--no-strip didn't allow icc profiles on tiles.

Thanks altert

See https://github.com/libvips/libvips/issues/1879
2020-11-11 10:02:46 +00:00
John Cupitt 1686725117 block annoying INFO messages on some older glibs
Some old glibs can display INFO messages by default. Block these
ourselves.

See https://github.com/libvips/libvips/issues/1876
2020-11-10 11:03:18 +00:00
John Cupitt 4de9b56725 flush target at end of write
we were missing end-of-write flushes on four save operations

thanks harukizaemon

see https://github.com/libvips/ruby-vips/issues/256
2020-11-04 09:28:25 +00:00
John Cupitt 39899582d4 add tests for tiff pyr save region-shrink flag
we were testing the flag before, but not that the result was correct

see https://github.com/libvips/libvips/issues/1875
2020-11-03 23:44:11 +00:00
John Cupitt 85f3ac6d8f fix tiff pyramid save region-shrink
we'd forgotton to connect it up

thanks imgifty

see https://github.com/libvips/libvips/issues/1875
2020-11-03 23:14:44 +00:00
John Cupitt 91d9610a55 fix out of bounds read in tiffload
libtiff can change the value of some fields while scanning a corrupt
TIFF file and this could trigger an out of bounds read.

This patch makes tiffload more cautious about rescanning a TIFF
directory before reading out header fields.
2020-11-03 11:48:21 +00:00
Kleis Auke Wolthuizen 4533375f63 Fix centre convention 2020-11-02 13:51:27 +01:00
Kleis Auke Wolthuizen fdc140e8e9 Round sum values to the nearest integer in *_notab 2020-11-02 13:51:27 +01:00
Kleis Auke Wolthuizen 49d8051e22 Revert "Remove round-to-nearest behaviour"
This reverts commit ac30bad6
2020-11-02 13:51:27 +01:00
John Cupitt ae82bcc3e8 fix out of bounds exif read in heifload
We were subtracting 4 from the length of the exif data block without
checking that there were 4 or more bytes there.
2020-10-20 08:54:54 +01:00
John Cupitt 0131d4d3eb fix vips7 webp load
webp load using the vips7 interface was crashing, thanks barryspearce

see https://github.com/libvips/libvips/issues/1860
2020-10-19 14:34:02 +01:00
John Cupitt b1e636346a relax is_a heic test rules
32 was a little too small, see https://github.com/libvips/libvips/issues/1861
2020-10-18 22:36:15 +01:00
John Cupitt f1d2d4030e fix build with libheif save buit not load
We had some definitions inside the #ifdef HEIFLOAD.

Thanks estepnv

https://github.com/libvips/libvips/issues/1844
2020-10-09 14:02:53 +01:00
John Cupitt 678b6d5c95 fix a regression in the C path for dilate/erode
A ++ had been dropped in the recent refactoring. Credit to kleisauke.

See https://github.com/libvips/libvips/issues/1846
2020-10-07 15:23:40 +01:00
John Cupitt 80b73af225 note new "speed" param in heifsave
To help support the rapid move to AVIF.

see https://github.com/libvips/libvips/pull/1819#issuecomment-704145244
2020-10-06 10:50:06 +01:00
Lovell Fuller fc1e609f44 libheif: expose speed parameter (currently AV1 compression only)
Supports both aom and rav1e encoders by limiting to a 0-8 range.

(The rav1e encoder accepts speed values of 9 and 10 but these
use 64x64 blocks more suited to video than images.)
2020-10-06 10:48:54 +01:00
John Cupitt 5b119e183f pdfload was missing a rewind on source 2020-10-04 14:26:13 +01:00
John Cupitt edbe9bf8ef revise pipe sources (again)
Simplify and cleanup.
2020-10-04 14:05:53 +01:00
John Cupitt 0ee8b1e844 improve seek on pipes
There were a few issues in VipsSource around seeking on pipes. With this
patch, EOF detection is better, and pipe sources automatically turn into memory
sources when EOF is hit.

see https://github.com/libvips/libvips/issues/1829
2020-10-03 18:25:24 +01:00
John Cupitt e3181e0579 get docs building with goi 1.66+
It builds now, but some doc sections are missing. Fix this properly in
8.11.

See https://github.com/libvips/libvips/issues/1836
2020-09-28 12:32:06 +01:00
John Cupitt b3f77634df Merge branch '8.10' of github.com:libvips/libvips into 8.10 2020-09-27 10:03:29 +01:00
John Cupitt 237604bb07 revise heifload EOF detection
VipsSource used a unix-style model where read() returns 0 to mean EOF.
libheif uses a model where a separate call to wait_for_file_size()
beforehand is used to check thaht the read will be OK, and then the
read() is expected to never fail.

We were trying to put EOF detection into libheif read(), but that's not
the right way to do it. Instead, test for EOF in wait_for_file_size().

see https://github.com/libvips/libvips/pull/1833
2020-09-26 13:00:52 +01:00
Lovell Fuller 7829518847 heifload: prevent reading beyond end of source buffer 2020-09-26 12:03:06 +01:00
Lovell Fuller c714a2b315 heifload: prevent reading beyond end of source buffer 2020-09-26 04:02:29 +01:00
John Cupitt cdae2c1995 note fractsurf fix in changelog 2020-09-25 12:43:04 +01:00
Kleis Auke Wolthuizen 01765df53c Fix test failure on ARM-based Windows
The optional parameters of vips_gaussnoise were incorrectly
passed within vips_fractsurf. This was discovered when running
the libvips testsuite on Windows 10 IoT (ARM32).
2020-09-25 12:41:22 +01:00
John Cupitt 8d52c8b761 revise heif sniffing again 2020-09-23 21:03:22 +01:00
Lovell Fuller b6276dd44d heifload: simplify is_a check of first 4 bytes
Allow multiples of 4, up to 32, as chunk length
2020-09-23 20:49:48 +01:00
John Cupitt e4b711a358 better heif signature detection 2020-09-23 08:13:52 +01:00
Lovell Fuller 553eb73965 Verify ISO/3GPP2 signature in heifload is_a check 2020-09-23 08:12:14 +01:00
John Cupitt ffe574399e oop typo 2020-09-21 10:07:25 +01:00
John Cupitt 54144a8bc5 allow gaussblur sigma 0
meaning no blur (obviosuly)
2020-09-21 09:45:08 +01:00
John Cupitt 10bada0161 tiny thumbnail speedup
thumbnail can skip premultiply/unpre if there's no residual resize
2020-09-21 09:38:11 +01:00
John Cupitt 0c7b65e156 allow both dpi and scale to be set for pdfload
pdfload didn't allow both dpi and scale to be set. This patch makes the
two settings combine if both are given.

thanks le0daniel

see https://github.com/libvips/libvips/issues/1824
2020-09-21 09:29:25 +01:00
John Cupitt dc88d6c1e1 fix dzsave iiif dimensions
dzsave in iiif mode could set info.json dimensions off by one

thanks Linden6

see https://github.com/libvips/libvips/issues/1818
2020-09-17 17:07:08 +01:00
John Cupitt 7a5a3a31fc block doxy latex output too 2020-09-15 12:08:55 +01:00
John Cupitt 0617165c66 raise minimum libheif version to 1.3
We didn't compile with anything less than 1.3 anyway.

see https://github.com/libvips/libvips/issues/1817
2020-09-15 10:18:38 +01:00
John Cupitt fe7086b173 add a .gitignore for the new cpp api
to stop accidentally adding it to 8.10
2020-09-15 10:18:09 +01:00
John Cupitt 96b6c6ba7a Merge branch '8.10' of github.com:libvips/libvips into 8.10 2020-09-14 17:39:58 +01:00