Commit Graph

6803 Commits

Author SHA1 Message Date
Randy 0ff30f972d revise spngload 2020-06-09 19:56:23 +02:00
John Cupitt ce63fc1145 use libspng for load, libpng for save 2020-06-09 14:38:04 +01:00
Florian Heinrich 17a9bf393f Merge branch 'master' of https://github.com/libvips/libvips 2020-06-09 11:25:05 +02:00
Florian Heinrich 035e0bc756 Added read and write functionality for 2 and 4 bit greyscale TIF images 2020-06-09 11:23:28 +02:00
John Cupitt ac96bb80b5 try revising spng FMT handling again 2020-06-09 02:38:38 +01:00
John Cupitt f113e64515 update for latest spng 1/2/4 bit handling 2020-06-09 02:27:46 +01:00
John Cupitt 70a1dc0926 Revert "improve transparency support"
This reverts commit 20c9a7f7cc.
2020-06-09 02:04:55 +01:00
John Cupitt ad73034a30 Merge branch 'master' into libspng-experiment 2020-06-09 02:03:40 +01:00
John Cupitt dbae22ab58 revise unpremultiply
We were clipping alpha very aggressively. With over- and under-shoot
ringing on edges, this could introduce extra fringes.

see https://github.com/libvips/libvips/pull/1675
2020-06-08 18:47:28 +01:00
John Cupitt 20c9a7f7cc improve transparency support 2020-06-07 17:27:24 +01:00
John Cupitt 6705ff85b5 use INTERLACE_NONE 2020-06-07 15:29:48 +01:00
John Cupitt fc872421aa add exif/icc/text text chunk read
using new libspng 0.6 features
2020-06-07 15:17:37 +01:00
John Cupitt ef408d630b start adding ICC and XMP support
not quite working though ... seems to need a fix in libspng still
2020-06-07 14:00:10 +01:00
John Cupitt a44814018d Merge branch 'master' into libspng-experiment 2020-06-07 11:56:16 +01:00
John Cupitt 981d5c4b16 revise autorot system
- deprecate vips_autorot_get_angle() since orientation is no longer a
simple rotate
- add vips_image_get_orientation() and vips_image_get_orientation_swap()
- revise tiff and jpeg loader autorotate to just call vips_autorot(),
but only if necessary
- revise thumbnail autorotate too
2020-06-06 17:25:46 +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
Kleis Auke Wolthuizen d7a735400a reducev: Fix undefined-behaviour within the vector path
Found by UBSan.
2020-06-06 14:50:32 +02:00
Kleis Auke Wolthuizen ac30bad695 Remove round-to-nearest behaviour
It seems that it generates the same image, with or without this change.

