John Cupitt
a3dfa3911e
Merge branch '8.10'
2020-08-31 14:10:43 +01:00
John Cupitt
285ab2e6cc
better mask sizing for gaussmat
...
We were calculating the mask size incorrectly for small masks.
Thanks johntrunc
see https://github.com/libvips/libvips/issues/1793
2020-08-31 13:37:08 +01:00
John Cupitt
2c4c4132e8
Merge branch '8.10'
2020-08-28 17:47:40 +01:00
John Cupitt
b07cfa858a
note svg fix
2020-08-21 11:39:33 +01:00
John Cupitt
409301a200
improve C++ API
...
Make VObject inheritance public, so we can have a single set() for all
VObject-derived types.
2020-08-19 15:08:28 +01:00
John Cupitt
f8faa5f7f7
Merge branch '8.10'
2020-08-19 11:12:18 +01:00
John Cupitt
270933c281
convert no-profile CMYK to RGB on save
...
Use the fallback cmyk profile to convert to RGB on save if the image has
no embedded profile.
Thanks augustocdias.
See https://github.com/libvips/libvips/issues/1767
2020-08-19 11:09:38 +01:00
John Cupitt
182e88957e
prevent 0-length buffers reaching imagemagick
...
im6 seems to have added an assert for this
see https://github.com/libvips/libvips/pull/1785
2020-08-17 14:18:59 +01:00
John Cupitt
cdcf63f8e5
fix regression in thumbnail of pyr tiff
...
The new subifd pyramid thumbnail code broke the old page-based pyramid
detector.
Thanks tand826
See https://github.com/libvips/libvips/issues/1784
2020-08-17 10:10:23 +01:00
John Cupitt
633abe7be8
add missing funcs to public C API
...
The C API was missing vips_jpegload_source and vips_svgload_source.
Thanks to augustocdias.
See https://github.com/libvips/libvips/issues/1780
2020-08-14 13:36:12 +01:00
John Cupitt
b981911f67
remove redefinition of typedefs
...
We had this in a couple of places:
typedef struct _A A;
typedef struct _A A;
Some old gccs (eg. centos6) throw errors for this.
See https://github.com/libvips/libvips/issues/1774
2020-08-13 12:51:56 +01:00
John Cupitt
fdded88cf7
start 8.10.1
...
following the doc generation fix
2020-08-09 14:39:37 +01:00
John Cupitt
fcaba0e6ba
add @profile to webpsave
...
small tiffsave fixes too
2020-07-18 14:49:37 +01:00
John Cupitt
7c2c152a74
note wasm patch in changelog
2020-07-03 02:21:16 +01:00
John Cupitt
e4d38d1d3e
clip out of bounds GIF images against the canvas
...
Some malformed GIFs have images which lie outside or partly outside the canvas.
With this patch, these frames are clipped and rendered.
Previously, these GIFs were rejected.
See https://github.com/libvips/libvips/issues/1701
2020-07-02 16:41:37 +01:00
John Cupitt
15e44f731f
add spng in there twice
2020-06-30 11:31:33 +01:00
John Cupitt
2b2fabcd3b
vipsheader allows stdin as a filename
...
```
$ cat k2.jpg | vipsheader stdin
1450x2048 uchar, 3 bands, srgb, jpegload_source
```
See https://github.com/libvips/libvips/issues/1594
2020-06-29 12:06:34 +01:00
John Cupitt
5540fa97f4
small cleanups for disable deprecated
...
- move matrixinvert to mosaicing, fix a leak
- add note to changelog
- small fixes
see https://github.com/libvips/libvips/pull/1593
2020-06-28 12:14:13 +01:00
John Cupitt
90e61a816b
... note change in ChangeLog
...
see https://github.com/libvips/libvips/issues/1585
2020-06-28 09:53:49 +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
1f8d007d19
rename ppmsave "squash" as "bitdepth"
...
in line with the tiffsave change
2020-06-18 11:57:33 +01:00
John Cupitt
8b469b4516
adjust formatting of 2, 4 bit tiff load/save
...
To make it libvipsey. Small fixes as well.
2020-06-16 18:58:27 +01:00
John Cupitt
95406c7888
Merge pull request #1682 from libvips/libspng-experiment
...
Load PNGs with libspng
2020-06-12 19:11:42 +01:00
John Cupitt
8c19e07ae3
add --vips-config flag
...
so "vips --vips-config" now displays:
```
$ vips --vips-config
native win32: no, native OS X: no, open files in binary mode: no, ...
```
2020-06-12 17:30:57 +01:00
John Cupitt
d5fcb6baaf
Merge branch 'master' into libspng-experiment
2020-06-12 12:42:11 +01:00
John Cupitt
4ae4be7046
note resize work in ChangeLog
2020-06-12 12:40:44 +01:00
John Cupitt
61628eefdf
final fixes for spng loader
2020-06-11 13:24:27 +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
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
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
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
df4f03863e
Merge branch 'master' into libspng-experiment
2020-05-13 14:37:00 +01:00
John Cupitt
b9385b9d35
only warn on png save with a bad profile
...
Previously we failed. This is very ugly, but it seems to be the only
obvious way to fix this.
See https://github.com/libvips/libvips/issues/1578
2020-05-11 18:00:26 +01:00
John Cupitt
29d9fcb0c8
update docs for --delete deprecation
...
see https://github.com/libvips/libvips/pull/1564
2020-05-03 16:10:59 +01:00
John Cupitt
02327b6214
add an experimental libspng reader
...
it compiles, but I've not tried running it yet heh
2020-05-01 16:05:48 +01:00
John Cupitt
489810989e
Merge branch '8.9'
2020-04-24 19:32:40 +01:00
John Cupitt
efd62acccd
better iiif tile naming
...
We were clipping edge tiles against the size of the scaled up layer.
Instead, clip against the size of the top level image.
See https://github.com/libvips/libvips/issues/1621
2020-04-24 19:29:35 +01:00
John Cupitt
fada5f2a44
Merge branch '8.9'
2020-04-21 10:17:57 +01:00
John Cupitt
6f0548dc5c
thumbnail could fail on HEIC in some modes
...
in locked UP or DOWN mode, vips_thumbnail() could incorrectly select the
thumbnail from a HEIC image even when it was not large enough to
generate the output image.
Thanks ZorinArsenij
See https://github.com/libvips/libvips/issues/1614
2020-04-21 10:15:02 +01:00
John Cupitt
681271e7b1
Merge branch '8.9'
2020-04-18 12:10:29 +01:00
John Cupitt
0897a77515
update changelog
2020-04-18 11:41:43 +01:00
John Cupitt
86bfadd101
better handling of unaligned tiff tile reads
...
We were not checking for alignment correctly in multi-page tiff reads.
Thanks petoor.
See: https://github.com/libvips/pyvips/issues/172
2020-04-11 14:36:44 +01:00
John Cupitt
471ec9bcc0
fix flood fill on some complex shapes
...
could fail to paint everything sometimes
2020-04-05 12:33:55 +01:00
John Cupitt
834234c23c
add all
smartcrop mode
...
So you can crop to fill as well as crop to fit.
see https://github.com/libvips/libvips/issues/1583
2020-03-19 18:57:40 +00:00
John Cupitt
3b57e13452
move heifsave to new target API
...
and add heifsave_target
2020-03-15 18:17:08 +00:00
John Cupitt
0badb7c603
add heifload_source
2020-03-15 11:45:56 +00:00
John Cupitt
764b196d50
move pdfload on top of source API
...
and add pdfload_source
see https://github.com/libvips/libvips/issues/1541
2020-03-11 18:15:15 +00:00
John Cupitt
03399b4d7e
tiff write sets page number
...
tiffsave sets `PAGENUMBER` and `FILETYPE_PAGE`, thanks jclavoie-jive
see https://github.com/libvips/libvips/issues/1565
2020-03-08 11:06:19 +00:00
John Cupitt
a592d99bb2
add dir detector
...
useful for blocking open for read of directories
2020-03-06 18:05:16 +00:00
John Cupitt
68f766b482
Merge branch '8.9'
2020-03-05 15:03:00 +00:00
John Cupitt
b3a7929247
detect read errors in sniff correctly
...
we has a signed/unsigned mixup :(
2020-03-05 15:02:16 +00:00
John Cupitt
7d3a7e9c29
Merge branch '8.9'
2020-02-28 15:23:31 +00:00
John Cupitt
ab5d511123
add fuzz corpus
2020-02-28 15:22:10 +00:00
John Cupitt
1a0e61510b
rewrite matrixsave
...
uses new target API
2020-02-22 17:55:04 +00:00
John Cupitt
ce240b1ca2
revise matrixload for source API
2020-02-22 15:02:12 +00:00
John Cupitt
d68e02a3c4
Merge branch 'revise-csvload'
2020-02-21 18:23:13 +00:00
John Cupitt
bab3486aca
fix lines param to csvload
...
we had lines and skip mixed up
2020-02-21 18:22:39 +00:00
John Cupitt
0a23bf3578
revise formatting, add docs
...
fix up some formatting from https://github.com/libvips/libvips/pull/1552
plus some other small changes
2020-02-18 17:37:56 +00:00
John Cupitt
d8ee83e35e
Merge branch 'master' of https://github.com/wix-playground/libvips into wix-playground-master
2020-02-07 16:30:26 +00: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
862e1ae214
add VIPS_LEAK env var
2020-02-03 17:01:57 +00:00
John Cupitt
559ae542ac
revise flags for vipsthumbnail
...
The --rotate flag no longer did anything, so add a new --no-rotate flag
connected to the new no-rotate property. --rotate is still there, but
hidden and does nothing.
-o was much easier to remember than -f, so flip back to -o. -f still
works, but is a hidden synonym.
--iprofile, --eprofile were hard to remember. Add --import-profile and
--export-profile synonyms. iprofile / eprofile are still there and still
work, but are hidden.
2020-02-03 14:49:21 +00:00
John Cupitt
05a45c3418
Merge branch '8.9'
2020-02-02 11:15:09 +00:00
John Cupitt
bb20556b6d
ban ppm max_value < 0
...
Not allowed by spec, since pixels should be unsigned.
2020-02-02 11:13:41 +00:00
John Cupitt
46da95f30f
Merge branch '8.9'
2020-01-31 16:00:22 +00:00
John Cupitt
8a21f6ea52
fix gif rendering for "waterfall.gif"
...
This GIF has dispose set to DISPOSAL_UNSPECIFIED and seems to mean
transparent.
This patch makes gifload use DISPOSAL_UNSPECIFIED as well as _DO_NOT to
mean reuse previous frame.
Thanks DarthSim.
See https://github.com/libvips/libvips/issues/1543
2020-01-31 15:51:44 +00:00
John Cupitt
e4db74746a
fix a deadlock with --vips-leak
...
We were usingh a global lock for metadata changes, but some functions
triggered from callbacks in the metadata hash table could also attempt
to acquire the same mutex, leading to deadlock.
This patch gives metadata change it's own lock. Thanks DarthSim.
See https://github.com/libvips/libvips/issues/1542
2020-01-31 15:25:05 +00:00
John Cupitt
acabd2dc08
add gifload_source
2020-01-30 22:15:48 +00:00
John Cupitt
81fa983121
oop, dropped an "else"
2020-01-29 18:12:37 +00:00
John Cupitt
165a3a3855
Merge branch '8.9'
2020-01-28 13:36:46 +00:00
John Cupitt
42930e8d87
add "depth" param to tiffsave
...
Add a "depth" param to tiffsave to set pyramid depth, just like the
"depth" param on dzsave.
See https://github.com/libvips/libvips/issues/1485
2020-01-26 18:39:47 +00:00
John Cupitt
f8c7f9dac9
interpret \ as an escape char in break_token
...
So:
vips_break_token( "hello\ world", " " )
Sees a single token, `"hello world"`.
This means you can now do things like:
$ vips arrayjoin "k\ 2.jpg" x.png
Where "k 2.jpg" is a filename containing a space.
See https://github.com/libvips/libvips/issues/1493
2020-01-26 13:59:04 +00:00
John Cupitt
c14d7c254b
add max and min to region_shrink
...
Add max and min to region_shrink. Useful with tiffsave and dzsave when
the image is (for example) line art. Thanks rgluskin.
See: https://github.com/libvips/libvips/issues/1490
2020-01-24 17:55:11 +00:00
John Cupitt
df6ff62cde
add @id arg to dzsave
...
So you can now set the base of the id property in info.json in IIIF
output. Thanks regisrob.
See https://github.com/libvips/libvips/issues/1531
2020-01-24 17:12:46 +00:00
John Cupitt
767c87d6e6
better iiif json
...
Change "scalefactor" to "scaleFactor", thanks regisrob.
See https://github.com/libvips/libvips/issues/1530
2020-01-24 16:28:52 +00:00
John Cupitt
53407206cf
start 8.10 cycle
2020-01-24 16:26:28 +00:00
John Cupitt
fda5e5c402
lock for metadata changes
...
Another attempt at fixing crashes on metadata chenage in highly threaded
applications.
Global lock around set, remove and copy metadata. This is crude, but
simple, the performance impact should be small, and ought to resolve the
problem.
We'll do something better for the next version.
see https://github.com/lovell/sharp/issues/1986
2020-01-21 08:29:59 +00:00
John Cupitt
fc9edfe593
improve imagemagick init
...
graphicsmagick, in some configurations, needs to be told to init the
various loaders.
Thanks @LebronCurry
See https://github.com/libvips/libvips/issues/1528
2020-01-15 14:42:58 +00:00
John Cupitt
8752a76e66
fix a race in tiled tiffload and pdfload
...
We weer minimising sources in the ::minimise handler, but this is called
outside the lock that protects _generate. This patch removes minimise in
this case.
See https://github.com/kleisauke/net-vips/issues/53
2020-01-14 18:06:12 +00:00
John Cupitt
8c1c8b6c9f
fix a warning from magicksave on some platforms
...
we were leaving delay_gvalue as {0} then unsetting it, which will
produce a warning with some versions of glib.
Thanks chregu.
See https://github.com/libvips/libvips/issues/1524
2020-01-13 16:23:58 +00: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
51fc2ff64e
don't use new source API for new_from_file etc.
...
We were attempting to load images in new_from_file using the new source
API first, then only falling back to the file loaders if that failed.
However, this meant that we did not respect the priority ordering on
loaders, so openslide iamges (for example) were being loaded by the tiff
loader.
2020-01-09 14:47:14 +00:00
John Cupitt
06b52da52a
update ChangeLog for stream rename
2019-12-29 21:48:14 +00:00
John Cupitt
e48f45187b
make RGB and sRGB synonmous
...
We had a half-baked idea that RGB could mean generic RGB space and sRGB
would mean strict sRGB interpretation.
Unfortunately, this did not work well in practice. For example,
`icc_transform("srgb")` would tag the result as RGB rather than sRGB
(the converter didn't know it was writing sRGB pixels, it just saw
conversion to RGB with an ICC profile), and then later stages would do
unnecessary icc_imports, or worse, fail.
This patch makes RGB and sRGB strict synonyms. If you want to treat an
RGB image as something other than sRGB, you'll need to do it by hand
with the icc_ functions.
See
https://github.com/libvips/pyvips/issues/144
46212e92b1 (r34904985)
https://github.com/libvips/libvips/issues/1494
2019-12-22 11:40:09 +00:00
John Cupitt
acd9101037
always copy before exif_update
...
During write, we often call vips__exif_update(). This updates the exif
block from the other image metadata prior to save.
Always copy the image before calling this.
See https://github.com/lovell/sharp/issues/1986
2019-11-28 14:45:02 +00:00
John Cupitt
b003b36d7a
Merge branch '8.8'
2019-11-27 15:30:33 +00:00
John Cupitt
0bc49a485e
remove use of realpath
...
It won't work on linux systems with grsec.
2019-11-27 15:14:42 +00:00
John Cupitt
49a8f0779d
Merge branch '8.8'
2019-11-26 09:15:39 +00:00
John Cupitt
298002c530
fix build with imagemagick 6.7.8.9
...
Ships with centos7, so an important version to support.
See https://github.com/libvips/libvips/issues/1479
2019-11-25 15:44:28 +00:00
John Cupitt
486b95eb7b
Merge branch 'master' into add-stream-object
2019-11-19 17:08:03 +00:00
John Cupitt
712157cd16
better support for TIFFs with many alphas
...
The premultiplied alpha can be in any position, and it checks if there
is more than one ASSOCALPHA.
See https://github.com/libvips/libvips/issues/1471
2019-11-18 16:48:34 +00:00
John Cupitt
6b5035c160
update changelog
2019-11-15 17:30:31 +00:00
John Cupitt
c1a027c8d7
ppm load uses streams
2019-11-14 12:57:39 +00:00
John Cupitt
cb7bc24b2a
note in changelog
2019-11-12 18:05:17 +00:00
John Cupitt
55024c71ce
Merge branch 'master' into add-stream-object
2019-11-12 14:08:02 +00:00
John Cupitt
ceb2db513d
Merge branch '8.8'
2019-11-11 18:05:57 +00:00
John Cupitt
b8ea3f8442
update cpp interface for stream variable rename
2019-11-11 09:24:45 +00:00
John Cupitt
b65a9d7328
oop, missing ! on tiff save
...
resolution-unit metadata was not being checked correctly on tiff save,
thanks @kayarre
see https://github.com/libvips/pyvips/issues/133
2019-11-10 10:26:13 +00:00
John Cupitt
f499cefb0e
add iiif layout to dzsave
2019-11-09 20:40:39 +00:00
John Cupitt
edca486f19
revise buffered input
...
rad load works now
2019-11-06 16:35:19 +00:00
John Cupitt
8eeb415b09
Merge branch 'master' into add-stream-object
2019-10-28 05:10:11 +00:00
John Cupitt
8337e17428
add no_strip option to dzsave
...
it's sometimes useful to have pyramid tiles with ICC profiles
see https://github.com/libvips/libvips/issues/1451
2019-10-21 16:46:20 +01:00
John Cupitt
20cb0da247
test suite passes
...
with all jpegload coming via VipsStreamInput
2019-10-11 14:03:10 +01:00
John Cupitt
c9a7b92eeb
version bump
2019-09-17 17:16:26 +01:00
John Cupitt
efdf33f3de
add vips_error_buffer_copy()
...
Add vips_error_buffer_copy() to fix a race in error buffer fetch.
See https://github.com/libvips/libvips/issues/1423
Thanks @dineshkannaa
2019-09-12 09:49:49 +01:00
John Cupitt
7b2729adfa
fix up nifti load/save
...
- use double for all floating point scalar metadata, like other loaders
- remove use of stray "n" property
2019-09-09 16:06:22 +01:00
John Cupitt
dd9eba9e26
add @format and @interpretation to rawload
2019-09-05 16:25:55 +01:00
John Cupitt
1ee54bfa80
Merge branch '8.8'
2019-09-05 12:45:08 +01:00
John Cupitt
06fdc95038
xres/yres params in tiffsave were in cm
...
and should have been in pixels/mm
thanks f--f
see https://github.com/libvips/libvips/issues/1421
2019-09-04 17:02:24 +01:00
John Cupitt
da8cee048f
enable alpha in heifsave
...
Check for image alpha and enable it. There seem to be some
non-transparent tiles, curiously.
See https://github.com/libvips/libvips/issues/1411
2019-09-01 16:58:50 +01:00
John Cupitt
75b45cc2ef
enable alpha handling in heic load
...
use RGBA decoding, when appropriate
see https://github.com/libvips/libvips/issues/1411
2019-09-01 16:37:43 +01:00
John Cupitt
4b5b982711
merge 8.8
2019-08-31 12:29:50 +01:00
John Cupitt
574be4380e
revert sharpen restoring the input colourspace
...
icc_export can make _RGB images, so the input can be outside the set of
supported colourspace transforms.
See 46212e92b1 (r34904985)
bump version too.
2019-08-31 11:29:36 +01:00
John Cupitt
5d19bcf955
Merge branch '8.8'
2019-08-30 11:03:24 +01:00
John Cupitt
6ea76f9632
improve data_length handling in jpg load
...
libjpeg uses unsigned ints for data length, so we must use size_t
everywhere.
2019-08-30 11:00:25 +01:00
John Cupitt
349e76bb85
Merge branch '8.8'
2019-08-29 15:30:20 +01:00
John Cupitt
3161de3b52
verify bands/format for coded vips images
...
WHen loading a vips image with Coding set, make sure that Bands and
BandFmt are correct.
2019-08-29 15:28:55 +01:00
John Cupitt
9a5dca1ef8
Merge branch '8.8'
2019-08-28 10:05:12 +01:00
John Cupitt
46212e92b1
fix default sharpen
...
sharpen with sigma 0.5 was doing nothing, since the new int precision
rules meant that we generated a point-point convolution.
This patch increases the int precision for sharpen, so we now work with
sigma down to 0.5.
Also: restore input colourspace. Previously, the output image was always
LabS (the computation space for sharpen). Now, it transforms back to the
input space. This is more in line with how other operators work.
Thanks 2h4dl for pointing this out.
See https://github.com/libvips/pyvips/issues/123
2019-08-28 09:16:40 +01:00
John Cupitt
2f6cc1fad9
Merge branch '8.8'
2019-08-27 14:49:42 +01:00
John Cupitt
d61a85f6c9
prevent over-pre-shrink in thumbnail
...
We could pre-shrink so much that an axis went to 0.
See https://github.com/lovell/sharp/issues/1782#issuecomment-525249430
2019-08-27 14:47:36 +01:00
John Cupitt
d2ab993931
Merge branch '8.8'
2019-08-27 13:06:27 +01:00
John Cupitt
5cce83a294
check image bounds for GIF load
...
It seems giflib does no checking of image dimensions at all, not even
height == 0.
2019-08-27 13:04:28 +01:00
John Cupitt
23d0d5603d
Merge branch '8.8'
2019-08-24 17:15:45 +01:00
John Cupitt
4691260540
better feof() handling in gif load
...
Relaxing the read error rules made looping possible .. make sure we
always stop explicitly on eof.
2019-08-24 17:14:10 +01:00
John Cupitt
77de39320a
Merge branch '8.8'
2019-08-24 11:21:48 +01:00
John Cupitt
038409093f
clip coding and interpretation on image read
...
They could be out of bounds enums. This used not to matter, but we use
them more now, so out of bounds values can cause coredumps.
2019-08-24 11:20:45 +01:00
John Cupitt
1b57c6d066
Merge branch '8.8'
2019-08-23 15:43:12 +01:00
John Cupitt
4b677fb16a
make GIF parse less strict
...
Some GIFs don't follow the standard very closely. Let them through.
See https://github.com/libvips/libvips/issues/1404
2019-08-23 15:40:48 +01:00
John Cupitt
19a80e4efb
Merge branch '8.8'
2019-08-21 17:37:16 +01:00
John Cupitt
b5e8e99746
fix a read-one-byte-beyond issue in jpeg load
...
libvips could harmlessly read beyond the end of a string with a crafted jpg
file
2019-08-21 17:17:54 +01:00
John Cupitt
ed2054dbbc
revise arithmetic with const
...
there's a problem with out of bounds values, for example:
vips relational_const k2.jpg x.v equal 1000
actually finds pixels == 255, since 1000 is saturated converted to 255
before the test starts.
This patch reworks arithmetic against const values to fix this.
2019-08-21 10:35:48 +01:00
John Cupitt
2d0c21279a
add tests
2019-08-19 16:27:44 +01:00
John Cupitt
d80ce4bf15
fix a problem with shrinkv tail processing
...
Tail processing in shrinkv had an implicit assumption of round-down, but of
course we round to nearest. Thanks angelmixu.
see https://github.com/libvips/libvips/issues/1396
2019-08-13 11:21:01 +01:00
John Cupitt
cdee0feb93
Merge branch '8.8'
2019-08-09 10:12:55 +01:00
John Cupitt
aafc2c7948
add changelog note for profiles.c fix
2019-08-09 10:11:45 +01:00
John Cupitt
988f9594f4
Merge branch '8.8'
2019-08-08 16:11:02 +01:00
John Cupitt
ff58c67e33
add locks for pdfium load
...
We used to lock within documents, ie. we did not allow two threads to
work on the same file.
However pdfium is not threadsafe in any way, and this is not supported,
see:
https://groups.google.com/forum/#!msg/pdfium/kyIdh_J4csg/K1LvfPiHDwAJ
This patch adds locks around pdfium calls.
see:
https://github.com/libvips/libvips/issues/1380
https://github.com/libvips/libvips/issues/1275
2019-08-08 15:54:16 +01:00
John Cupitt
7250b169d4
Merge branch '8.8'
2019-08-07 16:19:23 +01:00
John Cupitt
f36927e78d
fix build against graphicsmagick
...
- add tests for more features missing in GM
- simplify the IM/GM configure tests
- revise the test suite to pass with GM and IM
2019-08-07 16:17:27 +01:00
John Cupitt
f0d1a5d82b
note PNG comment fix
2019-08-02 10:11:16 +01:00
John Cupitt
332e97272a
Merge branch '8.8'
2019-07-29 10:07:29 +01:00
John Cupitt
5e77ab948b
fix loop with malformed ppm
...
skip_line in ppm parse was not testing for EOF, so it could get stuck
with malformed files
thanks Kyle-Kyle
see https://github.com/libvips/libvips/issues/1377
2019-07-29 10:05:55 +01:00
John Cupitt
6a75776272
Merge branch 'loader-minimise-experiment'
2019-07-28 17:23:01 +01:00
John Cupitt
0e5447e537
final cleanup
2019-07-28 17:15:54 +01:00
John Cupitt
264f41df1c
Merge branch '8.8'
2019-07-24 16:07:39 +01:00
John Cupitt
3510e7abcf
fetch HEIC metadata from the main image
...
since thumbs don't have it, see https://github.com/libvips/libvips/issues/1373
2019-07-24 16:06:49 +01:00
John Cupitt
7f3174c3e5
Merge branch 'master' into loader-minimise-experiment
2019-07-23 11:45:24 +01:00
John Cupitt
03bf5a05fa
note fuzz in ChangeLog
2019-07-21 18:02:57 +01:00
John Cupitt
2c654060f9
experiment with a different early-close strategy
...
We close loaders early in order to save file handles, and on Windows to
make sure that files can be deleted as soon as possible.
Currently loaders do this by watching the Y coordinate of requests and
freeing the fd when the final line of the file is fetched. This is messy
and does not always work, since there are cases when the final line is
not fetched.
Instead, this patch gets loaders to listen for "minimise" on their
output and close on that. This signal is emitted on all upstream images
whenever a threadpool finishes a scan of an image and is usually used to
trim caches after computation.
See https://github.com/libvips/libvips/issues/1370
2019-07-20 16:31:30 +01:00
John Cupitt
64a6a27326
Merge branch '8.8'
2019-07-19 11:59:38 +01:00
John Cupitt
8cf6a9f9ca
don't attempt to save large XMP to JPG
...
jpeg_write_marker() with some libjpeg versions will throw a fatal
error with large chunks.
To write >64kb XMP it you need to parse the whole XMP object,
pull out the most important fields, code just them into the main
XMP block, then write any remaining XMP objects into a set of
extended XMP markers.
http://wwwimages.adobe.com/content/dam/Adobe/en/devnet/xmp/pdfs/XMPSpecificationPart3.pdf
Instead, just warn and skip large XMP blocks.
see https://github.com/libvips/libvips/issues/1372
2019-07-19 11:37:36 +01:00
John Cupitt
044f8b74f6
Merge branch 'master' into add-tiff-webp-zstd
2019-07-11 13:50:47 +01:00
John Cupitt
c3e7504835
Merge branch '8.8'
2019-07-10 17:44:39 +01:00
John Cupitt
5e2d66d14b
better early shutdown behaviour in shrinkv
...
read the tail of the input to force early shutdown in seq readers
does reducev need something similar?
see https://github.com/kleisauke/net-vips/issues/12
2019-07-09 16:58:30 +01:00
John Cupitt
52ee3b083f
add webp and zstd support to tiffsave
...
needs some tests still
2019-07-08 10:39:44 +01:00
John Cupitt
c7f98ad0a5
Merge branch '8.8'
2019-07-07 13:12:51 +01:00
John Cupitt
e4cff876a8
fix make dist
...
we'd renamed a file
2019-07-07 11:20:28 +01:00
John Cupitt
f45f0ecef4
limit resize if shrink would drop axis <1px
...
vips_resize() will break the aspect ratio and limit resize on an axis if
it would result in an image of less than 1px on that axis
see https://github.com/lovell/sharp/issues/1782#issuecomment-508921306
2019-07-07 10:19:33 +01:00
John Cupitt
3871369d3e
Merge branch 'master' into deftomat-master
2019-07-06 14:50:40 +01:00
John Cupitt
777c360774
safer gifload delay array init
...
- remove assumptions about n_pages
- minor reformatting
2019-07-06 11:34:20 +01:00
John Cupitt
80f247cfb2
Merge branch '8.8'
2019-07-03 15:33:43 +01:00
John Cupitt
8cb2b613b7
note new heifsave param in changelog
...
plus tiny reformatting
2019-07-03 15:04:58 +01:00
John Cupitt
26100041e7
fewer warnings on tiffload
...
We were setting TIFFTAG_JPEGCOLORMODE == JPEGCOLORMODE_RGB for *all*
images, but libtiff warns if you use it on an image which is not
jpg-compressed.
Only set it for jpg-compressed images.
See https://github.com/libvips/libvips/issues/1329
2019-07-02 12:23:53 +01:00
John Cupitt
e596fe5cd3
Merge branch 'master' into add-unlimited-to-svgload
2019-07-01 12:04:54 +01:00
John Cupitt
55e49831b8
add "unlimited" to svgload
...
By default librsvg blocks SVGs > 10MB for security. This patch adds an
"unlimited" flag to remove this check.
We have to switch to using gio to get the librsvg API for this This
needs testing on the platforms we support.
We'll also need to bump the min version of librsvg we require in
configure.ac.
See https://github.com/libvips/libvips/issues/1354
2019-06-28 13:48:18 +01:00
John Cupitt
8a354c5aec
improve webp rgba handling
...
disable webp alpha output if all frame fill the canvas and are solid
see https://github.com/libvips/libvips/issues/1351
2019-06-27 18:44:38 +01:00
John Cupitt
72c103f95a
Revert "remove no-alpha webp support"
...
This reverts commit d1094847a3
.
2019-06-27 17:27:53 +01:00
John Cupitt
80648c2d2f
text autofit could sometimes underfit
...
The autofit loop would terminate if either width or height fitted exactly,
but this could happen very early by chance. This patch makes it keep
looping until it finds a dpi which just fits.
See https://github.com/libvips/libvips/issues/1352
2019-06-27 17:19:53 +01:00
John Cupitt
d1094847a3
remove no-alpha webp support
...
We used to try to spot webp images with no alpha and load them as plain
RGB, but it turns out this is difficult to do reliably, especially
for animated images.
This patch simply removes support, so all webp images now load as RGBA.
See https://github.com/libvips/libvips/issues/1351
2019-06-27 16:37:11 +01:00
John Cupitt
2aef873fcd
add vips_image_get/set_array_int()
2019-06-20 11:32:47 +01:00
John Cupitt
8a98bea063
fix vipsthumbnail for pyr tiff files
...
thumbnail was not testing pyramidal tiff images for pyramidness correctly.
see https://github.com/libvips/libvips/issues/1297
2019-06-19 17:56:09 +01:00
John Cupitt
75e69cc1e5
disable Orc if CET is on
...
If we are building with -fcf-protection (run-time checking of
indirect jumps) then Orc won't work. Make sure it's off.
Orc may support -fcf-protection in the future, but does not in June 2019.
https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html#index-fcf-protection
https://gitlab.freedesktop.org/gstreamer/orc/issues/17
see https://github.com/libvips/libvips/issues/1006#issuecomment-501802550
2019-06-14 14:22:00 +01:00
John Cupitt
37a3a6322c
remove 256 band limit from arithmetic.c
...
there was a fixed-size array in vips__bandup()
see https://github.com/libvips/libvips/issues/1335
2019-06-12 09:22:30 +01:00
John Cupitt
ad98222073
better behaviour for vips_region_fetch()
...
we weren't clipping the fetch area against region valid, so in some
cases we could return many more pixels than expected
see https://github.com/libvips/pyvips/issues/103
2019-06-09 20:38:13 +01:00
John Cupitt
bb75535151
much faster ismagick
...
We used to Ping files to see if IM would load them, but this can be
extremely slow for file formats like ARW.
Instead, use GetImageMagick() ... it just checks the magic number.
2019-06-08 16:47:40 +01:00
John Cupitt
eb6c803481
istiff tests first dir rather than magic number
...
We were testing for TIFF by checking the magic number at the head of the
file. However, formats like ARW are TIFF-like without being TIFF, and
will not load with tiffload.
Instead, try reading the whole of the first directory. This is enough to
stop tiffload trying to load files where it will simply fail
immediately, and make libvips fall back to eg. imagemagick.
see https://github.com/libvips/libvips/issues/1304
2019-06-07 17:52:13 +01:00
John Cupitt
dc16f1253a
fix a memleak in tiff pyr to memory
...
we were not freeing layers other than the top layer
2019-06-06 10:20:14 +01:00
John Cupitt
5657099223
fix composite for some combinations of blend modes
...
composite could get mixed up blend modes if:
- many images being composited
- some small and positioned with x/y
- at least one unskippable blend mode
phew!
2019-06-04 15:24:54 +01:00
John Cupitt
bd8a6980f5
more consistent behaviour for multi-page load
...
Some loaders were setting page-height even when the user was loading a
single page triggering unexpected multi-page behaviour from later
savers.
New rule: only set page-height when loading more than one page.
See https://github.com/libvips/libvips/issues/1318
2019-05-29 10:10:28 +01:00
John Cupitt
02bdb8b96c
better error message for "unsupported colorspace"
...
we just printed the enum number before
2019-05-24 17:42:10 +01:00
John Cupitt
5855321638
improve realpath() compat on older libc
...
older libc didn't allow a NULL for the second param
2019-05-24 15:24:18 +01:00
John Cupitt
394f9baa5e
deprecate webpload @shrink, use @scale instead
...
We need a fractional scale for thumbnail on webp to work well. @shrink
still works, but @scale overrides it.
2019-04-30 18:29:16 +01:00
John Cupitt
3245dd301b
Merge branch 'master' into szi-associated
2019-04-25 17:25:32 +01:00
John Cupitt
0102a10b49
seems to work
2019-04-24 17:04:31 +01:00
John Cupitt
27aae32ff6
oops
2019-04-22 11:34:45 +01:00
John Cupitt
c98da89ac9
Merge branch '8.7'
2019-04-19 12:47:35 +01:00
John Cupitt
bae484ba2c
remove old c++ and py interfaces
...
Instead, use the new(er) vips8 C++ interface, and the new(er) python
interface in pypi.
https://pypi.org/project/pyvips
2019-04-12 16:27:28 +01:00
John Cupitt
080ab87d37
Merge branch 'master' into HEAD
2019-04-11 16:18:39 +01:00
John Cupitt
91d0e7e3d0
move kill mechanism to public API
...
the vips_image_set_kill() system was internal. Move it to the public
API.
See eg.:
https://github.com/kleisauke/net-vips/issues/31
2019-04-06 16:53:42 +01:00
John Cupitt
1f100c0c42
better buffer sizing in tiff reader
...
We were not setting JPEGCOLORMODE_RGB early enough, so buffers could be
undersized in some circumstances.
Thanks omira-sch.
2019-03-31 12:55:30 +01:00
John Cupitt
da15285bf9
add support for justified text
...
And set xoffset/yoffset to the top line of text output.
https://github.com/libvips/libvips/issues/1258
2019-03-16 11:53:09 +00:00
John Cupitt
a663a1bb1c
add vips_region_fetch() etc.
...
to help ML applications ... they let us generate lots of small rectangular
areas of images very quickly
2019-03-12 16:00:24 +00:00
John Cupitt
a05a2cb52d
mild refactoring of threadpool
...
clean up and simplify after https://github.com/libvips/libvips/pull/1240
2019-02-27 14:23:43 +00:00
John Cupitt
793cbeeaa7
add note abut region_shrink to changes
...
somehow got dropped
2019-02-24 20:13:18 +00:00
John Cupitt
27195cc92c
add vips_foreign_get_suffixes()
...
Add vips_foreign_get_suffixes(), get an array of all the filename suffixes that
libvips recognises.
See https://github.com/libvips/ruby-vips/issues/186
2019-02-23 13:50:10 +00:00
John Cupitt
1a83605238
Merge branch 'add-heifload'
2019-02-17 17:11:14 +00:00
John Cupitt
044abe7986
fix some tilecache issues too
2019-02-16 15:32:45 +00:00
John Cupitt
bfa1f22520
works!
...
tuned a bit too
2019-02-14 15:22:51 +00:00
John Cupitt
931b661d2b
fix up and test with im6/im7/gm
...
seems to work! phew
2019-02-07 18:35:51 +00:00
John Cupitt
8d5af9fe8a
add xmp/ipct/icc etc. to magickload
...
ImageMagick supports binary metadata with `ResetImageProfileIterator()`
etc.
Implementing support gives us xmp / ipct / icc support, plus perhaps
some others.
2019-02-04 17:54:57 +00:00
John Cupitt
f23d0fd754
note new option_string param in changelog
2019-02-03 12:27:58 +00:00
John Cupitt
308c85c004
add support for stored heif thumbnails
2019-01-30 16:19:11 +00:00
John Cupitt
cae7838f86
heifsave seems to work
2019-01-29 16:40:34 +00:00
John Cupitt
33fd2a48f0
basic load works
...
no metadata, no options
2019-01-20 11:33:12 +00:00
John Cupitt
849d24472e
revise changelog
...
had Klies' magickload fix in there twice
2019-01-18 12:52:04 +00:00
John Cupitt
dcba364efa
Merge branch 'zero-mem-on-malloc'
2019-01-18 11:31:11 +00:00
John Cupitt
00622428bd
zero memory on malloc
...
to prevent write of uninit memory under some error conditions
thanks Balint
2019-01-18 10:10:43 +00:00
John Cupitt
00982f6297
add changelog notes
...
and small formatting issues
2019-01-15 09:36:31 +00:00
John Cupitt
bcc76c6edb
Merge branch 'master' into tiff-pyr-stop-at-1-pixel
2019-01-12 15:48:17 +00:00
John Cupitt
f768029298
make the savers use profile_load
...
tiff, jpeg and png save all use profile_load to attach profiles
2019-01-11 06:30:06 +00:00
John Cupitt
28999aa5b6
add vips_profile_load()
...
and use it in icc_transform
2019-01-10 22:48:21 +00:00
John Cupitt
960324b08a
Merge branch 'master' into add-icc-fallbacks
2019-01-10 15:48:37 +00:00
John Cupitt
5bc342b9b2
revise changelog in magickload fix
2019-01-08 09:05:39 +00:00
John Cupitt
a293da4b5a
Merge branch '8.7'
2019-01-04 10:36:59 +00:00
John Cupitt
63c6c7ae30
fix small magicksave error
...
copy-paste fail meant that IM exceptions were not inherited correctly
see 1619c8b1a1 (commitcomment-31838043)
2019-01-04 10:34:30 +00:00
John Cupitt
87062c4a4f
Merge branch '8.7'
2019-01-04 09:19:04 +00:00
John Cupitt
1619c8b1a1
fix memleak in magick6load
...
IM ExceptionInfo were not being freed correctly. This patch
adds a small wrapper function and uses it to allocate and free all IM
exception objects.
Tested with im 6.9 and gm 1.3.
See:
https://github.com/libvips/lua-vips/issues/24
https://github.com/libvips/libvips/issues/1203
2019-01-04 08:38:58 +00:00
John Cupitt
b8a158b69b
seems to work
...
added some more consts as well
2019-01-03 13:34:13 +00:00
John Cupitt
020ff88f6a
Merge branch 'master' into dzsave-skip-blanks
2019-01-02 11:00:42 +00:00
John Cupitt
f611845698
Merge branch 'master' into add-CMYK2XYZ
2018-12-31 14:02:51 +00:00
John Cupitt
6c72ca45b7
Merge branch '8.7'
2018-12-29 22:56:58 +00:00
John Cupitt
9d66420ad5
round to nearest in log scale
...
we were doing round to nearest in linear mode, but not log
see https://github.com/libvips/build-win64-mxe/issues/3
2018-12-29 20:19:38 +00:00
John Cupitt
c5d0ca8300
add cmyk2xyz and back
...
seems to work, still to do:
- tests
- try:
```
$ vipsthumbnail NordicsLIQUOR-SFBag_300_cmyk.JPG
(vipsthumbnail:7868): VIPS-WARNING **: 16:53:17.166: profile incompatible with image
```
see https://github.com/libvips/libvips/issues/1186
2018-12-27 17:35:35 +00:00
John Cupitt
d35343f817
stop making tiff pyr if axis drops to 1
...
TIFF pyramids of images with a very extreme aspect raio could see layer
width or height drop to 0 before the image fitted in a single tile. This
change stops pyramid creation when width or height drop to 1.
See https://github.com/libvips/libvips/issues/1188
2018-12-21 14:47:28 +00:00
John Cupitt
51dbf607dd
add skip-blanks option to dzsave
...
Skip-blanks was a feature of google layout. This patch makes it into an
option you can control which defaults on in gm mode.
See https://github.com/libvips/libvips/issues/1185
2018-12-19 14:52:33 +00:00
John Cupitt
1ee5b13205
Merge branch '8.7'
2018-12-17 13:21:28 +00:00
John Cupitt
582b224125
oops revert version bump
2018-12-17 13:20:14 +00:00
John Cupitt
962cab2d0f
Merge branch '8.7'
2018-12-17 13:18:58 +00:00
John Cupitt
db4fe60405
fix mapim offsets
...
pixels were not being offset by the stencil origin, so interpolators
like bicubic could fail
thanks @erdmann
https://github.com/libvips/libvips/issues/1180
2018-12-17 12:42:34 +00:00
John Cupitt
6bc564a1e1
turn on smalltile
...
2D locality helps a lot with many subimages
2018-12-07 16:43:44 +00:00
John Cupitt
58776970ec
Merge branch 'master' into revise-composite
2018-12-07 14:31:56 +00:00
John Cupitt
0dccfc87b6
Merge branch '8.7'
2018-12-07 14:30:00 +00:00
John Cupitt
da31d0f31a
fix autofit loop on non-scaleable fonts
...
see https://github.com/libvips/libvips/issues/1178
2018-12-07 12:57:44 +00:00
John Cupitt
7b19ad8dc1
composite subimage positioning almost done
...
--x fails though? odd
vips composite2 Gugg_coloured.jpg PNG_transparency.png x.jpg over --x 600 --y 100
--x causes the dice to clip, but not translate
2018-12-06 18:28:55 +00:00
John Cupitt
d550016610
Merge branch 'master' into revise-composite
2018-12-06 16:05:25 +00:00
John Cupitt
5fa4ae08da
Merge branch '8.7'
2018-12-05 17:37:25 +00:00
John Cupitt
ac4897abee
Fix up vips_text()
...
Fixes two issues:
1. vips_text() in autofit mode could set the wrong DPI, since it set the
DPI in its own copy of the variable, but did not do a final update on
the DPI setting that FT uses for rendering.
2. vips_text() in autofit mode allocated a new context each time, rather
than reusing the context for that call. This caused a small memory leak.
See https://github.com/libvips/libvips/issues/1174
2018-12-05 14:24:26 +00:00
John Cupitt
2c26c23163
composite in scanlines, not pixels
...
try compositing a scanline at a time, should improve cache locality for
deep image stacks
seems to work, needs benchmarking
2018-11-27 18:27:38 +00:00
John Cupitt
0669cf2a23
Merge branch 'master' into add-webp-animated
2018-11-23 17:41:09 +00:00
John Cupitt
cff4af34ca
add vips_image_set_blob_copy()
...
and use it where we can
2018-11-23 16:27:39 +00:00
John Cupitt
d4815e8b7e
more info output for tmpfile open
...
to help diagnose problems
2018-11-21 14:26:52 +00:00
John Cupitt
6b9d89b103
add pyr tiff shrink-on-load for thumbnail
2018-11-16 18:00:25 +00:00
John Cupitt
26d0e312c6
add bandand/or/eor to the cpp binding
...
oops, they had been dropped
thanks clcaalu
see https://github.com/libvips/libvips/issues/1165
2018-11-16 13:10:22 +00:00
John Cupitt
07d58f81b3
fix cast on uint images
...
we could get sign and overflow mixed up for casts on uint images
see https://github.com/libvips/nip2/issues/74
2018-11-14 17:07:49 +00:00
John Cupitt
3e070cbcdf
Merge branch 'master' into add-webp-animated
2018-11-05 16:26:45 +00:00
John Cupitt
17c9856e38
add n/page support for webp read
2018-11-05 16:21:21 +00:00
John Cupitt
d6c7d86e12
Merge branch '8.7'
2018-11-05 10:41:46 +00:00