Commit Graph

4196 Commits

Author SHA1 Message Date
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
John Cupitt
8db4373be0 revert debugging change committed by mistake 2019-03-18 17:08:30 +00:00
John Cupitt
8c2fff0a44 Merge branch 'master' of github.com:libvips/libvips 2019-03-16 11:53:53 +00:00
John Cupitt
da15285bf9 add support for justified text
And set xoffset/yoffset to the top line of text output.

https://github.com/libvips/libvips/issues/1258
2019-03-16 11:53:09 +00:00
John Cupitt
e14ae48a67 fix heifsave on ubuntu 18.04 2019-03-14 13:33:11 +00:00
John Cupitt
928fff5168 try to fix heifload for ubuntu 18.04 2019-03-14 13:04:26 +00:00
John Cupitt
c4ce5f0084 Merge branch 'master' of github.com:libvips/libvips 2019-03-14 12:54:59 +00:00
John Cupitt
40733d4482 openslide tile cache was too small
we were reloading tiles when fetching areas that crossed tile boundaries
2019-03-14 12:05:15 +00:00
John Cupitt
681565f1e3 fix anim webp delay check
only test frame duration for animated webp images

thanks Kleis

see https://github.com/libvips/libvips/pull/1257
2019-03-13 19:09:26 +00:00
kleisauke
f40eb5ec13 Fix thumbnailing of a WebP image 2019-03-13 17:33:07 +01:00
John Cupitt
a663a1bb1c add vips_region_fetch() etc.
to help ML applications ... they let us generate lots of small rectangular
areas of images very quickly
2019-03-12 16:00:24 +00:00
John Cupitt
4f2112a4e9 fix memleak in canny 2019-03-11 11:35:25 +00:00
John Cupitt
3d889d9395 docs for heifload autorotate 2019-03-07 08:12:14 +00:00
John Cupitt
533ddbc8b3 libheif autorotate is back
Using the new heif_image_handle_get_ispe_width() to fetch the untransformed
dimensions.

See:

https://github.com/strukturag/libheif/issues/106#issuecomment-459766087

https://github.com/libvips/libvips/issues/1247
2019-03-06 20:32:34 +00:00
John Cupitt
3010a4a865 remove autorotate from libheif
not possible to support this properly with current libheif
2019-03-05 17:26:08 +00:00
John Cupitt
f209870e7b start trying to fix autorotate for heif images 2019-03-05 15:35:58 +00:00
John Cupitt
27f1d28b61 fix heif autorotate
we were not flipping width/height if the image was rotated

thanks leslie-wang
2019-03-04 15:55:41 +00:00
John Cupitt
7ede9de631 fix heifload with debug on older libheif
and adjust line size for some loaders
2019-03-04 10:43:13 +00:00
John Cupitt
f06a01ccbe better toilet-roll detection 2019-03-04 09:55:53 +00:00
John Cupitt
29d33b2753 start work on toilet-roll thumbnails again 2019-03-02 22:13:55 +00:00
John Cupitt
15ee957ea9 Merge branch 'master' into revise-thumbnail 2019-03-02 22:06:23 +00:00
John Cupitt
64c7165759 fix some clang warnings 2019-03-02 16:23:19 +00:00
John Cupitt
33d90b5e26 only enable sanity checks in debug mode
We had a couple of sanity checks always on. As a result, libvips could
get slow for large pipelines.

Move them into g_assert().
2019-03-01 13:01:08 +00:00
John Cupitt
b565f2fc68 more accurate bilinear
use double, not float, for coefficient calculation, or we get overshoots
in some cases

see https://github.com/libvips/libvips/issues/1239
2019-02-27 20:33:31 +00:00
John Cupitt
90ca1d8038 tiny format polish 2019-02-27 18:23:11 +00:00
John Cupitt
e27c290856 glib version change 2019-02-27 14:24:17 +00:00
John Cupitt
a05a2cb52d mild refactoring of threadpool
clean up and simplify after https://github.com/libvips/libvips/pull/1240
2019-02-27 14:23:43 +00:00
John Cupitt
3324ed8a2f
Merge pull request #1240 from jtorresfabra/fix_hidden_threapool_leak
Fix for hidden leaks in ThreadPool
2019-02-27 13:41:17 +00:00
jtorresfabra
8c8affab7f ThreadPool was allocating memory for threads and pools locally to the image object. As that image could not be freed from cache, for each sink operation done for that image the code was creating new pools and threads without freeing the previous one. SO the more number of threads and the more operations the bigger the hidden leak was. The fix just creates the objects not locally to that image, and also free them in its destroy functions 2019-02-27 13:01:45 +01:00
John Cupitt
793cbeeaa7 add note abut region_shrink to changes
somehow got dropped
2019-02-24 20:13:18 +00:00
John Cupitt
27195cc92c add vips_foreign_get_suffixes()
Add vips_foreign_get_suffixes(), get an array of all the filename suffixes that
libvips recognises.

