John Cupitt
d9f31be67d
configure should add meson files to make dist
...
add meson.build etc. to EXTRA_DIST
see https://github.com/libvips/libvips/issues/2876
2022-06-20 15:04:33 +01:00
John Cupitt
e9414f8d8f
fix build with older libgsf
...
build on libgsf without zip64 support was broken, thanks @remicollet
see https://github.com/libvips/libvips/issues/2878
2022-06-20 13:19:35 +01:00
John Cupitt
a129476f0f
fix "make dist" ready for 8.13 rc1
2022-06-19 16:20:30 +01:00
John Cupitt
01d5fbd6a4
use a contiguious buffer for the frame
...
fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=48021
2022-06-19 12:57:47 +01:00
John Cupitt
89615465b7
avoid size_t pixel counts in cgifsave
...
since we limit frame size to INT_SIZE / 4
2022-06-19 12:26:02 +01:00
Daniel Löbl
905a6fe79f
cgifsave: limit max number of colours to 255 ( #2863 )
...
* cgifsave: limit max number of colours to 255
* switch to VIPS_MIN
2022-06-19 12:16:03 +01:00
Sergey Alexandrovich
41da0d28e0
cgifsave: remove regressions from 2853 ( #2870 )
...
* cgifsave: pick the best quantizer instead of the first good enough
* cgifsave: fix palettes comparison
* cgifsave: don't copy unchanged pixels to previous_frame
2022-06-19 12:15:40 +01:00
Kleis Auke Wolthuizen
5b79a744a7
thumbnail: avoid upsizing via libwebp ( #2874 )
2022-06-19 12:02:00 +01:00
John Cupitt
c61b458904
add jxlsave tests
...
and revise colour encoding set
see https://github.com/libvips/libvips/issues/2872
2022-06-18 16:40:10 +01:00
John Cupitt
156e6a91e4
try to improve jxl lossless, again
...
now seems to handle scrgb and srgb, lossless and lossy, with and without
an ICC profile
see https://github.com/libvips/libvips/issues/2872
2022-06-18 16:01:51 +01:00
John Cupitt
e0b5eeecde
Merge branch 'master' of github.com:libvips/libvips
2022-06-14 12:08:20 +01:00
John Cupitt
5ef16188ca
display blocked/untrusted status in vips -l
...
though only for loaders/savers
2022-06-14 12:06:41 +01:00
Kleis Auke Wolthuizen
8c7576a5fe
cgifsave: reject images that exceed the pixel limit of libimagequant ( #2865 )
2022-06-14 10:23:11 +01:00
John Cupitt
a7697b462f
use size_t for GIF n_pels
...
fixes an overflow, thanks Kleis
2022-06-13 14:25:39 +01:00
Kleis Auke Wolthuizen
ebfef68707
cgifsave: fix stack-use-after-scope ( #2862 )
...
By reusing `cgif->palette_rgb`, this ensures that `pLocalPalette`
doesn't become indeterminate when it reaches `cgif_addframe`.
2022-06-13 12:59:40 +01:00
John Cupitt
48d13f4828
oop, left some DEBUG on
2022-06-13 10:27:42 +01:00
John Cupitt
9f3860ec22
fix up scrgb support in JXL
...
after some discussion on discord with the libjxl maintainers
see https://github.com/libvips/libvips/issues/2830
to do: save scrgb to eg. JPEG fails right now :( we need to do
scRGB->sRGB in jpegsave
2022-06-12 16:43:26 +01:00
Kleis Auke Wolthuizen
7553f60aed
Minor cleanups ( #2857 )
...
- Remove `HAVE_LCMS` definition in favor of `HAVE_LCMS2`.
- Remove `HAVE_WINDOWS_H` definition in favor of `G_OS_WIN32`.
- Remove stray `vips_text_get_type` in `conversion.c`.
- Remove duplicated `unistd.h` include.
- Remove redundant `strcasecmp` definition, we use `g_ascii_strcasecmp` everywhere.
- Remove unnecessary header checks in `configure.ac` and `meson.build`.
- Ensure `unistd.h` include is guarded with `HAVE_UNISTD_H`.
- Fail early when `-Dfontconfig=enabled` and `pangoft2` is not found.
2022-06-12 12:22:36 +01:00
John Cupitt
7fbdb01fb9
try to make cgifsave easier to read ( #2853 )
...
* try to make cgifsave easier to read
and fix a few memory errors
* move another loop out of write_frame
slightly smaller
2022-06-12 11:25:32 +01:00
Kleis Auke Wolthuizen
296c263099
Meson: maintain autotools compatibility on macOS ( #2856 )
...
By setting the correct compatibility/current version.
2022-06-11 22:54:43 +01:00
Kleis Auke Wolthuizen
cdf12dd849
Mark Poppler as untrusted ( #2855 )
2022-06-11 16:25:28 +01:00
Kleis Auke Wolthuizen
1214f942f9
Prefer to use `flags |=` everywhere ( #2854 )
...
Use the bitwise OR assignment operator to ensure that derived
classes does not overwrite the flags from the base class. Also,
move the flags from `openslideload_source` to its base class.
2022-06-11 15:40:39 +01:00
John Cupitt
c7baa4535a
cleaner blocking code
...
thanks kleis!
2022-06-11 15:37:27 +01:00
John Cupitt
399fba2124
fix error in prev commit
2022-06-11 14:03:45 +01:00
John Cupitt
8bf90ed44e
fix BLOCK_UNTRUSTED after previous commit
2022-06-11 12:38:43 +01:00
John Cupitt
bd65ddda66
fix operation_block_set
...
kleis discovered that it needs a full class name, and found a missing
"*"
2022-06-11 11:41:03 +01:00
Kleis Auke Wolthuizen
bae0342d95
Update C++ binding and function list ( #2851 )
...
* Update C++ binding and function list
Also, start with a capital letter in descriptions whenever possible.
* Ensure `dzsave_target` is generated
2022-06-10 14:43:44 +01:00
Kleis Auke Wolthuizen
45a99238e2
text: use MT-safe `pango_cairo_font_map_get_default` ( #2848 )
...
* text: use MT-safe `pango_cairo_font_map_get_default`
* Increase minimum Pango version to v1.32.6 (released Jan 2013)
2022-06-08 16:06:45 +01:00
John Cupitt
b086b3f61a
tiny formatting changes
...
and we can remove a vips__quantise_get_palette()
2022-06-08 15:43:28 +01:00
Sergey Alexandrovich
19bef959d1
cgifsave: palette change POC ( #2824 )
...
* cgifsave: compare palettes instead of frame sum
* Add vips__quantise_image_quantize_fixed function
2022-06-08 15:27:29 +01:00
Kleis Auke Wolthuizen
5106e9b49e
text: ensure fontconfig cache of Pango is invalidated ( #2847 )
...
See: https://gitlab.gnome.org/GNOME/pango/-/issues/551
2022-06-08 15:20:19 +01:00
John Cupitt
2d0c6b364c
improve scaling of SVG images
...
We were not scaling images with fixed absolute dimensions.
2022-06-06 12:08:43 +01:00
John Cupitt
586fb31550
switch svgload to random access
...
and fix up pdfload random access
2022-06-05 15:57:43 +01:00
Sergey Alexandrovich
4fab8beae9
cgifsave: theshold alpha and check alpha constraint in one pass ( #2827 )
...
* cgifsave: theshold alpha and check alpha constraint in one pass
* cgifsave: get rid of sqrt()
2022-06-03 18:49:03 +01:00
John Cupitt
cb1927e1b7
make C and vector path for composite match
...
one was <, one was <= for HARD_LIGHT
no effect on result, but it's better if they are consistent
2022-06-03 16:15:51 +01:00
John Cupitt
af23e9f06c
tiny formatting fixes
2022-06-01 12:33:43 +01:00
Sergey Alexandrovich
c9b5b8c197
nsgifload: add "palette-bit-depth" header ( #2828 )
2022-06-01 12:27:10 +01:00
John Cupitt
6260a37136
add libjxl ICC and scRGB support ( #2815 )
...
* add ICC and scRGB support
see https://github.com/libvips/libvips/issues/2568
* final polish
2022-05-28 13:55:45 +01:00
Daniel Löbl
ed79cfba7e
magicksave: Add bitdepth option ( #2819 )
...
* flag to save bmp with bitdepth 1
* magicksave: add bitdepth option
* update comments
* update documentation
* revised based on review comments
Co-authored-by: Thomas Barton <thomasryanbarton@gmail.com>
2022-05-27 11:41:01 +01:00
John Cupitt
2af2ca5ca2
add note about palette sorting by quantisers
2022-05-26 17:41:51 +01:00
Kleis Auke Wolthuizen
550781cd18
spngsave: fix 8bpp palette save with transparency ( #2808 )
2022-05-26 17:26:26 +01:00
John Cupitt
7121f952d5
revise formatting
2022-05-26 17:25:16 +01:00
Sergey Alexandrovich
ba04c5f03f
cgifsave: fill transparent pixels with zeroes ( #2823 )
2022-05-26 17:23:04 +01:00
John Cupitt
111eef0049
lock progress to 100% on posteval
...
Because signals can be delayed, progress isn't always 100% in posteval.
Lock it to 100%.
See https://github.com/libvips/libvips/issues/2820
2022-05-23 19:27:40 +01:00
John Cupitt
a9bfd508f5
revise cgifsave checksum
...
We were calling it a sum and looking for a change threshold, but really
it's only useful as a checksum and does not have a magnitude. Revise
comments and variable names to reflect this.
2022-05-23 13:17:20 +01:00
John Cupitt
89bbb7981d
oop dbg left on
2022-05-23 13:07:38 +01:00
John Cupitt
63962056f0
small formatting fixes
2022-05-23 13:02:44 +01:00
Daniel Löbl
f26f0b09b8
cgifsave: reuse global palette, if possible ( #2797 )
...
* save GIF palette as metadata
... if there are no local colour tables.
See https://github.com/libvips/libvips/issues/2576
* cgifsave: reuse global palette, if possible
* add reuse_palette parameter
* add reoptimise parameter and reuse palette by default
* attach global palette even if local palettes are present
* add check for presence of use-lct
* Revert "add check for presence of use-lct"
This reverts commit cd0f14e45e8bed8f108ee9666e2569c6355f17eb.
* Revert "attach global palette even if local palettes are present"
This reverts commit 4085b9e14b73c8990e9653ccc6f90477c2a43032.
* move global palette quantization to cgif_build
* rename member variable gct
* update comments
* improve error handling
* update documentation
Co-authored-by: John Cupitt <jcupitt@gmail.com>
2022-05-23 13:01:26 +01:00
John Cupitt
7d3aaf540c
small formatting
2022-05-23 12:42:26 +01:00
John Cupitt
047bef50d9
fix spngsave conversion
...
It was all mixed up. We don't need to call colourspace -- this is done
for us by the SAVEABLE system.
Fixes "vips identity x.png" error, see:
https://github.com/libvips/libvips/pull/2808#issuecomment-1133947162
2022-05-23 11:51:54 +01:00
Kleis Auke Wolthuizen
85c24481be
svgload: recognize dimensions for SVGs without width/height ( #2817 )
...
Rather than defaulting to 1928x1080. Also, prefer to use the
`LIBRSVG_CHECK_VERSION` macro instead of our configure checks.
2022-05-23 10:39:53 +01:00
John Cupitt
111f1d11df
improve the interpretation sanity checker
...
it was rejecting int LABS
2022-05-22 14:05:01 +01:00
John Cupitt
fd495bcd0a
fix typo in tatrgetcustom.c
...
see https://github.com/libvips/libvips/pull/2802#pullrequestreview-980832505
2022-05-21 17:30:55 +01:00
Lovell Fuller
c1f6995256
Pass close-on-exec flag to lcms for non-Windows OS ( #2816 )
...
This ensures child processes do not inherit open file descriptors
and will close a small but long-standing bug reported against
sharp over five years ago.
The change to lcms2 to support this is backwards compatible so
the flag will be ignored by existing versions.
The fopen 'e' flag will soon be part of the POSIX standard, and
is already supported in Linux and BSD. macOS currently ignores
it but will add support soon. Only Windows has a problem with it,
hence the ifdef wrapper.
2022-05-21 17:28:40 +01:00
John Cupitt
2ef1b198fb
fix deprecation warning
2022-05-21 12:43:57 +01:00
John Cupitt
bf614530cd
use vips__bgra2rgba() in pdfiumload
...
slightly quicker, works with any byte order
2022-05-21 10:32:23 +01:00
Sergey Alexandrovich
985fb1d1d0
Don't paint the background if the PDF has transparency ( #2804 )
2022-05-21 10:17:44 +01:00
Lovell Fuller
7d4cba101c
jxl: remove support for never-implemented JXL_TYPE_UINT32 ( #2813 )
2022-05-21 09:49:31 +01:00
Lovell Fuller
f9ace1724e
Fix a couple of typos in help messages ( #2814 )
2022-05-21 09:47:51 +01:00
Daniel Löbl
7f8e059dc6
webpsave: add parameter for mixed encoding ( #2810 )
...
* webpsave: add mixed parameter
* update changelog
* update webpsave documentation
2022-05-20 18:47:18 +01:00
John Cupitt
a9d64bea54
add dzsave to a target ( #2718 )
...
* start adding dzsave to a target
made a thing for gsf to write to a target
* fix stray tabs in dzsave
* fix dzsave write to "."
Early versions of libgsf did not support writing to ".", so we had an ugly
workaround, but this should now be OK.
Fixing this ought to make write to target simple
* dzsave_target compiles
no idea if it works though
* seems to work now
creates stray 0 length files though, very odd
* fix stray files from dzsave
next: save to buffer is returning null
* fix buffer flush in dzsave
all tests pass!
* update changelog
2022-05-20 18:38:46 +01:00
John Cupitt
f8003bda67
Add tiffsave target ( #2798 )
...
* compiles, but untested
* works, but libtiff needs seek for write
next: add seek methods to target
* add target seek and read
seem to work
next: disc temps for disc output
* add libnsgif COPYING
oops, we were missing the COPYING file
see https://github.com/libvips/libvips/issues/2800
thanks mika-fischer
* tiffsave uses a disc temp if it can
* revise temp target rules
only make a disc temp if we are writing to a filesystem target
* add new target methods to targetcustom
2022-05-20 18:38:17 +01:00
John Cupitt
58b53506ff
add vips_target_end ( #2802 )
...
since finish did not return an error code
also make sure we don't call target_end from inside _dispose, since that
can't signal error either
see https://github.com/libvips/libvips/issues/2801
2022-05-20 16:38:04 +01:00
Kleis Auke Wolthuizen
6aca41d713
quantise: fix styling ( #2807 )
...
Also, use the correct conditional directive in spngsave.
2022-05-20 14:31:16 +01:00
John Cupitt
c5ea747f71
Merge branch 'master' of github.com:libvips/libvips
2022-05-18 10:57:56 +01:00
John Cupitt
e42d2b46b9
revise SVG scaling, again
...
we were not defaulting width and height correctly
see https://github.com/lovell/sharp/pull/3230
2022-05-18 10:55:41 +01:00
Kleis Auke Wolthuizen
f1b4b0cb1a
Swap size_t with gint64 to catch read errors ( #2811 )
...
This is similar to commit 5221df224f
.
2022-05-17 22:04:20 +01:00
John Cupitt
5f82491d74
small configure improvements
...
- disable deprecated warnings for /deprecated
- detect librsvg rsvg_handle_get_intrinsic_size_in_pixels()
- tiny comment typo in meson.build
2022-05-16 14:45:53 +01:00
John Cupitt
793d3116a7
Merge branch 'master' of github.com:libvips/libvips
2022-05-16 14:30:41 +01:00
John Cupitt
aa5abf3e7e
fix background byte ordering in PDF
...
the `background` param was BGRA rather than vips-style RGBA
see https://github.com/libvips/libvips/pull/2804
2022-05-16 14:28:53 +01:00
Sergey Alexandrovich
982cbe5f8a
Don't fail if PNG contains too much text chunks ( #2803 )
...
Only warn if PNG contains too many text chunks
Update spngload.c
2022-05-15 12:18:06 +01:00
John Cupitt
7561d4e52c
add libnsgif COPYING
...
oops, we were missing the COPYING file
see https://github.com/libvips/libvips/issues/2800
thanks mika-fischer
2022-05-12 09:48:58 +01:00
John Cupitt
5221df224f
fix ssize_t / ssize_t confusion
2022-05-11 22:28:34 +01:00
Kleis Auke Wolthuizen
9cbc361269
Allow to modify/create EXIF OffsetTime* tags ( #2796 )
...
Available since libexif 0.6.23.
2022-05-10 13:26:09 +01:00
Lovell Fuller
7e64c48ca9
heifsave: allow creation of EXIF metadata ( #2794 )
...
Previously only update of input EXIF was possible
2022-05-10 08:14:53 +01:00
Kleis Auke Wolthuizen
d91cfa4e53
Allow to modify/create EXIF 2.3 ASCII tags ( #2795 )
...
* Allow to modify/create EXIF 2.3 ASCII tags
Make `tag_is_ascii` aware of the EXIF 2.3 ASCII tags that are
available since libexif 0.6.22.
See: https://github.com/kleisauke/net-vips/issues/167
* Fix CI
2022-05-10 08:13:22 +01:00
Michael Drake
ceaa2d2096
Update LibNSGIF to latest upstream ( #2791 )
...
* libnsgif: Update to latest upstream
* nsgifload: Add palette info to debug output.
2022-05-09 10:20:57 +01:00
John Cupitt
460a19b78e
revise arg names
...
use _ everywhere (we have a few uses of - as a separator)
2022-05-07 14:50:05 +01:00
John Cupitt
cdcafbc4c5
add changelog notes
...
and linewrap for 80 column limit
2022-05-07 12:51:58 +01:00
Kleis Auke Wolthuizen
894ed1cb13
Resize improvements; add `ceil` and `gap` options ( #1769 )
...
* Add a round-up option to shrink
* Only leave the final 200% to reduce
* Add gap option to reduce and resize
* Add unit tests
* Incorporate feedback
2022-05-07 12:45:38 +01:00
Daniel Löbl
cb55fdcfd8
allow to apply maxerror optimization to frames with alpha channel ( #2778 )
2022-05-07 12:16:13 +01:00
John Cupitt
20fd8ac0fc
support rsvg_handle_get_intrinsic_size_in_pixels
...
librsvg 2.52+ has this new bit of API for finding the SVG dimensions
2022-04-28 13:01:17 +01:00
John Cupitt
f06c9f3bcf
add fail-on to thumbnail
...
see https://github.com/libvips/libvips/discussions/2781
2022-04-28 09:08:34 +01:00
John Cupitt
43db3985d0
try to always set the min stack size
...
since musl users often don't know about this
see https://github.com/libvips/libvips/issues/2761
2022-04-19 16:41:18 +01:00
John Cupitt
94d8a7d993
tried (and failed) to build against ubuntu nifti
...
the ubuntu cmake dev files for nifti seem to be broken, and I can't get meson
to add the dependency manually
2022-04-18 15:13:55 +01:00
Kleis Auke Wolthuizen
07edfe37b1
Improve symbol visibility ( #2688 )
...
* Improve symbol visibility
* Decorate required internal symbols with VIPS_API
* Remove a couple of stray header decls
* Incorporate review comment
- Ensure symbol visibility is also set on static libraries.
- Prefer to use `cc.has_function_attribute('visibility:hidden')`.
* Don't export internal deprecated symbols
* Move deprecated symbols to vips7compat.h
* `IM_FORMAT_H` -> `VIPS_FORMAT_H`
* Move `vips_window_ref` compat stub to `vips7compat.c`
* Disable deprecation warnings internally
* `vips_image_get_kill` -> `vips_image_iskilled`
* Ensure API compatibility
* Add missing include directives
* Move `vips__init` decl to vips7compat
* Move `vips__get_sizeof_vipsobject` to vips7compat
* Fix introspection build
* Fix 2 introspection warnings
* Ensure compatibility with vipsdisp
/usr/bin/ld: tilesource.o: in function `tile_source_new_from_source':
vipsdisp/tilesource.c:1627: undefined reference to `vips__region_no_ownership'
2022-04-16 10:58:55 +01:00
Michael Drake
0c3092fa94
libnsgif: Update to latest upstream ( #2766 )
...
That's great! Thank you for doing this, Michael.
2022-04-15 18:23:56 +01:00
John Cupitt
55723a980f
add a seq to thumbnail_image
...
otherwise we can get horrible cache thrashing as the shrink will run
without any locality
2022-04-14 10:37:17 +01:00
John Cupitt
eba9ec0dd7
Add a way to disable less well tested operations ( #2636 )
...
* quick proposal
warn on startup if untrusted operations might run
use vips_block_untrusted_set() to block untrusted operations, set an env
var or make a file to stop the warning
* mark fits, nifti and svg as untrusted
* remove the annoying "untrusted" warning message
better to warn on the download page
leave vips_block_untrusted_set() since it's obviously useful
* separate UNTRUSTED and BLOCKED
* typos
* add VIPS_BLOCK_UNTRUSTED env var
* move BLOCK_UNTRUSTED after plugin load
obviously, ooops
* add a test, disable *magick
although *magick is fuzzed, it's probably safer to disable it in
untrusted environments
* mark some more operations as untrusted
2022-04-11 11:32:32 +01:00
John Cupitt
6eae6fcf4b
stop strip tiff read using tiny tiles
...
Strip TIFFs with rowperstrip of 1 used to use 1-pixel high cache tiles.
This could slow reading. This patch sets a minimum tile height near 16
but a multiple of the strip size.
2022-04-09 16:38:47 +01:00
Kleis Auke Wolthuizen
6c03343581
Add comments to `setjmp` invocations ( #2751 )
...
Also, pre-increment `num_warnings` to ensure that we really stop
at 100 warnings.
2022-04-06 12:01:18 +01:00
John Cupitt
57cd94278a
revise interpretation guesser
...
This patch pushes the new pyvips interpretation guess rules down into
libvips.
See https://github.com/libvips/pyvips/pull/316
2022-04-05 18:32:25 +01:00
Kleis Auke Wolthuizen
df26bd1e46
Stop JPEG load after 100 warnings ( #2749 )
...
See: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24383
2022-04-05 11:07:29 +02:00
John Cupitt
2dc319b1b1
Revert "stop JPEG load after 20 warnings"
...
This reverts commit 89bd46d1c4
.
2022-04-05 08:34:45 +01:00
John Cupitt
1aebd95387
Revert "improve fail on too many warings"
...
This reverts commit ae7e5e7a54
.
2022-04-05 08:34:20 +01:00
John Cupitt
ae7e5e7a54
improve fail on too many warings
...
thanks lovell, see 89bd46d1c4 (commitcomment-70409015)
2022-04-04 15:44:37 +01:00
Michael Drake
0f30690360
Update to latest libnsgif ( #2747 )
...
* libnsgif: Update to latest upstream.
* nsgifload: Update for new pixel format API.
LibNSGIF now lets the client select a pixel colour component
order. We use NSGIF_BITMAP_FMT_R8G8B8A8, which is the same
format LibNSGIF always decoded to.
* nsgifload: Remove loop_count from VERBOSE output.
This was internal state for a nsgif_frame_prepare() managed
animation, but VIPS doesn't use nsgif_frame_prepare(). The
loop_count member has been removed from the public structure.
2022-04-04 13:57:20 +01:00
John Cupitt
89bd46d1c4
stop JPEG load after 20 warnings
...
mitigates some DoS attacks somewhat
see https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24383
2022-04-03 19:21:06 +01:00
John Cupitt
55b857d446
revise cast asserts
...
since we allow casting between formats ofthe same size with shift enabled
fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=45016&q=libvips&can=2
2022-04-03 15:32:25 +01:00
Lovell Fuller
9228e50f46
vipsload: ensure resolution is positive ( #2742 )
2022-04-03 11:00:44 +01:00
John Cupitt
dc07b00059
set vips-sequential as a simple int
...
to avoid trouble with bindings which don't implement get for an empty
VipsArea
2022-03-31 17:05:02 +01:00
John Cupitt
39e75e07a2
deprecate "properties", register ".szi" as a suff
2022-03-29 17:50:48 +01:00
John Cupitt
d58b3410c4
tiny perf improvement
2022-03-28 12:35:25 +01:00
John Cupitt
a77a1071a2
fix a crash with empty image arrays in bandjoin
...
see https://github.com/libvips/pyvips/pull/310
2022-03-24 22:38:03 +00:00
John Cupitt
62fee01f3a
add notes on cast and copy to arithmetic
2022-03-23 10:24:24 +00:00
John Cupitt
9f351c9c58
tiny doc polish
2022-03-22 15:38:24 +00:00
John Cupitt
75e6906f52
improve morph docs
2022-03-22 15:36:11 +00:00
John Cupitt
9713a71bf0
block resolutions < 0
...
since they can trigger a sanity failure in the test suite
2022-03-22 15:09:13 +00:00
John Cupitt
1b97b52318
clarify draw docs
...
see https://github.com/libvips/libvips/discussions/2733
2022-03-22 10:03:36 +00:00
John Cupitt
a77519f7c3
try to improve docs
...
see https://github.com/libvips/libvips/discussions/2733#discussioncomment-2412590
2022-03-22 09:10:34 +00:00
John Cupitt
eaf34b8f13
remove openjpeg bpp handling
...
it's deprecated
2022-03-17 15:02:29 +00:00
John Cupitt
168d7652c2
Merge branch '8.12'
2022-03-11 16:25:11 +00:00
John Cupitt
f0eb493643
fix thumbnail with cmyk output
...
see https://github.com/libvips/php-vips/issues/138
thanks AdamGaskins
2022-03-11 16:21:12 +00:00
Essem
d4eb2e82d2
cgifsave: Make loop counts more accurate ( #2709 )
...
* cgifsave: Added "noloop" option
* cgifsave: Change loop count logic
* make sure nsgifload returns the correct loop count
* Revert "make sure nsgifload returns the correct loop count"
This reverts commit 77550f097940944492d4178a783fc4e73c7a769f.
* Add fallback
2022-03-10 12:30:57 +00:00
Michael Drake
292ee9a47e
libnsgif: Update to latest upstream. ( #2712 )
2022-03-09 10:13:48 +00:00
John Cupitt
2fdab9ba70
check page size from pdfium
...
PDFium allows page width and height to be less than 1, which will cause
libvips severe indegestion.
2022-03-08 10:21:08 +00:00
John Cupitt
ede67090cb
revise resample docs
...
see https://github.com/libvips/libvips/discussions/2711
2022-03-06 11:42:27 +00:00
Michael Drake
5f7c12e474
libnsgif: Update to latest upstream. ( #2706 )
2022-03-04 08:05:36 +00:00
John Cupitt
c0de1b6169
fix dispose order in gifsave
...
Shut down cgif before we shut down the target it is writing to so that
flush in cgif has somewhere to flusgh to.
See https://github.com/libvips/libvips/discussions/2707
2022-03-03 22:41:11 +00:00
Kleis Auke Wolthuizen
330ebf3cd7
Mosaicing fixes and improvements ( #2705 )
...
* Fix segv in `vips_mosaic1`
* Fix ref handling in `rotjoin_search`
* Pass `oarea` to `vips_affine` as `VipsArrayInt` instead
* Flip X/Y positions in `vips__coeff`
* Fix `-Wunused-but-set-variable` warning
* Deprecate unused mosaicing arguments
* Remove a couple of stray header decls
2022-03-03 20:10:20 +00:00
Kleis Auke Wolthuizen
a0f9cd95e0
Ensure compatibility with nip2 ( #2704 )
...
nip2 uses the `VIPS_EXEEXT` definition.
2022-03-03 18:51:33 +00:00
Michael Drake
ac35124f59
nsgifload: Fix gif decoding issue. ( #2702 )
...
The nsgif_data_scan() call returns an error code that says
if anything was wrong with the source data.
It is not unusual for there to be bad stuff in a GIF, so we
only need to worry if we failed to find any frames.
2022-03-03 18:49:31 +00:00
John Cupitt
f65b615a17
minor nsgifload revisions
...
- add note to changelog
- remove dead code
- improve debug output
- track current page number
see https://github.com/libvips/libvips/pull/2699
2022-03-03 11:49:13 +00:00
John Cupitt
eb577606a0
revise change detection again
...
to fix debug output
2022-03-03 11:48:49 +00:00
Michael Drake
8e9fe72dea
Update libnsgif ( #2699 )
...
* libnsgif: Rename upstream README with markdown extension.
* libnsgif: Drop default frame delay patch
* libnsgif: Remove unused utils / log.h header.
* libnsgif: Rename files to match upstream.
* libnsgif: Extend update script to update local README and test/
* libnsgif: Run update script.
* libnsgif: Update buildsystem for renamed files
* nsgifload: Switch to new library header.
* nsgifload: Remove optional and unused bitmap callbacks.
* nsgifload: Update to use new libnsgif API.
2022-03-03 10:02:36 +00:00
John Cupitt
716fbf75b1
raise GIF save frame size limit
2022-03-02 18:06:44 +00:00
John Cupitt
669ea43138
improve the GIF save change detector
...
Instead if just summing PELs, scale RGBA differently. This lets us
detect changes like [255, 0, 0] to [9, 255, 0]
2022-03-02 18:03:36 +00:00
John Cupitt
de2adb99a2
better frame write loop for gif save
2022-02-28 17:20:42 +00:00
John Cupitt
3b6072437d
add new param to gifsave docs
...
also note in changelog and revise layout for 80 columns
see https://github.com/libvips/libvips/pull/2628
2022-02-28 16:38:02 +00:00
Daniel Löbl
b0f993eec8
cgifsave: avoid size issue ( #2628 )
...
* cgifsave: avoid size issue
avoid size issue by restoring the original transparency setting after quantization/dithering
* switch to per-frame alpha channel
* add option for lossy transparency
* switch lossy transparency off by default
* switch to g_malloc instead of g_malloc0
no need to 0 initialize at this point
* adapt to libvips coding conventions
* cgifsave: avoid size issue
avoid size issue by restoring the original transparency setting after quantization/dithering
* switch to per-frame alpha channel
* add option for lossy transparency
* switch lossy transparency off by default
* switch to g_malloc instead of g_malloc0
no need to 0 initialize at this point
* adapt to libvips coding conventions
* switch to official Homebrew sources for installing cgif
* bump required cgif version to v0.2.0
2022-02-28 16:19:13 +00:00
John Cupitt
3073ee90b7
Improve edge handling for mapim ( #2681 )
...
* almost there
* smol changes
* getting close now
segv on the test suite, annoyingly
* argh still not quite thert
* phew
2022-02-28 09:12:09 +00:00
John Cupitt
9d841e848f
more init check to libvips base class
...
helps introspection run correctly if there's no vips_init()
2022-02-27 18:48:37 +00:00
Kleis Auke Wolthuizen
f11b58ff6c
Remove `VIPS_EXEEXT` and `VIPS_SONAME` definitions ( #2694 )
...
And the corresponding `soname.h` header.
2022-02-27 15:27:37 +00:00
Kleis Auke Wolthuizen
0337c09700
Cleanup gettext handling ( #2695 )
...
Use GLib's i18n support instead of copying and pasting that
logic into its own header. This deprecates the vips/intl.h
header in favour of glib/gi18n.h.
2022-02-27 15:27:28 +00:00
Kleis Auke Wolthuizen
517089fb4b
Meson: don't install deprecated headers when `-Ddeprecated=false` ( #2693 )
2022-02-27 13:44:09 +00:00
Kleis Auke Wolthuizen
65fbcd351b
Add missing funcs to public C API ( #2692 )
2022-02-27 13:42:17 +00:00
Kleis Auke Wolthuizen
50a74ceeec
Mark some functions and variables as static ( #2691 )
...
These are only used in the same file, and not exported.
2022-02-27 13:41:39 +00:00
Lovell Fuller
6639b90f22
window: delay setting ref count ( #2690 )
...
fixes an assert fail in window_free
2022-02-27 09:50:04 +00:00
Kleis Auke Wolthuizen
a8b48e1442
Add missing annotations to #endif directives ( #2678 )
2022-02-23 11:55:40 +00:00
John Cupitt
5ff96da873
add note on heifload unlimited to changelog
2022-02-23 10:35:46 +00:00
Lovell Fuller
4ca4b07654
heifload: add unlimited option, default to false ( #2677 )
2022-02-23 10:34:07 +00:00
Kleis Auke Wolthuizen
1e4cd2d5c2
Fix building with -Dmodules=disabled ( #2676 )
...
* Fix building with -Dmodules=disabled
* Reformat line [skip ci]
2022-02-23 10:32:02 +00:00
Kleis Auke Wolthuizen
d80185060d
Various improvements to the build systems ( #2675 )
...
* Meson: remove space before colon
Since key-value pairs in Python are usually delimited as
colon+space instead of space+colon+space.
* Meson: disable modules by default when building static libraries
Corresponds to autotools. See: #2323 .
* Meson: make modules a feature option
Corresponds to autotools, where modules are built
automatically if enabled and supported.
* Meson: specify minimum required GLib version
* Meson: fix indentation
* Remove unused function checks
* Simplify GLib configure checks
* Meson: ensure modules doesn't include enumtypes sources
Since that would cause duplicate symbols.
(`soname_header` can also be safely removed here,
since that is already included in `libvips_headers_dep`)
2022-02-22 14:33:42 +00:00
John Cupitt
c5f2fea8bf
fix a gcc warning with clang pragmas
2022-02-22 10:06:43 +00:00
Michael Drake
b05515b0c5
Update libnsgif from upstream ( #2674 )
...
* libnsgif: Remove patch artifact.
* libnsgif: Update from upstream.
2022-02-21 20:07:20 +00:00
John Cupitt
49cae56e1e
stray "im_" prefix
2022-02-20 17:07:29 +00:00
Kleis Auke Wolthuizen
3da7caee6c
LSan improvements and fixes ( #2672 )
...
* LSan: remove GLib suppression
* LSan: disable the fast unwinder to get full stacktraces
* Move ASan/UBSan fuzzer options to CI configuration
* LSan: remove EOLed python2.7 suppression
* LSan: remove libstdc++ suppression
* LSan: add libx265 to suppression file
* Try to reproduce small memleak
* Try a possible patch
* Skip test if `im_benchmark` is not available
* CI: upgrade Clang version to 13
* CI: correct job names
* Meson: increase the timeout for tests
* README.md: correct Meson invocation
2022-02-19 15:13:42 +00:00
John Cupitt
e985e23c09
add HDR support to heif load/save ( #2596 )
...
* heifload done, doing save
* finish save, add tests, docs
2022-02-18 11:16:15 +00:00
John Cupitt
dc069f8892
ooop typo
2022-02-18 09:53:40 +00:00
John Cupitt
01a9947006
remove atexit use
...
too unreliable to be useful
2022-02-17 14:30:02 +00:00
John Cupitt
f6dafd6fc6
update changelog for intospection fixes
...
and default on, since there are now so few warnings
2022-02-15 10:59:11 +00:00
Corentin Noël
69bf2be12b
Enhance the introspection support by fixing annotations ( #2657 )
...
Also refine the .metadata file
2022-02-15 10:54:40 +00:00
John Cupitt
82a8df2a1f
fix some more small introspection warnings
2022-02-15 10:10:21 +00:00
John Cupitt
362adae8c6
Revert "Enhance the introspection support by fixing annotations ( #2655 )" ( #2656 )
...
This reverts commit 47796dcda0
.
2022-02-15 10:08:07 +00:00
Corentin Noël
47796dcda0
Enhance the introspection support by fixing annotations ( #2655 )
...
* Ensure that double asterisk characters are only used for gtk-doc comments
This triggers warnings when parsing the files with the introspection scanner
and gtk-doc
* Enhance the introspection support by fixing annotations
Also refine the .metadata file
Co-authored-by: John Cupitt <jcupitt@gmail.com>
2022-02-15 09:54:32 +00:00
John Cupitt
257d84108e
fix some more introspection warnings
2022-02-15 09:48:01 +00:00
Corentin Noël
542dd06999
Refine header inclusion to allow better introspection generation ( #2654 )
...
The headers need to be self-contained for the introspection parser
to work correctly. The entry for external users remains vips/vips.h
2022-02-15 05:02:07 +00:00
John Cupitt
1862e7209e
add spngsave to meson build
2022-02-11 16:43:02 +00:00
John Cupitt
896cad6a7a
Add spngsave ( #2536 )
...
* quick hack
won't even compile
* works!
at a basic level, anyway
* start wiring up metadata
* metadata done
* add spng interlaced save
* start adding index support
* fix palette save
* Update libvips/foreign/spngsave.c
Co-authored-by: Kleis Auke Wolthuizen <github@kleisauke.nl>
* start adding low bit depth write
* add a warning for low bitdepth write
* small fixes
* add 1/2/4 bit write
adapted from the vips2tiff bit packer
* small polish
* note spngsave in changelog
* Update libvips/foreign/spngsave.c
Co-authored-by: Kleis Auke Wolthuizen <github@kleisauke.nl>
* Update libvips/foreign/spngsave.c
Co-authored-by: Kleis Auke Wolthuizen <github@kleisauke.nl>
* revise 8 and 16-bit PNG write rules
* cleanup
* remove unnecessary palette filter optimisation
since libspng already does this
* add xres/yres rounding
thanks klies
he commit message for your changes. Lines starting
* look for spng.pc and libspng.pc
It can be called either, frustratingly.
* fix PACKAGES_USED for spng .pc changes
Co-authored-by: Kleis Auke Wolthuizen <github@kleisauke.nl>
2022-02-11 16:30:23 +00:00
Corentin Noël
02901436d4
Add meson build system ( #2637 )
...
Allows to use the Meson build system to build the project.
2022-02-08 15:19:36 +00:00
John Cupitt
0d8056b8c5
fix a few small compiler warnings
2022-02-03 14:28:22 +00:00
John Cupitt
8c668303f8
improve the pixel rng
...
see https://github.com/libvips/libvips/issues/2642
2022-02-02 18:15:26 +00:00
John Cupitt
d9c00eb5ca
add password fielf to pdfiumload
...
and docs
2022-01-28 13:32:13 +00:00
John Cupitt
cb78b1b9fb
add "password" option to pdfload
...
loads at least AES128-encrypted PDFs
pdfiumload needs a similar feature
see https://github.com/libvips/libvips/issues/2635
2022-01-28 13:25:46 +00:00
John Cupitt
0a7e96a4e2
Merge branch '8.12'
2022-01-28 08:51:27 +00:00
John Cupitt
68a8bf42a7
better arg checking for hist_find_ndim
...
we were not checking the number of input bands
move checks to _build
thanks travisbell
see https://github.com/libvips/libvips/issues/2634
2022-01-28 08:47:30 +00:00
John Cupitt
646f2d7fd7
Fix read from pipe with variable chunk sizes
...
free the header cache only once it's exhausted
2022-01-24 12:12:03 +00:00
John Cupitt
260b2ddf92
Fix read from pipe with variable chunk sizes
...
free the header cache only once it's exhausted
2022-01-24 11:27:22 +00:00
John Cupitt
cfa7f03278
Merge branch '8.12'
2022-01-18 18:23:20 +00:00
John Cupitt
774c969d43
fix GIF save change detector
...
We were only using the top 25% of the frame for GIF pallette change
detection.
Thanks TheEssem
See: https://github.com/libvips/libvips/issues/2622
2022-01-18 18:15:38 +00:00
John Cupitt
f01c9fcd91
add missing header to _sources
...
thanks Kleis
2022-01-18 16:15:26 +00:00
John Cupitt
1496984a7a
add jp2k load left-justification
...
We were loading 12-bit images as 0-4095 pixels, which then looked very
dark as RGB16. This patch left-justifies bits to fill 0-55, 0-65535 etc.
as required.
2022-01-17 14:18:59 +00:00
John Cupitt
ce54b4e5ad
Merge branch '8.12'
2022-01-13 11:47:53 +00:00
John Cupitt
6b475c92a2
raise linpng size limit
...
By default libpng is limited to 1m pixels per axis. Raise this to
VIPS_MAX_COORD, ie. 10m pixels.
2022-01-13 11:44:28 +00:00
John Cupitt
56a7916e80
remove stray error messages
2022-01-09 12:20:25 +00:00
John Cupitt
c278f9019d
Merge branch '8.12'
2022-01-01 00:29:26 +00:00
John Cupitt
f75b3c1ee9
adjust GIF alpha threshold
...
see https://github.com/libvips/libvips/discussions/2604
2021-12-31 20:20:56 +00:00
John Cupitt
eb906f182d
Merge branch '8.12'
2021-12-22 10:26:57 +00:00
John Cupitt
d3f77e4433
add a sniffer for TTF
...
since TTF files can be caught by the almost unfixably overgenerous TGA sniffer
see https://github.com/libvips/php-vips/issues/127
2021-12-22 10:25:52 +00:00
Joel Larsson
93ff76ce53
Fix documentation typo ( #2591 )
...
A small typo fix on the documenation of `vips_percent`
2021-12-21 14:54:02 +00:00
Joel Larsson
1ed0e177bb
Fix documentation typo ( #2591 )
...
A small typo fix on the documenation of `vips_percent`
2021-12-21 14:53:14 +00:00
Aaron
b6ca9eeff3
dzsave.c: Remove trailing comma from IIIFv3 folder names ( #2590 )
...
Fixes #2589 .
Signed-off-by: Aaron <admin@datahoarder.dev>
2021-12-21 09:46:04 +00:00
Aaron
d98a003008
dzsave.c: Remove trailing comma from IIIFv3 folder names ( #2590 )
...
Fixes #2589 .
Signed-off-by: Aaron <admin@datahoarder.dev>
2021-12-21 09:43:48 +00:00
John Cupitt
1502b4af0c
oop, dropped patch
2021-12-18 18:24:13 +00:00
John Cupitt
03a073b68d
set default GIF frame delay to 100ms
...
was 1000ms, see https://github.com/libvips/libvips/issues/2582
2021-12-18 18:20:18 +00:00
John Cupitt
9420911ba8
change default GIF frame delay from 1s to 0.1s
...
This is the delay if the GCB is missing.
See https://github.com/libvips/libvips/issues/2582
2021-12-18 18:08:30 +00:00
John Cupitt
0a824517fa
Merge branch '8.12'
2021-12-16 10:58:29 +00:00
John Cupitt
65d84d1cbe
fix a crash with 0 length vectors
2021-12-16 10:45:10 +00:00
John Cupitt
753c52cdc4
Merge branch '8.12'
2021-12-12 10:15:04 +00:00
John Cupitt
1fe283cc85
remove GIF frame size limit
...
We limited GIFs to 16k on an axis, but there are a few larger than
this. Check for 64k instead (the GIF format limit).
2021-12-12 10:12:00 +00:00
John Cupitt
561b670ea2
better dbg messages from tiffsave
2021-12-09 13:18:46 +00:00
John Cupitt
47be1fcc6f
Merge branch '8.12'
2021-12-09 13:01:51 +00:00
John Cupitt
6d23a3615e
add a fallback path for gif save if no cgif
...
Via imagemagick. See https://github.com/libvips/libvips/issues/2574
2021-12-09 13:00:58 +00:00
John Cupitt
5b089951ac
Merge branch '8.12'
2021-12-06 14:04:49 +00:00
John Cupitt
cd80b5ae94
note win fd change in changelog
2021-12-06 13:58:46 +00:00
Lovell Fuller
b28ee777ab
Windows: don't set create time for invalid/stream fd ( #2571 )
2021-12-06 13:52:02 +00:00
John Cupitt
ba5afffd68
Merge branch '8.12'
2021-11-26 11:12:47 +00:00
John Cupitt
e0bb8e5d58
make exif resunit optional and default to inch
...
Some images don't set the exif resolution unit. We were ignoring exif
resolution in this case, but that's not correct, it's supposed to
default to inch.
See https://web.archive.org/web/20190624045241if_/http://www.cipa.jp:80/std/documents/e/DC-008-Translation-2019-E.pdf for the full spec.
2021-11-26 11:10:29 +00:00
John Cupitt
728f2e2905
Merge branch '8.12'
2021-11-21 15:13:17 +00:00
John Cupitt
edf63dfeeb
fix insert
...
We were not detecting the shortcut cases for insert correctly, thanks
chreru.
See https://github.com/libvips/libvips/issues/2548
2021-11-21 14:50:55 +00:00