Commit Graph

6848 Commits

Author SHA1 Message Date
John Cupitt 5e26f1ec16 improve website link in docs
it was being rewritten by the export script

see https://github.com/libvips/libvips/issues/1928
2020-12-14 09:08:27 +00:00
John Cupitt c12730748d forgot changelog update 2020-12-13 03:43:03 +00:00
John Cupitt cb9b0a4318 note HEIC fix in changelog
see https://github.com/libvips/libvips/pull/1921
2020-12-12 15:10:42 +00:00
Daniel Dennedy 21f37037fa fix heif load fails with 0 length metadata
fixes #1901
2020-12-12 15:09:33 +00:00
John Cupitt a54cec93ac
Merge pull request #1872 from kleisauke/fix-rounding-reduce
Resolve rounding issues in reduce
2020-12-12 14:51:15 +00:00
John Cupitt 1d2864cc41 note HEIC fix in changelog
see https://github.com/libvips/libvips/pull/1921
2020-12-10 17:54:58 +00:00
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
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