See https://github.com/libvips/ruby-vips/issues/186
2019-02-23 13:50:10 +00:00
John Cupitt
52242cd70d move orc init out of abs class init 2019-02-22 09:48:38 +00:00
John Cupitt
65a259a025 prevent /0 in freq mask for very small masks
see https://github.com/libvips/libvips/issues/1236
2019-02-20 15:15:50 +00:00
John Cupitt
2fb81b8ed6 prevent /0 in eye for width/height 1
see https://github.com/libvips/libvips/issues/1236
2019-02-20 15:00:00 +00:00
John Cupitt
4af242b599 fix travis compiler warnings
- older libpng don't have consts decls for some set/get funcs
- use g_ascii_strcasecmp() on program text strings (instead of strcasecmp)
2019-02-20 12:49:59 +00:00
John Cupitt
cae57d5670 make heif load/save work with 1.3.2 2019-02-20 12:30:12 +00:00
John Cupitt
8523c306fe remove stray variable decls 2019-02-20 12:04:52 +00:00
John Cupitt
cf860b27fa start working over thumbnail to support anim 2019-02-19 17:27:23 +00:00
John Cupitt
1a83605238 Merge branch 'add-heifload' 2019-02-17 17:11:14 +00:00
John Cupitt
d4ddfa5eb4 note recent magick changes in headers 2019-02-17 12:41:59 +00:00
John Cupitt
f41c1439c9 just one sink_disc() for magicksave
we used to cut the input image into tiles, then sink_disc() for each one
... instead, make a single sink_disc() and chop in _generate

simpler and faster
2019-02-17 12:28:13 +00:00
John Cupitt
30b5c49d0b set dispose in magicksave
since we always give complete new frames

revise gifload slightly too
2019-02-16 17:37:23 +00:00
John Cupitt
ca60cc30aa clean up 2019-02-16 15:54:11 +00:00
John Cupitt
044abe7986 fix some tilecache issues too 2019-02-16 15:32:45 +00:00
John Cupitt
d156e34ee4 cogs.gif doesn't load properly
we're not disposing at the correct point, I think
2019-02-15 17:56:49 +00:00
John Cupitt
38e0cbb12a speed up tilecache
with a simple LRU queue of recent tiles

better cmap handling for gifload as well
2019-02-15 17:27:20 +00:00
John Cupitt
1f681df339 trim old gifload source 2019-02-14 16:35:54 +00:00
John Cupitt
09ed7a48d3 Merge branch 'revise-gifload' 2019-02-14 16:35:18 +00:00
John Cupitt
4ed0ce3e2e remove old gif loader 2019-02-14 16:34:59 +00:00
John Cupitt
25f0f652d1 works! 2019-02-14 15:31:33 +00:00
John Cupitt
bfa1f22520 works!
tuned a bit too
2019-02-14 15:22:51 +00:00
John Cupitt
b02a50aaed two small fixes 2019-02-14 10:13:17 +00:00
John Cupitt
617d910379 almost loading 2019-02-13 18:04:30 +00:00
John Cupitt
37613c196d fix jpeg xmp read/write
it was not removing/reattaching the magic XMP URL

see https://github.com/libvips/libvips/issues/1229
2019-02-11 18:16:20 +00:00
John Cupitt
e12b44e790 fast header method works
need to rework _load next
2019-02-11 08:38:43 +00:00
John Cupitt
7037377f15 add _header scan of whole gif 2019-02-10 22:09:25 +00:00
John Cupitt
9fe013f72d move file stuff into subclass, add rewind 2019-02-10 05:26:07 +00:00
John Cupitt
a454225ef7 split off the old loader as gifload2 2019-02-09 12:23:21 +00:00
John Cupitt
2968bee3fa add n-pages metadata to gifload
gifload was not setting the n-pages metadata item.

n-pages is supposed to be the number of pages in the original file (not
the number of pages libvips loaded), but we don't always know this for
gif, since you have to decode the entire file to count the pages.

As a compromise, set it to the page number of the final page we read.

See https://github.com/lovell/sharp/issues/1566
2019-02-08 10:53:57 +00:00
John Cupitt
931b661d2b fix up and test with im6/im7/gm
seems to work! phew
2019-02-07 18:35:51 +00:00
John Cupitt
90fef08ee0 start adding xmp/icc/exif/etc. for IM
needs to work for im6, im7 and gm, and it's not quite there yet :(
2019-02-06 16:39:14 +00:00
John Cupitt
10b3000581 reorganise magicksave a little 2019-02-06 10:24:11 +00:00
DarthSim
cd1560c1cb vips_magicksave for GraphicsMagick 2019-02-06 00:07:30 +06:00
John Cupitt
8d5af9fe8a add xmp/ipct/icc etc. to magickload
ImageMagick supports binary metadata with `ResetImageProfileIterator()`
etc.

