John Cupitt
3996f3279b
fix range clips for casts to and from int
...
Fix two bugs:
- clip in casts from int32 and uint32 could overflow -- do these as gint64 now
- clip in casts from float to int could overflow since float32 can't
represent the full range of int32 without losing precision -- do these
as double
And add some more tests.
Thanks ewelot.
see https://github.com/libvips/libvips/issues/1922
2020-12-09 15:14:59 +00:00
John Cupitt
6eaf1eda30
make webp frame blend do doround to nearest
...
see https://github.com/libvips/libvips/pull/1918
2020-12-04 13:53:24 +00:00
John Cupitt
aa9906184a
Merge pull request #1918 from lovell/webpload-single-frame-noblend
...
webpload: ensure first frame is not blended
2020-12-04 13:14:29 +00:00
Lovell Fuller
f9dc3177c7
webpload: ensure first frame is not blended
2020-12-04 11:50:58 +00:00
John Cupitt
1f71c7ae07
n comment
2020-12-03 13:34:21 +00:00
John Cupitt
587a7c2d63
note ppmload fix
2020-12-02 21:03:44 +00:00
John Cupitt
4c1aeaacd9
add is_a_source to ppmload
...
ppmload_source was missing an ia_a test
see https://github.com/libvips/libvips/issues/1915
2020-12-02 21:02:05 +00:00
John Cupitt
f99da5f3e1
docs clarification
...
https://github.com/libvips/libvips/issues/1912
2020-12-01 18:33:40 +00:00
John Cupitt
2585565b3e
better test for output to target
...
We used to enable write to stdout if the first character of an output filename
was ".", eg.:
vips copy x.jpg .png
But this will also enable write to stdout for things like:
vips copy x.jpg ./y.png
This patch also tests that the rightmost "." in a filename is also the
first character.
Thanks barryspearce
See https://github.com/libvips/libvips/issues/1906
2020-11-29 13:59:30 +00:00
John Cupitt
acc579cc9d
force binary mode for connections on win
...
stdin / stdout (for example) are created in text mode by default on
win. We need to flip them to binary mode for connection read and write.
See https://stackoverflow.com/questions/65014352/pipe-libvips-cli-output-to-stdout-in-windows
2020-11-26 10:15:48 +00:00
John Cupitt
eddc99e6d8
Merge pull request #1899 from kleisauke/byteswap-vipsload
...
Ensure vipsload only byte swaps if necessary
2020-11-23 14:07:23 +00:00
Kleis Auke Wolthuizen
ea53660a6b
Port Ruby test case to Python
2020-11-23 14:40:59 +01:00
Kleis Auke Wolthuizen
77de1c473a
Determine endianness at compile time
2020-11-23 14:39:06 +01:00
Kleis Auke Wolthuizen
d9dec2c027
Simplify MSB-ordered image check
2020-11-23 14:35:03 +01:00
Kleis Auke Wolthuizen
9bb86119e3
Ensure vipsload only byte swaps if necessary
...
Prior to this commit, MSB-ordered vips images were always byte swapped
on both little- and big endian systems. And LSB-ordered vips images
were loaded without a byte swap. This works correctly on little endian
systems, but will not work on big endian systems where the byte swap
must be done vice versa.
This commit ensures that the byte swap only takes place when needed.
See https://github.com/libvips/libvips/issues/1847 .
2020-11-23 14:32:36 +01:00
John Cupitt
6340e14303
byteswap on ppm save, if necessary
...
this was missing, thanks ewelot
see https://github.com/libvips/libvips/issues/1894
2020-11-22 16:37:24 +00:00
John Cupitt
c0bace8f91
Merge branch '8.10' of github.com:libvips/libvips into 8.10
2020-11-22 16:05:57 +00:00
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
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