Commit Graph

8110 Commits

Author SHA1 Message Date
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
Kleis Auke Wolthuizen 9c22d74cff
doc: make pandoc optional (#2866)
Since it's currently unavailable on RHEL 9.
2022-06-15 10:19:49 +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 0922d60000 Merge branch 'master' of github.com:libvips/libvips 2022-06-12 16:46:18 +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 468c13693b
CI: upgrade runner to Ubuntu 22.04 (#2850)
* CI: upgrade runner to Ubuntu 22.04

- Compile with GCC 11 and Clang 14.
- Remove redundant PPAs.
- Use system provided Meson.
- Update LeakSanitizer suppressions.

* CI: ensure `VIPS_BLOCK_UNTRUSTED` is tested

`magicksave` cannot be used for testing when building with
`-Dmodules=enabled` (default), since that would require the
loadable modules to be installed first.
2022-06-12 12:24:30 +01:00
John Cupitt fe22f80f7d Merge branch 'master' of github.com:libvips/libvips 2022-06-12 12:24:06 +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 b0f38b5197 add tests for tiffload/save_target, dzsave_target 2022-06-12 12:18:45 +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
John Cupitt b74504b985 Merge branch 'master' of github.com:libvips/libvips 2022-06-12 11:08:47 +01:00
John Cupitt 687209e1cb add some notes on getting nifti working 2022-06-12 10:41:02 +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
John Cupitt da73a24b8f Merge branch 'master' of github.com:libvips/libvips 2022-06-10 18:08:56 +01:00
John Cupitt 26f8b8a249 vips_block_untrusted_set was named wrongly 2022-06-10 18:08:27 +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
Kleis Auke Wolthuizen a96dd73648
doc: add missing files and use full paths (#2822)
* doc: add missing files and use full paths

It seems that private_headers didn't work for out-of-tree builds.
This commit makes it use full paths and adds a few missing files.

* cplusplus: use the correct `install_dir` for the Doxygen docs
2022-05-26 08:48:31 +01:00