Implementing support gives us xmp / ipct / icc support, plus perhaps
some others.
2019-02-04 17:54:57 +00:00
John Cupitt
f23d0fd754 note new option_string param in changelog 2019-02-03 12:27:58 +00:00
kleisauke
f40062c495 s/open_args/option_string/g 2019-02-03 12:29:54 +01:00
kleisauke
05c459cc28 vips_thumbnail_buffer: add optional open_args argument (#1147) 2019-02-02 09:26:12 +01:00
John Cupitt
097bb815b7 pdfium load as well 2019-01-30 20:59:40 +00:00
John Cupitt
671b3e76f5 set page-height more often in pdfload 2019-01-30 20:58:47 +00:00
John Cupitt
308c85c004 add support for stored heif thumbnails 2019-01-30 16:19:11 +00:00
John Cupitt
6a75536619 add @thumbnail support to heifload 2019-01-30 15:20:10 +00:00
John Cupitt
50a955e357 add autorotate to heifload
and remove the ignore_transformations option
2019-01-30 13:17:36 +00:00
John Cupitt
622c08b562 set primary on heifsave 2019-01-30 11:37:01 +00:00
John Cupitt
4a461e2507 fix data return from heifsave_buffer 2019-01-30 04:18:49 +00:00
John Cupitt
62ba86cfd0 add heif buffer save 2019-01-29 17:21:13 +00:00
John Cupitt
a837b66cc1 add strip support to heicsave 2019-01-29 16:53:39 +00:00
John Cupitt
cae7838f86 heifsave seems to work 2019-01-29 16:40:34 +00:00
John Cupitt
a833764878 start heifsave 2019-01-29 10:27:00 +00:00
John Cupitt
07e5f30829 add heifload_buffer 2019-01-29 01:48:10 +00:00
John Cupitt
3d768ef635 split to a separate heif file class 2019-01-28 22:16:56 +00:00
John Cupitt
ff711e97ef add support for ignore_transformations
so you can turn off orientation etc. for heif images
2019-01-28 15:30:15 +00:00
John Cupitt
472f9da0ad add XMP read to heifload 2019-01-28 14:30:12 +00:00
John Cupitt
ed7c6b9fd4 cleanups
xmp next
2019-01-27 13:20:06 +00:00
John Cupitt
95b328ccef add multi-page load to heifload
seems to work
2019-01-27 12:57:08 +00:00
John Cupitt
40e272ce99
Merge pull request #1218 from lovell/profile-load-leaks
profile_load: ensure once-ness, prevent profile use-after-free (master)
2019-01-25 12:51:38 +00:00
Lovell Fuller
97a98bcb7d Ensure once is invoked once, prevent profile use-after-free 2019-01-25 11:33:40 +00:00
John Cupitt
2835948070 fix typo in docs 2019-01-25 05:04:24 +00:00
John Cupitt
d75b007191 start adding multipage input 2019-01-24 19:01:55 +00:00
John Cupitt
086f1b2ba8 add note on profile types 2019-01-20 21:38:24 +00:00
John Cupitt
e131f173a0 fix up exif parse, add icc profile attach 2019-01-20 21:08:06 +00:00
John Cupitt
5e78ae9b1e add exif support to heifload
potentially other metadata too, though I don't have any to test with
2019-01-20 17:55:56 +00:00
John Cupitt
33fd2a48f0 basic load works
no metadata, no options
2019-01-20 11:33:12 +00:00
John Cupitt
dcba364efa Merge branch 'zero-mem-on-malloc' 2019-01-18 11:31:11 +00:00
John Cupitt
00622428bd zero memory on malloc
to prevent write of uninit memory under some error conditions

thanks Balint
2019-01-18 10:10:43 +00:00
John Cupitt
c24e47e3a8 fix profile attach on colour output
some dead code needed removing

https://github.com/libvips/libvips/issues/1194#issuecomment-455164899
2019-01-17 16:36:25 +00:00
John Cupitt
1824c64c06 break >80 char line 2019-01-17 08:59:14 +00:00
Lovell Fuller
a264f812ac Ensure ICC profile data is freed after use 2019-01-16 21:49:47 +00:00
John Cupitt
a7122d7a85 revise XYZ2CMYK fallback path
better epsilon detect, add a test
2019-01-16 21:02:01 +00:00
John Cupitt
a67f92b8d9 reformat in vips style 2019-01-16 20:18:09 +00:00
John Cupitt
d3c73b4d39
Merge pull request #1196 from dbouron/cmyk2srgb
Add cmyk <-> srgb colourspace conversion
2019-01-16 20:08:35 +00:00
Dimitri Bouron
5f61727253 Fix black channel overwrite in XZY2CMYK.c 2019-01-16 19:06:36 +01:00