Commit Graph

5883 Commits

Author SHA1 Message Date
John Cupitt
c9a7b92eeb version bump 2019-09-17 17:16:26 +01:00
John Cupitt
f2319da762 remove svg test from test_formats.sh
It was very unreliable -- the output of librsvg varies too much between
librsvg versions.

This is still tested by the Python test suite.
2019-09-17 16:26:23 +01:00
John Cupitt
d4bd8c4c0b fix make dist for 8.8.3 2019-09-16 16:59:52 +01:00
John Cupitt
f80c7a1810 add tests for xres/yres in tiffsave 2019-09-05 12:39:56 +01:00
John Cupitt
06fdc95038 xres/yres params in tiffsave were in cm
and should have been in pixels/mm

thanks f--f

see https://github.com/libvips/libvips/issues/1421
2019-09-04 17:02:24 +01:00
John Cupitt
574be4380e revert sharpen restoring the input colourspace
icc_export can make _RGB images, so the input can be outside the set of
supported colourspace transforms.

See 46212e92b1 (r34904985)

bump version too.
2019-08-31 11:29:36 +01:00
John Cupitt
23a1636015 fix build with no IM
we had a stray ImageInfo
2019-08-30 12:20:12 +01:00
John Cupitt
6ea76f9632 improve data_length handling in jpg load
libjpeg uses unsigned ints for data length, so we must use size_t
everywhere.
2019-08-30 11:00:25 +01:00
John Cupitt
3161de3b52 verify bands/format for coded vips images
WHen loading a vips image with Coding set, make sure that Bands and
BandFmt are correct.
2019-08-29 15:28:55 +01:00
John Cupitt
46212e92b1 fix default sharpen
sharpen with sigma 0.5 was doing nothing, since the new int precision
rules meant that we generated a point-point convolution.

This patch increases the int precision for sharpen, so we now work with
sigma down to 0.5.

Also: restore input colourspace. Previously, the output image was always
LabS (the computation space for sharpen). Now, it transforms back to the
input space. This is more in line with how other operators work.

Thanks 2h4dl for pointing this out.

See https://github.com/libvips/pyvips/issues/123
2019-08-28 09:16:40 +01:00
John Cupitt
378537121f revise thumbnail preshrink again 2019-08-27 18:00:26 +01:00
John Cupitt
d61a85f6c9 prevent over-pre-shrink in thumbnail
We could pre-shrink so much that an axis went to 0.

See https://github.com/lovell/sharp/issues/1782#issuecomment-525249430
2019-08-27 14:47:36 +01:00
John Cupitt
32e944349d check frame bounds for gif load
giflib does not check this either :(
2019-08-27 14:08:12 +01:00
John Cupitt
848df69a9c better enum validation in vips load 2019-08-27 13:05:58 +01:00
John Cupitt
5cce83a294 check image bounds for GIF load
It seems giflib does no checking of image dimensions at all, not even
height == 0.
2019-08-27 13:04:28 +01:00
John Cupitt
ce684dd008 fetch map after DGifGetImageDesc()
Earlier refactoring broke GIF map fetch.
2019-08-27 12:50:52 +01:00
John Cupitt
25e4577361 relax GIF parse rules again
lots of GIFs are very badly structured :(
2019-08-26 10:54:45 +01:00
John Cupitt
db6e6a0076 catch /0 in exif read 2019-08-25 11:29:37 +01:00
John Cupitt
6c525e144b handle eof better for buffer GIF
Add the new eof handling to the memory reader.
2019-08-24 18:49:56 +01:00
John Cupitt
1ac96313cc note change in gifload.c 2019-08-24 17:16:28 +01:00
John Cupitt
4691260540 better feof() handling in gif load
Relaxing the read error rules made looping possible .. make sure we
always stop explicitly on eof.
2019-08-24 17:14:10 +01:00
John Cupitt
038409093f clip coding and interpretation on image read
They could be out of bounds enums. This used not to matter, but we use
them more now, so out of bounds values can cause coredumps.
2019-08-24 11:20:45 +01:00
John Cupitt
4b677fb16a make GIF parse less strict
Some GIFs don't follow the standard very closely. Let them through.

See https://github.com/libvips/libvips/issues/1404
2019-08-23 15:40:48 +01:00
John Cupitt
81c92242d8 relax HEIC threshold
libheic versions change rounding behaviour
2019-08-21 17:42:25 +01:00
John Cupitt
b5e8e99746 fix a read-one-byte-beyond issue in jpeg load
libvips could harmlessly read beyond the end of a string with a crafted jpg
file
2019-08-21 17:17:54 +01:00
John Cupitt
d80ce4bf15 fix a problem with shrinkv tail processing
Tail processing in shrinkv had an implicit assumption of round-down, but of
course we round to nearest. Thanks angelmixu.

see https://github.com/libvips/libvips/issues/1396
2019-08-13 11:21:01 +01:00
John Cupitt
aafc2c7948 add changelog note for profiles.c fix 2019-08-09 10:11:45 +01:00
John Cupitt
31f7421b11 Merge branch 'msvc-friendly-profiles' into 8.8 2019-08-09 10:10:49 +01:00
John Cupitt
ff58c67e33 add locks for pdfium load
We used to lock within documents, ie. we did not allow two threads to
work on the same file.

However pdfium is not threadsafe in any way, and this is not supported,
see:

	https://groups.google.com/forum/#!msg/pdfium/kyIdh_J4csg/K1LvfPiHDwAJ

This patch adds locks around pdfium calls.

see:

	https://github.com/libvips/libvips/issues/1380
	https://github.com/libvips/libvips/issues/1275
2019-08-08 15:54:16 +01:00
John Cupitt
d2d63f4ac4 revise profile_load
seems to work!
2019-08-08 13:23:28 +01:00
John Cupitt
9cc72ea1c1 msvc dies with string literals larger than 64kb
use arrays instead of tseing literals

generates the literals, profile_load.c needs to be adjusted still
2019-08-08 11:29:39 +01:00
John Cupitt
675c150500 fix build with IM7 2019-08-07 20:29:19 +01:00
John Cupitt
f36927e78d fix build against graphicsmagick
- add tests for more features missing in GM
- simplify the IM/GM configure tests
- revise the test suite to pass with GM and IM
2019-08-07 16:17:27 +01:00
John Cupitt
f0d1a5d82b note PNG comment fix 2019-08-02 10:11:16 +01:00
John Cupitt
4ea50fe6f0 better support for very long PNG comment names
pngs can have names comments -- improve support for very long comments.
2019-08-02 10:08:45 +01:00
John Cupitt
5e77ab948b fix loop with malformed ppm
skip_line in ppm parse was not testing for EOF, so it could get stuck
with malformed files

thanks Kyle-Kyle

see https://github.com/libvips/libvips/issues/1377
2019-07-29 10:05:55 +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
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
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
bad58598f6 fix "how it works" in docs
I tried loads of ways to fix the rendering of this page, but swapping
the sections headings is the only one that works :(
2019-07-07 17:18:48 +01:00
John Cupitt
37ef7ad231 tiny doc errors 2019-07-07 15:14:16 +01:00
John Cupitt
e4cff876a8 fix make dist
we'd renamed a file
2019-07-07 11:20:28 +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
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
01a92679b5 oop left some DEBUG turned on 2019-06-27 17:34:07 +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
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
631383026b revise README again 2019-06-15 13:21:43 +01:00