Tested with https://github.com/kleisauke/vips-issue-703.
2020-06-06 14:29:57 +02:00
Kleis Auke Wolthuizen c0ed106079 Formatting and whitespace changes 2020-06-06 14:25:03 +02:00
Kleis Auke Wolthuizen 369b098096 Prefer an immediate calculation where possible
In line with reducev.
2020-06-06 14:21:15 +02:00
Kleis Auke Wolthuizen dfdf899c92 Ensure reducev is THINSTRIP
In line with reduceh.
2020-06-06 14:16:24 +02:00
Kleis Auke Wolthuizen b6e4e9e74b Speed up the mask construction for uchar/ushort images
By not calling vips_vector_to_fixed_point repeatedly.
2020-06-06 14:12:37 +02:00
Kleis Auke Wolthuizen ac358ff4b8 Fix the pixel shift within reduce (#703) 2020-06-06 14:01:34 +02:00
John Cupitt 54c40249f8
Merge pull request #1673 from libvips/ome-tiff-pyramid
Support for subifd image pyramids
2020-06-05 13:35:21 +01:00
John Cupitt d5eecac88c add note about plane separate write 2020-06-05 12:14:40 +01:00
John Cupitt c82be3d30e read tiff metadata more carefully
we were not always fetching the root metadata
2020-06-04 05:07:34 +01:00
John Cupitt 6e1fd6136d safer directory set in tiff load 2020-06-03 16:41:29 +01:00
John Cupitt 0f57f3692b stop a compiler warning 2020-06-03 13:11:18 +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 d74fe71764 better thumbnail behaviour for subifd pyramids 2020-06-02 14:23:14 +01:00
John Cupitt cff84f4606 add subifd pyr support to thumbnail
thumbnail can spot subifd pyramids and load lower levels if necessary
2020-06-02 12:53:36 +01:00
John Cupitt 460e1d0bf5 set n-subifds for tiff files
says how many subifds in the first page
2020-06-01 17:22:10 +01:00
John Cupitt d16f1e67dd fix tile clipping in toilet roll images
we were not clipping unaligned tiled correctly
2020-06-01 13:22:51 +01:00
John Cupitt 39af6c21c8 update notes 2020-06-01 00:55:19 +01:00
John Cupitt 0bdd2290a0 fix tiff directory mixup
we were not always selecting the correct read directory
2020-06-01 00:39:15 +01:00
John Cupitt f0d4b36d7d better tiled tiff detection
for tiffs with mixed strip and tile images
2020-05-29 18:30:49 +01:00
John Cupitt dc29f8dde6 add subifd select to tiff load 2020-05-28 12:40:31 +01:00
John Cupitt 9e4b78215e fix po 2020-05-27 16:30:04 +01:00
John Cupitt aaebb3b346 fix thumbnail of mono image
we were using RGB as the shrink space
2020-05-27 15:24:27 +01:00
John Cupitt 474bfe3782 pytest and valgrind pass
remove some dbg code
2020-05-24 17:04:55 +01:00
John Cupitt a2d196b736 add subifd support to the TIFF writer
A new subifd switch enables the writing of pyramids layers into subifds
(rather than the default successive pages). This switch is enabled
automatically for multi-page pyramids.

seems to work in quick tests
2020-05-24 15:21:41 +01:00
John Cupitt 6a8f128831 Merge branch 'master' into ome-tiff-pyramid 2020-05-22 16:12:00 +01:00
John Cupitt ba0dea001d sort out premultiply rules for upsizing
vips_resize() uses vips_affine() for upsizing and vips_reduce() for
downsizing. Affine automaticaly does a vips_premultiply() for images
with an alpha channel, but reduce does not. This meant that we could
sometimes premultiply twice.

This patch adds a "premultiplied" flag for affine which turns automatic
premultiuplication off, vips_resize() uses this to block affine's auto
premul feature, and the resize docs are clarified to stress that the
operation does not do premultiplication for you.

See https://github.com/libvips/libvips/issues/1629
2020-05-19 14:31:34 +01:00
John Cupitt 44db1742fd tiny doc polish 2020-05-19 14:31:22 +01:00
John Cupitt b4a9636e51
Merge pull request #1657 from lovell/improve-avif-detection
Improve compile-time libheif and runtime AVIF detection
2020-05-18 22:38:11 +01:00
Lovell Fuller 00dcfa40f1 Improve compile-time libheif and runtime AVIF detection 2020-05-18 19:43:43 +01:00
John Cupitt 951540f4fe revise text docs
To clarify the meaning of VipsAlign in this context.

See https://github.com/libvips/libvips/issues/1654#issuecomment-629671463
2020-05-16 17:57:31 +01:00
John Cupitt 63649629e0 fix doc error
Hopefully clearer, see https://github.com/libvips/libvips/issues/1654
2020-05-16 12:37:20 +01:00
John Cupitt 9cdbf3ee07 don't add fontfiles repeatedly in text
It seems fontconfig will let you add a file repeatedly. This patch adds a
table which is used to block repeated additions and prevents memory growth
and slowdown.

see https://github.com/libvips/libvips/issues/1655
2020-05-16 12:28:12 +01:00
John Cupitt 84b9d1f638 seems to make an OME pyramid correctly
```
$ vips tiffsave ../k2.jpg x.tif --tile --pyramid --subifd && tiffinfo x.tif
TIFF Directory at offset 0x900008 (9437192)
  Image Width: 1450 Image Length: 2048
  Tile Width: 128 Tile Length: 128
  Resolution: 72.009, 72.009 pixels/inch
  Bits/Sample: 8
  Sample Format: unsigned integer
  Compression Scheme: None
  Photometric Interpretation: RGB color
  Orientation: row 0 top, col 0 lhs
  Samples/Pixel: 3
  Planar Configuration: single image plane
  SubIFD Offsets: 11797898 12388230 12585130 12634526     0
```
2020-05-15 17:16:04 +01:00