Commit Graph

428 Commits

Author SHA1 Message Date
John Cupitt a16f118b0c speed up test suite
ouch we were making a huge avif image in memory
2021-10-25 20:40:42 +01:00
Kleis Auke Wolthuizen 29fb557e24
Temporarily skip `test_heifsave` on macOS (#2494) 2021-10-21 18:14:40 +01:00
John Cupitt de6e2fef9e add a test for atan2
and tiny formatting changes
2021-10-20 20:40:39 +01:00
John Cupitt 444a04e94f formatting, another MCU test 2021-10-08 17:58:17 +01:00
David Manthey 46a67cfab9
Add jpeg restart_interval option. (#2468)
* Add jpeg restart_interval option.

This allows saving a jpeg with MCU restarts.

* Fix code style.  Add description of restart_interval.

* Add a basic test based on output length.

* Update main change log.
2021-10-08 17:33:32 +01:00
John Cupitt 7e8af07c66
Fix flatten clip (#2432)
* fic gtk-doc typenames in cgif

* fix flatten clipping

flatten could produce out of range values if max_alpha was less than
the limit of the numeric range of the format

https://github.com/libvips/libvips/issues/2431
2021-09-13 11:23:02 +01:00
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
Kleis Auke Wolthuizen f2e5b7e9da
CI: resolve failures and various improvements (#2426)
* Simplify CI workflow

* CI: upgrade Ubuntu's Clang version to 12

* CI: upgrade macOS runner to version 11 (Big Sur)

* CI: temporarily disable the M1 runner

* CI: output test suite log upon failure

* CI: avoid brew update/upgrade steps

Since it may take a long time.

* CI: all jobs are supposed to succeed

* Fix test_descriptors.c failure after f8c2a36

Use a RANDOM image to create many crops from one source.
2021-09-07 11:14:45 +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
Doug Nazar 97f5417aaa
Fix tests when using a separate build dir. (#2405) 2021-08-18 11:45:02 +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
John Cupitt 53255419d7 fix "make check" on raspbian
unset LC_ALL in test/, thanks ewelot
2021-05-09 15:49:44 +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 f74d6c795d Merge branch 'master' into add-libnsgif 2021-03-07 14:37:14 +00:00
John Cupitt 2e56828053 Merge branch '8.10' 2021-03-06 11:47:02 +00:00
John Cupitt 48d9c5d0d4 update test suite for new gif loader 2021-02-28 13:50:04 +00:00
John Cupitt 0b74acf7ba add a test for unpremultiply
we actually test vipsthumbnail --linear on an RGBA image, which should
catch everything, hopefully
2021-02-27 15:48:02 +00:00
John Cupitt 679665b403 fix a memleak in vips__correl
and some more tests
2021-02-06 15:42:31 +00:00
John Cupitt 6782769d8c add some more mosaicing tests
to try to pin down the memleak
2021-02-05 17:14:48 +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 ae55fd9523 Regenerate AVIF test image with libheif v1.10.0
Saves a few bytes since the software version comment is no longer included in the hdlr box.
2021-01-06 12:14:22 +01:00
Kleis Auke Wolthuizen 030bf91815 Save AVIF test image with speed=0
Reduces the size of the image by 6 kB.
2021-01-06 12:14:21 +01: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 59ea801627 Merge branch '8.10' 2020-12-27 03:08:17 +00:00
John Cupitt 158e9e153a add some more ppm tests 2020-12-26 18:35:11 +00:00
John Cupitt 2348a02351 Merge branch '8.10' 2020-12-18 10:14:03 +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
John Cupitt 25db7849e7 Merge branch '8.10' 2020-12-09 15:19:18 +00:00
John Cupitt 3996f3279b fix range clips for casts to and from int
Fix two bugs:

- clip in casts from int32 and uint32 could overflow -- do these as gint64 now

- clip in casts from float to int could overflow since float32 can't
  represent the full range of int32 without losing precision -- do these
  as double

And add some more tests.

Thanks ewelot.

see https://github.com/libvips/libvips/issues/1922
2020-12-09 15:14:59 +00:00
John Cupitt f6d7af46b8 Merge branch '8.10' 2020-11-24 11:15:45 +00:00
Kleis Auke Wolthuizen ea53660a6b Port Ruby test case to Python 2020-11-23 14:40:59 +01:00
John Cupitt 013e8beba7 Merge branch '8.10' 2020-11-11 10:06:22 +00: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 20988977ab Merge branch '8.10' 2020-11-03 23:45:17 +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 4799df9efb fix two small bugs in test_connections.c
We were passing NULL rather than argv0 to VIPS_INIT(), and we were not
freeing the loaded file.

thanks zodf0055980

see https://github.com/libvips/libvips/issues/1867
2020-10-27 15:11:29 +00:00
John Cupitt f1c8959e66 add a test for vipsthumbnail of stdin/stdout 2020-10-04 16:14:13 +01:00
John Cupitt 48a2551957 fix TIFF thumbnail of buffer and source
We had dropped a couple of patches.

see https://github.com/libvips/libvips/issues/1815
2020-09-14 17:26:19 +01: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 0803de07e7 move vips__lr|tbmerge to private API 2020-07-01 17:31:25 +01:00
John Cupitt e3a500204a
Merge pull request #1593 from kleisauke/disable-deprecated
Fix for --disable-deprecated (#1273)
2020-06-28 11:07:56 +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
Kleis Auke Wolthuizen 541e58610b Add unit test for vips_mosaic / vips_globalbalance 2020-06-18 14:42:55 +02:00
Kleis Auke Wolthuizen 4b5db786f0 Add unit test for vips_matrixinvert 2020-06-18 14:41:03 +02:00
Kleis Auke Wolthuizen 8abcae3abc Avoid using vips7 symbols 2020-06-18 14:21:43 +02:00
John Cupitt b7a285e84b remove f"" from test suite to help older pythons 2020-06-18 10:10:39 +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 c307d3686f add some more thumbnail tests 2020-06-15 14:06:16 +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 30386db775
Merge pull request #1650 from wix-playground/master
Handle mirrored orientations in autorot
2020-06-06 14:46:15 +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
elad laufer c993a7ad2a - use jpeg in test target 2020-05-13 11:12:01 +03:00
Elad Laufer b05cf39df8
Handle mirroring in autorot (#8)
* handle mirroring in autorot
* added tests for autorot
2020-05-12 13:01:48 +03:00
John Cupitt c2094fcd7c relax thresh for jpegload
some lib jpegs have slightly different rounding behaviour
2020-04-24 19:26:17 +01:00
John Cupitt b689235f57 missing include in test_connections
Thanks brcarp.

See https://github.com/libvips/libvips/issues/1571
2020-03-11 09:11:29 +00: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
John Cupitt 34fcd1fe69 fix autorot in thumbnail
`vips_thumbnail()` was not taking a private copy of the image before
modifying metadata during auto-rotate.

Thanks janko.

See https://github.com/libvips/libvips/issues/1523
2020-01-12 14:24:23 +00:00
John Cupitt 2e9d89b6d4 enable connection tests now pyvips is updated
pyvips should now support connections, so always enable the tests
2020-01-12 14:15:23 +00:00
Andrii Dmytrenko d0b69826cc Reset orientation if exif data is incorrect 2020-01-06 11:02:10 +00:00
Kleis Auke Wolthuizen 31bf0e3cb7 Update function list for stream -> source rename 2020-01-01 12:28:18 +01:00
John Cupitt 252996e3ff make check passes after stream -> source rename 2019-12-30 12:48:20 +00:00
John Cupitt 119dd2cb72 pytest passes again after stream -> source/target 2019-12-29 23:08:33 +00:00
John Cupitt 4c5873809f experiment with renaming stream
rename as VipsConnection, VipsSource, VipsTarget etc.

see https://github.com/libvips/libvips/issues/1494#issuecomment-569498619

renamed with this script:

```

set -e

edit() {
        sed -i -E "$1" rename
}

for i in $*; do
        cp $i rename

        edit s/VIPS_STREAMOU/VIPS_TARGET_CUSTOM/g
        edit s/VIPS_STREAMO/VIPS_TARGET/g
        edit s/VIPS_STREAMIU/VIPS_SOURCE_CUSTOM/g
        edit s/VIPS_STREAMI/VIPS_SOURCE/g
        edit s/VIPS_STREAM/VIPS_CONNECTION/g

        edit s/vips_streamou/vips_target_custom/g
        edit s/vips_streamo/vips_target/g
        edit s/vips_streamiu/vips_source_custom/g
        edit s/vips_streami/vips_source/g
        edit s/vips_stream/vips_connection/g

        edit s/VipsStreamou/VipsTargetCustom/g
        edit s/VipsStreamo/VipsTarget/g
        edit s/VipsStreamiu/VipsSourceCustom/g
        edit s/VipsStreami/VipsSource/g
        edit s/VipsStream/VipsConnection/g

        # eg. VIPS_TYPE_STREAM or VIPS_IS_STREAM
        edit "s/VIPS_([A-Z]+)_STREAMOU/VIPS_\1_TARGET_CUSTOM/g"
        edit "s/VIPS_([A-Z]+)_STREAMO/VIPS_\1_TARGET/g"
        edit "s/VIPS_([A-Z]+)_STREAMIU/VIPS_\1_SOURCE_CUSTOM/g"
        edit "s/VIPS_([A-Z]+)_STREAMI/VIPS_\1_SOURCE/g"
        edit "s/VIPS_([A-Z]+)_STREAM/VIPS_\1_CONNECTION/g"

        edit s/streamou/target_custom/g
        edit s/streamo/target/g
        edit s/streamiu/source_custom/g
        edit s/streami/source/g

        # various identifiers which also change
        edit s/is_a_stream/is_a_source/g
        edit s/find_load_stream/find_load_source/g
        edit s/find_save_stream/find_save_target/g
        edit s/new_from_stream/new_from_source/g
        edit s/write_to_stream/write_to_target/g
        edit s/vips_thumbnail_stream/vips_thumbnail_source/g

        # eg. vips_webpload_stream
        edit "s/vips_([a-z]+)load_stream/vips_\1load_source/g"

        # eg. vips_webpsave_stream
        edit "s/vips_([a-z]+)save_stream/vips_\1save_target/g"

        mv rename $i
done
```
2019-12-29 21:40:21 +00:00
John Cupitt 664796acab relax text test render threshold
so we pass on win as well, see 981ffe752b (r36581177)
2019-12-26 14:11:15 +00:00
John Cupitt f43d6c4cf7 add note in test_desc about ppm loader
and why we can't test_destriptots on that
2019-12-23 14:58:22 +00:00
John Cupitt 981ffe752b add test for text autofit 2019-12-21 05:38:39 +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 e1baf66f19 "squash" to tiffsave now does lab as well
The "squash" option to tiffsave now also squashes 32-bit 3-band float
CIELAB images down to 8 bits.

See https://github.com/libvips/libvips/issues/1499
2019-12-18 17:29:34 +00:00
John Cupitt 6c038f5ca8 add a test for tuncated image files 2019-12-18 14:48:59 +00:00
John Cupitt 6b02c22457 add a test with VIPS_STALL
stresses the caching and locality systems
2019-12-18 14:41:35 +00:00
John Cupitt e236f19f97 add fallbacks to new_from_stream
If the stream-based loaders fail, vips_image_new_from_stream() now falls
back to the old file and buffer loaders.

The file and buffer loaders already try the stream loaders first.
2019-12-10 17:19:12 +00:00
John Cupitt a50405c1f7 fix some run-time errors from clang
Travis is now running with some amount of run-time checking enabled and
it spotted a couple of harmless things.
2019-12-05 14:14:27 +00:00
John Cupitt ae7aaea077 doc polish 2019-12-01 15:29:28 +00:00