Commit Graph

89 Commits

Author SHA1 Message Date
Lovell Fuller
f7619cf33e
gifsave: expose bitdepth property (#2429)
Provides control over the maximum number of colours in the output
image palette, making the API more closely match that of pngsave.

Lowering the bitdepth to 7 (from the default value of 8), which
halves the maximum number of colours from 255 to 127, typically
reduces encoding time by ~20%.
2021-09-10 08:57:12 +01:00
John Cupitt
b9230edcbe Merge branch '8.11' 2021-08-29 19:13:12 +01:00
Lovell Fuller
1f5d6f6bc9
Add gifsave operation, depends on cgif and libimagequant (#2381) 2021-08-22 18:11:41 +01:00
Kleis Auke Wolthuizen
b978ed8e8f
Adapt TestForeign.test_heifsave test (#2402)
- `heifsave` defaults to AV1 compression for .avif suffix since commit 8c44863.
- Test lossless compression mode.
2021-08-16 22:25:14 +01:00
John Cupitt
2ca96a3fef add another test for tiff ifd pyramids
test loading from a lower layer
2021-06-29 08:34:42 +01:00
John Cupitt
95bf1367ba fix jpeg tiff pyramid save
we were not copying the quant tables on lower pyr levels correctly

add a test too
2021-06-28 20:24:00 +01:00
Lovell Fuller
d1c038c22d svgload: skip images with invalid dimensions 2021-06-28 14:21:40 +01:00
John Cupitt
6804ff61df load non-transparent GIFs as RGB
And GIFs with transparent elements as RGBA. This can make downstream
processing (eg. in vipsdisp) much quicker since it can save a
composite.
2021-06-07 09:54:53 +01:00
Kleis Auke Wolthuizen
25a268c341 Fix CI failures
- Include the rgba image in the teardown of TestForeign.
- Fix merge conflict.
2021-05-03 12:39:40 +02:00
John Cupitt
0eda488c60 make the tiff test less sensitive to rounding 2021-05-01 23:26:28 +01:00
John Cupitt
03f76b73b4 add "premultiply" param to tiffsave
Some programs, like indesign, only work with premultiplied alpha in TIFF. To
make TIFFs which are compatible with these programs, we'll need an extra
TIFF save flag (perhaps premultiply?) to premultiply alpha and save as
EXTRASAMPLE_ASSOCALPHA.

see https://github.com/libvips/libvips/issues/2192
2021-05-01 20:08:06 +01:00
John Cupitt
edcdf8af70 rebase add-jp2ktiff on master 2021-04-26 15:16:20 +01:00
John Cupitt
0054c7dafa add some more gifload tests 2021-03-28 13:49:34 +01:00
John Cupitt
69fcf1b9e9
Merge branch 'master' into add-openjpeg 2021-03-27 15:22:13 +00:00
John Cupitt
9cbb4c2cd1
Merge pull request #1709 from libvips/add-libnsgif
Add libnsgif support
2021-03-27 15:10:30 +00:00
John Cupitt
40c020ccd2 more jp2k tests 2021-03-23 17:15:02 +00:00
John Cupitt
2575d963bd add jp2k tests
and buffer load/save
2021-03-20 12:16:10 +00:00
John Cupitt
8d6f90c060 Merge branch '8.10' 2021-03-14 11:03:40 +00:00
Kleis Auke Wolthuizen
62b0939c4b vips2webp: force low duration frames to 100ms 2021-03-13 22:04:37 +01:00
John Cupitt
48d9c5d0d4 update test suite for new gif loader 2021-02-28 13:50:04 +00:00
Lovell Fuller
3ad7363104 heifsave: add option to control subsample_mode
Defaults to no subsampling when Q>90 for consistency with jpegsave.

Deprecate VipsForeignJpegSubsample enum, replace with more generic
VipsForeignSubsample.
2021-01-13 10:01:34 +00:00
Kleis Auke Wolthuizen
6e72b75efa Adapt test suite for AVIF support 2021-01-06 12:14:21 +01:00
John Cupitt
42af1cec36 add vipsload_source
plus small openslideload_source fixes
2020-12-31 19:47:36 +00:00
John Cupitt
233609368b add a test for openslideload_source 2020-12-30 18:01:54 +00:00
John Cupitt
158e9e153a add some more ppm tests 2020-12-26 18:35:11 +00:00
Lovell Fuller
45fd740130 webpload: prevent divide-by-zero when blending pixels
Adds a test case to prevent regression - see commit 6eaf1ed
2020-12-17 20:23:06 +00:00
Kleis Auke Wolthuizen
ea53660a6b Port Ruby test case to Python 2020-11-23 14:40:59 +01: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
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
6b2079bfd3 update magick metadata naming
IM seem to have changed their rules for naming metadata chunks. They are
now lowercase and ICM is renamed to ICC. Add a simple test too.

See https://github.com/libvips/ruby-vips/issues/246
2020-09-06 12:59:10 +01:00
Lovell Fuller
69ee8a32b6 Ensure SVG loader skips input with chars outside x09-x7F range
Add test with example valid WebP image that happens to contain
the string '<svg' within its compressed image data.
2020-08-21 11:38:40 +01:00
John Cupitt
d831ad34d5 add ppm load/save to a connection
plus some more tests
2020-06-27 15:23:18 +01:00
John Cupitt
4bf27acccb add 1/2/4 bit PNG save
- new @bitdepth param
- deprecate @colours param
2020-06-25 10:40:43 +01:00
John Cupitt
19077b53ac revise tiff2vips 1/2/4 bit load
simpler, faster, smaller
2020-06-17 13:59:02 +01:00
John Cupitt
99d7573ab6 add tests for 2 and 4 bit tiff 2020-06-16 21:49:07 +01:00
John Cupitt
1e015654c3 deprecate heifload autorotate
heifload autorotate is now always on, and we always delete EXIF
orientation tags. If a HEIC image fails to rotate upright, at least it's
someone else's fault.

see https://github.com/libvips/libvips/pull/1680
2020-06-10 19:57:50 +01:00
John Cupitt
6d5a371147 add some tests for subifd pyramids
fix a problem with jpg-compressed tiffs too
2020-06-02 18:08:34 +01:00
John Cupitt
c2094fcd7c relax thresh for jpegload
some lib jpegs have slightly different rounding behaviour
2020-04-24 19:26:17 +01:00
elad laufer
8749871c71 - remove no_subsample from inner calls 2020-02-18 18:04:29 +02:00
elad laufer
22b3a0d161 - use enum string 2020-02-18 13:43:02 +02:00
elad laufer
838b5e7458 - add test case 2020-02-18 11:33:29 +02:00
elad laufer
65b1a3eac2 - add test case 2020-02-18 11:09:18 +02:00
elad laufer
494d8876eb - don't skimp on names 2020-02-17 17:15:43 +02:00
elad laufer
d2b794ec35 - use a single enum and switch that replaces no_subsample, force_subsample 2020-02-17 11:29:57 +02:00
elad laufer
c626c9de14 add force subsample argument that overrides the Q deduced subsampling directive 2020-02-16 18:37:32 +02:00
alon-ne
f88dab9ccd
Fix gif dispose handling for DISPOSE_BACKGROUND and DISPOSE_PREVIOUS
- Add 'scratch' field to gif that holds temporary 'scratch buffer' used for rendering frames
- For DISPOSE_BACKGROUND: Set background color to transparent instead of 0
- For DISPOSE_BACKGROUND: Write background pixels into scratch after rendering current frame, so it will be used in next frame
- For DISPOSE_PREVIOUS: Save frames that are not disposed into 'previous' field in gif, when DISPOSE_PREVIOUS is specified start with that previous frame. see http://webreference.com/content/studio/disposal.html
- Add "ANIMEXTS1.0" to Application Extension parser
- Graphic Control Extension parser refactor
- Compare file contents to expected images for animated gifs in foreign tests
2020-02-06 17:36:13 +02:00
Andrii Dmytrenko
d0b69826cc Reset orientation if exif data is incorrect 2020-01-06 11:02:10 +00:00
John Cupitt
1e2ca2e0bf fix refleak in webpsave_buffer
And add teardown to the test-suite so we can spot refleaks more easily.
2019-12-21 05:13:54 +00:00
John Cupitt
6c038f5ca8 add a test for tuncated image files 2019-12-18 14:48:59 +00:00
John Cupitt
686829166d fix some more metadata updates
some more minor cases picked up by the test suite
2019-11-30 12:11:23 +00:00