Commit Graph

1841 Commits

Author SHA1 Message Date
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
John Cupitt 0bea76d364 fix temp file open
was not auto-deleteing on windows, needs a fallback on linux

see https://github.com/libvips/libvips/pull/1155
2018-11-05 10:40:51 +00:00
John Cupitt 7c6f417e68 fix some typos ... it works!
need to add support for delay and loop still
2018-10-31 16:52:09 +00:00
John Cupitt 22ba9106b5 implement shrink-on-load for openslide thumbs
makes vipsthumbnail much quicker on openslide images, obviously

see https://github.com/libvips/libvips/issues/1149
2018-10-31 14:07:13 +00:00
John Cupitt 0b050f4046 deprecate thumbnail auto_rotate, add no_rotate
the auto_rotate option of thumbnail was default TRUE which made it
useless from the CLI, since GOption only allows --switch, not
--switch=false

deprecate auto_rotate, add no_rotate, but allow either to be used

see https://github.com/libvips/libvips/issues/1146
2018-10-31 12:30:37 +00:00
John Cupitt 6be70e6799 add xmp load/save for png
plus a test
2018-10-06 11:54:27 +01:00
John Cupitt 703498aa81 Merge branch '8.7' 2018-10-01 21:23:48 +01:00
John Cupitt 0fea113bbf fix build on older glibs
we were using g_str_to_ascii(), but it was only added in glib 2.40

see https://github.com/libvips/libvips/issues/1117
2018-10-01 20:15:34 +01:00
John Cupitt 9ac5a449f2 add low/high to smartcrop
smartcrop attention had a centre setting, but not low or high

see https://github.com/libvips/libvips/issues/1089
2018-09-22 14:47:40 +01:00
John Cupitt b552dd0503 version bump to get ready for the vips 8.8 cycle 2018-09-21 15:10:39 +01:00
John Cupitt f3de6a9521 update function list in docs
thanks janko-m

see https://github.com/jcupitt/libvips/issues/1097
2018-09-20 08:26:51 +01:00
Kleis Auke Wolthuizen b5b756b817 Add vips_object_get_args
Handy for language bindings.
2018-08-19 22:42:26 +02:00
John Cupitt f4250ab7ab scale openexr alpha up
scale alpha up to 0 - 255 to match the rest of libvips
2018-08-19 10:53:54 +01:00
John Cupitt 643e7c0ea2 mapim fix for strange float values
mapim could fail for float index images outside the int range

minor speedup too
2018-08-12 17:10:23 +01:00
John Cupitt 0b3565c04d update radiance load from upstream
thanks Greg Ward
2018-08-03 18:31:31 +01:00
John Cupitt e89dac20bb add sniffing framework to magickload
though it only spots ICO for now

see https://github.com/jcupitt/pyvips/issues/39
2018-07-24 17:38:36 +01:00
John Cupitt 72f589764a remove the @format param to magickload 2018-07-24 17:03:38 +01:00
John Cupitt 2d94fe732a escape ASCII control chars in xml
stops some XML parse errors on corrupt metadata

see https://github.com/jcupitt/libvips/issues/1039
2018-07-23 14:55:37 +01:00
John Cupitt 3d5b0b814f merge in test suite 2018-07-20 13:58:27 +01:00
John Cupitt 3201b4373d Merge branch 'master' into add-nifti-support 2018-07-20 13:57:51 +01:00
John Cupitt d03416d386 works!
just needs some tests

could be faster too
2018-07-19 17:45:54 +01:00
John Cupitt d06c2fee22 use exif_tag_get_name_in_ifd() everywhere
exif tag names change with the ids they appear in, so you must always
use exif_tag_get_name_in_ifd(), not exif_tag_get_name()

see: https://github.com/jcupitt/libvips/pull/1030
2018-07-09 09:35:39 +01:00
John Cupitt d510807e90 vmoe the test suite back into libvips 2018-07-06 15:43:20 +01:00
John Cupitt 3a9adbcea9 seems to work
could probably add some more fields
2018-07-03 16:36:39 +01:00
John Cupitt 35b4a1a3b5 fix mem leak in pngsave
and some reformatting and changelog notes
2018-06-20 14:20:22 +01:00
John Cupitt a373d2c876 add changelog notes for region_shrink 2018-06-13 17:36:36 +01:00
John Cupitt 539cc0616c Merge branch '8.6' 2018-06-13 16:24:20 +01:00
John Cupitt e6edcfe20d improve accuracy of vector path 2018-06-13 16:23:21 +01:00
John Cupitt 3b1e3e1841 add Mitchell kernel
see https://github.com/jcupitt/libvips/issues/966
2018-06-12 12:55:10 +01:00
John Cupitt cc29a13cc7 revise composite position code slightly
- move x/y into composite and out of composite base, have separate x/y int
params for composite2
- upsize later for a small speed improvement
- doc comment
- note in changelog

see https://github.com/jcupitt/libvips/pull/934
2018-06-11 17:04:29 +01:00
John Cupitt 0e3cac1a72 make cpp overloads const
all overloads are declared const now, where possible

also revised cpp examples and ran them to check

see https://github.com/jcupitt/libvips/issues/983
2018-06-11 15:24:11 +01:00
John Cupitt ca6410e1a6 make members and getters "const" in cpp api
eg. VImage::width() is now

	int VImage::width() const;

ie. it does not alter the image objects. In factr we can mark almost all
members const.

see https://github.com/jcupitt/libvips/issues/983
2018-06-11 14:30:17 +01:00
John Cupitt 87b3f17846 vips7 API defaults off 2018-06-11 12:44:28 +01:00
John Cupitt fb64d3607a add @background option to pdfload
Add a "background" option to pdfload to help support PDFs with a
transparent background. For example:

	vips copy transparent.pdf[background=0] x.png

see https://github.com/jcupitt/libvips/issues/995
2018-06-08 10:28:00 +01:00
John Cupitt 5ec605c98c Merge branch '8.6' 2018-06-01 23:05:16 +01:00
John Cupitt a3394dc756 fix webp metadata save with webpmux
see https://github.com/jcupitt/libvips/pull/989
2018-06-01 23:01:33 +01:00
John Cupitt e9aaedc60a fix some compiler warnings
from the msvc patch
2018-06-01 19:44:43 +01:00
John Cupitt 86a1a0a7e2 Merge branch '8.6' 2018-05-29 19:30:46 +01:00
John Cupitt 7e95ae514d don't use ping in magickload
too unreliable, sadly
2018-05-29 19:29:11 +01:00
John Cupitt 0486218ff5 don't use Ping in magickload
it's too unreliable :-( we are forced to read every time
2018-05-29 17:20:46 +01:00
John Cupitt d251b37d92 add vips_argument_get_id()
We had a global we incremented to allocate property ids, but of course that
won't work with DLLs. Instead, add vips_argument_get_id() and call that to
allocate new prop ids.

See:

https://github.com/jcupitt/libvips/issues/985
2018-05-29 16:49:20 +01:00
John Cupitt 4058312aee fix a TGA ping crash
see https://github.com/jcupitt/libvips/issues/980
2018-05-25 16:40:50 +01:00
John Cupitt 73a55e0322 update ChangeLog 2018-05-25 16:06:05 +01:00
John Cupitt b085908558 remove vips7 stuff from API
You must now include vips7 support explicitly with

	#include <vips/vips7compat.h>

in your code just after including `vips.h`.

The old vips7 names, such as `Rect`, were starting to cause problems
with other packages like opencv.
2018-05-16 15:08:21 +01:00
John Cupitt fd7b04fb9d Merge branch '8.6' 2018-05-14 18:10:13 +01:00
John Cupitt 5b132ccbdc note new config test in changelog 2018-05-14 17:19:06 +01:00
John Cupitt e496df598b working! 2018-05-01 15:50:48 +01:00
John Cupitt 4d683559aa add a fontfile option to text
use @fontfile to give a font to load ... note that this just loads the
font, you'll need to set it with @font as well

see https://github.com/jcupitt/libvips/issues/950
2018-04-26 21:03:40 +01:00
John Cupitt da6f4fd043 add n-pages metadata item
tiff, magick and pdf load now attach an n-pages metadata item recording
the number of pages in the orginal file

see https://github.com/jcupitt/libvips/issues/953
2018-04-26 08:55:31 +01:00
John Cupitt 4f22e8d1dc add jpeg-chroma-subsample to jpegload
The jpeg loader now sets the field jpeg-chroma-subsample to record
chroma subsample.

See https://github.com/jcupitt/libvips/issues/954
2018-04-25 16:04:20 +01:00
John Cupitt c410dc2db8 add format option to magickload
Some magick coders (eg. ICO) don't sniff the filetype from the data, so
when you try to load from a string, imagemagick is unable to pick the
right decode path.

Add a @format option so callers can hint the filetype.

see https://github.com/jcupitt/pyvips/issues/39
2018-04-24 15:06:52 +01:00
John Cupitt c0569d25bf final fixups
- add buffer load
- test under valgrind
- code sharing with the poppler pdf loader
2018-04-11 18:53:38 +01:00
John Cupitt 5b55dd8ed4 Merge branch '8.6' 2018-04-11 09:38:59 +01:00
John Cupitt d1dd41a21f strict round down on jpeg shrink
libjpeg rounds up on shrink-on-load. In some cases this can leave a dark
line along the right and bottom edge, since it only contains (for
example) 1/4 of a pixel of data.

This change adds a crop after jpeg load so that only complete pixels are
output.

See https://github.com/lovell/sharp/issues/1185
2018-04-10 15:18:18 +01:00
John Cupitt 15abbbe986 set "interlaced" for jpg and png
set "interlaced" for interlaced png and jpg images
2018-04-09 17:14:38 +01:00
John Cupitt 06802e4110 use O_TMPFILE, if available
If O_TNMPFILE is available, use it. This is a linux extension that
creates an unlinked file, so it'll be closed by the system when the last
associated fd is closed.

see https://github.com/jcupitt/libvips/pull/930
2018-04-09 13:27:57 +01:00
John Cupitt f3842dcc4b update cpp example
thanks fangqiao

see https://github.com/jcupitt/libvips/issues/932
2018-04-08 11:44:15 +01:00
John Cupitt 5f3bcd88ae Merge branch '8.6' 2018-04-04 17:11:16 +01:00
John Cupitt 632bce3c78 reduce stack use for radsave
fixes a crash on very low stack libcs like musl
2018-04-04 16:25:35 +01:00
John Cupitt aebb8af803 create funcs always make MULTIBAND
Before, they could make B_W for one-band output. This caused problems
with (for example) two black image bandjoined: the second band then
looked like an alpha to hasalpha() and enabled premultiply/unpremultiply
for operations like affine.

Now, it's always MULTIBAND. This is the generic multiband image type, so
you don't get any unexpected alpha handling.
2018-04-04 09:22:57 +01:00
John Cupitt 0dd6b095aa more conservative hasalpha
The result of hasalpha is used to turn on things like
premultiplication, so we should be rather conservative
about when we signal this. We don't want to premultiply
things that should not be premultiplied.

Check Type as well as bands.

See: https://github.com/jcupitt/libvips/issues/918
2018-04-03 14:36:43 +01:00
John Cupitt e686614f2c drop incompatible profiles from save
libpng has started throwing hard errors if the profile does not match
the image -- this can happen all the time with perofiles inherited from
images that have been processed.

Test profiles before save and drop them (with a warning) if they are
incompatible with the image.
2018-04-01 10:32:48 +01:00
John Cupitt 5176b4a17e better header sniffing for small files
vips__get_bytes() used to fail if the file was too small for the
allocated buffer, which was a problem for svg, since files can be extremely
small.

This change makes vips__get_bytes() return the number of bytes read, so
the is_a testers can work on files smaller than the max header size.
2018-03-22 12:08:39 +00:00
John Cupitt 5a1ab5968b move svg_ia_a into the base class
feels a bit more logical
2018-03-22 10:43:01 +00:00
John Cupitt 754a1e5419 Merge branch 'master' into add-canny 2018-03-14 14:18:39 +00:00
John Cupitt 206f158a77 Merge branch '8.6' 2018-03-12 18:12:56 +00:00
John Cupitt 878c77a035 better handling of some fonts
fonts with very large overlapping edges copuld clip in `text`, see
https://stackoverflow.com/a/49169747/894763
2018-03-12 18:11:25 +00:00
John Cupitt 08dcf29b10 add vips_rotate()
vips_similarity() was a little hatrd to discover, so add vips_rotate()
as a more obvious name for it
2018-03-10 18:45:39 +00:00
John Cupitt 5834779ac6 Merge branch 'master' into add-canny 2018-03-10 15:13:49 +00:00
John Cupitt 0a05dd4304 Merge branch '8.6' 2018-03-09 16:37:10 +00:00
John Cupitt 29e05dabaf icc_import attaches the input profile if used
icc_import can take a fallback input profile in case the embedded one is
broken or missing. If we use the fallback profile, this change attaches
it to the output image.

This means that icc_import will always output an image with the icc
profile that was used to import it. This helps to make the behaviour of
`thumbnail` more consistent.

See https://github.com/jcupitt/libvips/issues/152
2018-03-08 13:11:54 +00:00
John Cupitt 6e0e31a534 Merge branch '8.6' into add-canny 2018-03-05 15:21:30 +00:00
John Cupitt 6fae79b60d Merge branch '8.6' 2018-03-05 15:09:08 +00:00
John Cupitt 20d840e6da fix a crash with delayed load
If a delayed load failed, it could leave the pipeline only half-set up.
Sebsequent threads could then segv.

Set a load-has-failed flag and test before generate.

See https://github.com/jcupitt/libvips/issues/893
2018-03-05 14:42:09 +00:00
John Cupitt 7f5b0b94c3 Merge branch '8.6' into add-canny 2018-03-04 18:45:59 +00:00
John Cupitt 881a10380e Merge branch '8.6' 2018-03-04 18:45:51 +00:00
John Cupitt eefb2dad98 improve rounding in convi intize
We were rounding up with ceil() when intize-ing convolution masks.
However, the vector path has a true range of (1.0, -1.0], so a mask with
1.0 as the max (for example) was actually triggering the overflow detector
and falling back to the C path.

Round up with ceil(x + 1) instead, so 1.0 (for example) will be mapped
to 0.5 and won't overflow.
2018-03-04 18:30:25 +00:00
John Cupitt bca2418d9a Merge branch 'master' into add-canny 2018-03-04 15:31:19 +00:00
John Cupitt e7a5a8af4a Merge branch '8.6' 2018-03-04 15:31:08 +00:00
John Cupitt 6cff74b602 vips_image_write() could crash if called twice
two writes in a row could trigger a crash in some circumstances, thanks
@dirceupj

see https://github.com/jcupitt/ruby-vips/issues/156
2018-03-04 15:14:06 +00:00
John Cupitt 4a59fa652c make vips_sobel()
cut out of vips_canny()
2018-02-26 18:33:20 +00:00
John Cupitt a9b4aeb13a Merge branch '8.6' 2018-02-21 19:01:43 +00:00
John Cupitt bbe42e13fa version bump 2018-02-12 12:39:53 +00:00
John Cupitt ce1f236c4d another 2x faster on hough_line 2018-02-02 09:12:31 +00:00
John Cupitt 78db92e60e better hough_line
2x faster, better parameter space, but breaks compat :( sorry
2018-02-01 20:41:14 +00:00
John Cupitt 5a4b4e196d allow remove thumbnail from exif
if the user has removed (or set to NULL) the "jpeg-thumbnail-data" tag,
remove it from the image EXIF on save

see https://github.com/jcupitt/ruby-vips/issues/147
2018-02-01 16:15:02 +00:00
John Cupitt 749f4a902a Merge branch '8.6' 2018-01-31 20:47:01 +00:00
John Cupitt e8958cb8ae improve changelog 2018-01-31 20:45:14 +00:00
John Cupitt 01eed391ab add sync locks to vips_sink()
vips_sink() used to just fire off threads willy nilly -- this could
cause problems with sequential images if a worker fell too far behind
the pack

copy over the area locking mechanism from vips_sink_memory(): new
threads are now stalled if an old thread has not finished
2018-01-31 16:25:06 +00:00
John Cupitt 421f659d33 allow 1 mode in composite
reused for all joins

see https://github.com/jcupitt/pyvips/issues/30
2018-01-30 10:12:03 +00:00
John Cupitt 5fd2ecf81d remove limit on n image in composite
composite was limited to a max of 64 images ... remove the limit

see https://github.com/jcupitt/pyvips/issues/30
2018-01-30 09:48:34 +00:00
John Cupitt 4865141afa szi save will write associated images
if they have been attached by openslide load
2018-01-28 16:39:13 +00:00
John Cupitt 28391dbfc7 option to attach associated images as metadata
you now see:

```
$ vipsheader -a CMU-1.svs[attach_associated] | grep ass
openslide.associated.label: 387x463 uchar, 4 bands, rgb
openslide.associated.macro: 1280x431 uchar, 4 bands, rgb
openslide.associated.thumbnail: 1024x732 uchar, 4 bands, rgb
slide-associated-images: label, macro, thumbnail
```
2018-01-27 16:43:58 +00:00
John Cupitt de2e3e3299 add vips_image_(get|set)_image()
so images can have other images as metadata
2018-01-27 14:49:33 +00:00
John Cupitt 21e1e68771 write scan-properties.xml to szi
see https://github.com/jcupitt/libvips/issues/853
2018-01-26 17:20:58 +00:00
John Cupitt c46f4b15e0 dzsave to szi sets extension correctly
see https://github.com/jcupitt/libvips/issues/852
2018-01-26 15:36:43 +00:00
John Cupitt 97a4ed2ca9 fix a c++ warning
see https://github.com/jcupitt/libvips/pull/864
2018-01-26 07:56:43 +00:00
John Cupitt 39406877a2 Merge branch '8.6' 2018-01-12 17:23:24 +00:00
John Cupitt 94daa18884 fix read of plane-separate, large-strip tiff
TIFFReadScanline() is too fiddly to use on plane-separate, large-strip
images ... ban it!

see https://github.com/jcupitt/libvips/issues/855
2018-01-12 17:04:47 +00:00
John Cupitt 18f530c724 Merge branch '8.6' 2018-01-12 12:02:41 +00:00
John Cupitt 24c07cfde2 revert an accidental ABI break
the new window manager code in 8.6.1 changed the prototype of an internal
function which was visible in the public API

this patch renames the function, adds it to an internal header instead,
and adds a stub for the old prototype

see https://github.com/jcupitt/libvips/issues/854
2018-01-12 11:56:17 +00:00
John Cupitt 925667f8d3 Merge branch '8.6' 2018-01-05 16:29:56 +00:00
John Cupitt 1b89d62eb5 fix a race associated with sink_screen
sink_screen was not keeping a ref to its input, so in rare conditions
it could try to make a region on a dead image
2018-01-05 16:27:44 +00:00
John Cupitt 68e0067840 note rgb->g improvement 2018-01-03 08:34:15 +00:00
John Cupitt 4c2434ab67 fix memleak in dzsave
tree elements were not being freed, thanks lovell

see https://github.com/jcupitt/libvips/issues/837
2018-01-01 11:40:04 +00:00
John Cupitt 39ab05469f Merge branch '8.6' 2017-12-31 12:57:57 +00:00
John Cupitt 9febc3ac3e seq could be set on small random images
images under the disc threshold opened in random access mode from
sequential loaders would have the seq tag set on them, causing
performance problems with vips_resize()

see https://github.com/jcupitt/libvips/issues/840
2017-12-31 12:56:11 +00:00
John Cupitt a128149009 Merge branch '8.6' 2017-12-31 10:39:36 +00:00
John Cupitt 77287a938f fix misspelling of IPTC as IPCT
the letters have been accidentally swapped for years

add a compat macro so older code still works
2017-12-31 10:23:27 +00:00
John Cupitt e12df167e6 Merge branch 'magicksave' of https://github.com/dlemstra/libvips into dlemstra-magicksave 2017-12-23 12:39:50 +00:00
John Cupitt eea8b61f3f tiny cleanup
make the code for error during jpeg buffer write a little cleaner --
rather than calling the jpeg term method ourselves, have a separate
destroy function for the write buffer
2017-12-19 08:56:51 +00:00
John Cupitt 424b359d33 bump wrapper script version
and add a test too

see https://github.com/jcupitt/libvips/issues/834
2017-12-17 10:50:57 +00:00
John Cupitt 19e2e2e208 add credit to changelog 2017-12-16 10:01:04 +00:00
John Cupitt f4f9667406 remove the 64 image limit on bandary
any number of input images now

see https://github.com/jcupitt/libvips/issues/822
2017-12-15 14:21:31 +00:00
John Cupitt 3c0a2e4837 fix window cycling
we were repeatedly free-ing and new-ing input mmap windows ... this made
things like zoom out on large images in nip2 much slower than they
needed to be
2017-12-10 17:37:07 +00:00
John Cupitt e9b7231ac0 add "extend" option to affine
so for upsizing with displacement (like resize) we can prevent dark
edges on bright images

see

https://github.com/jcupitt/php-vips/issues/61
2017-12-07 14:51:07 +00:00
John Cupitt 60bd5f6512 add composite2 to notes 2017-12-01 13:37:15 +00:00
John Cupitt 13a693c8bc Merge branch 'master' into add-extra-dzsave-tiles 2017-12-01 13:33:54 +00:00
John Cupitt 9c8790b40a setting EXIF data blocks sets other tags too
calling vips_image_set() to set the EXIF data block VIPS_META_EXIF_NAME
will automaticaly set other tags, like orientation etc.
2017-11-27 15:15:21 +00:00
John Cupitt 10eef89a7f update c++ bindings 2017-11-26 17:45:04 +00:00
John Cupitt 406e228c9b vips_resize() is always centre convention
it was corner for downsize, but should be centre to match imagemagick
2017-11-26 15:24:40 +00:00
John Cupitt 7db13412e5 deprecate centre option to resize
it's now centre on upsize, corner on downsize

see https://github.com/jcupitt/libvips/issues/705
2017-11-25 14:22:20 +00:00
John Cupitt 5664a0d9b1 dzsave outputs extra tiles along right and bottom
the deepzoom spec wants tiles to be written along the right and bottom,
even of those tiles contain no new pixels

this patch seems to work, but needs testing

see: https://github.com/jcupitt/libvips/issues/795
2017-11-24 15:54:22 +00:00
John Cupitt 6a4b249445 add dispose handling
see https://github.com/jcupitt/php-vips/issues/59
2017-11-22 17:37:31 +00:00
John Cupitt 27621733f2 add gif-comment 2017-11-22 13:10:06 +00:00
John Cupitt e56282e1fd add gif-loop metadata
see https://github.com/rokka-io/imagine-vips/issues/3
2017-11-21 16:04:18 +00:00
John Cupitt a4b89aa370 credit for affine fixup 2017-11-18 15:11:02 +00:00
John Cupitt fcec6d639b fix jaggies on the edge of affine output
and add a "background" param
2017-11-17 16:30:25 +00:00
John Cupitt 4ea743f5e6 add combine mode to find_indexed 2017-11-03 16:36:09 +00:00
John Cupitt 487c112807 add VIPS_COMBINE_MIN combining mode
for vips_compass()
2017-11-02 12:34:01 +00:00
John Cupitt 55e577a2fb rename nearest as fill_nearest
avoid a clash with the nearest-neighbour interpolator
2017-11-01 15:06:37 +00:00
John Cupitt cdc286e9d6 switch to float distance calculations
removes dithering effects along edges
2017-11-01 13:16:36 +00:00
John Cupitt 3b75b1e2ac fix gcc7 build
removed exception specs from deprecated C++ binding
2017-10-24 09:31:23 +01:00
John Cupitt 5ec1d5b72f fix vipsthumbnail --size Nx
oh dear, width but not height size specs to vipsthumbnail were not working

thanks jrochkind

see https://github.com/jcupitt/libvips/issues/781
2017-10-23 22:27:23 +01:00
John Cupitt dd503c03c6 add vips_value_set_blob_free()
simpler for language bindings to call
2017-10-19 16:37:43 +01:00
John Cupitt 68ed42e2fa make linear and cubic adaptive 2017-10-15 22:09:44 +01:00
John Cupitt 008fd21728 all done 2017-10-14 17:03:48 +01:00
John Cupitt 135d7a4dfb Merge branch '8.5' 2017-10-11 12:57:18 +01:00
John Cupitt b4a6e6e309 spelling 2017-10-11 11:24:43 +01:00
John Cupitt fd1d332892 update change notes 2017-10-11 10:12:01 +01:00
John Cupitt 40f20e5e0a Merge branch 'master' into gargsms-text-autofit 2017-10-10 13:04:31 +01:00
John Cupitt 12db3e936c Merge branch '8.5' 2017-10-09 22:35:29 +01:00
John Cupitt 6f16a9df71 fix a crash with heavy use of draw
we were leaving a few bits of the original image around after
vips_image_copy_memory(), including the progress signal ... if earlier images
were freed, perhaps by a GC in a language binding, we could get a dangling
pointer

thanks Nakilon, see https://github.com/jcupitt/ruby-vips/issues/140
2017-10-09 22:27:36 +01:00
John Cupitt 3f22424d3b test for gcc4 and ban vectors
it has severe code gen problems, it seems

this seems to ban clang as well, unfortunately
2017-10-07 11:20:21 +01:00
John Cupitt aae5babfcc Merge branch 'master' into add-composite 2017-10-01 19:37:26 +01:00
John Cupitt 560f8ac727 add goi note to changelog
see https://github.com/jcupitt/libvips/issues/741
2017-10-01 19:35:44 +01:00
John Cupitt 4b24d82e8c some cleanups, a bit quicker
it now has separate premultiplied and not-premultiplied paths
2017-09-27 17:32:05 +01:00
John Cupitt 64be1d89b5 add gravity 2017-09-20 00:43:17 +01:00
John Cupitt b2f66a3968 add note on svgload improvement 2017-09-17 05:20:48 +01:00
John Cupitt e346fd639e built-in python bindings default to off
we still make a typelib by default though

use the new pyvips binding instead, "pip install pyvips"
2017-09-13 18:24:32 +01:00
John Cupitt 48680dccc4 remove python test suite
it's in pyvips now
2017-09-13 17:45:29 +01:00
John Cupitt 60f212c371 credit! 2017-09-11 11:54:01 +01:00
John Cupitt 0f4feb1b73 note file create time change 2017-09-11 11:22:20 +01:00
John Cupitt 5a37d3e809 add an intent option to thumbnail
"intent" lets you set the rendering intent for any ICC conversions --
the default is the (more correct) relative, but "perceptual" can look
better

see https://github.com/jcupitt/libvips/issues/714
2017-08-30 16:34:46 +01:00
John Cupitt 820c279697 Merge branch '8.5' 2017-08-30 14:59:16 +01:00
John Cupitt 653e99ea82 don't build enumtypes so often
we were only replacing enumtypes if it had changed, but this meant that
make usually thought it was out of date compared to the source files,
and rebuilt it, which needed perl

now we always replace it, so (hopefully) perl is no longer a
compile-time dependency
2017-08-30 14:37:48 +01:00
John Cupitt 2b70348d23 Merge branch '8.5' 2017-08-29 10:33:45 +01:00
John Cupitt e2c83fe4bd fix jpegload fail
we were only failing on libjpeg errors, but libjpeg treats very serious
things thaht we want to be able to catch (like truncated files) as warnings
... we must therefore error out if fail is set and libjpeg issues a warning

see https://github.com/lovell/sharp/issues/793
2017-08-29 09:49:38 +01:00
John Cupitt d12f8e200a support tiffsave_buffer pyramids
add support for tiff pyramid save to memory, thanks bubba

see https://github.com/jcupitt/libvips/issues/702
2017-08-26 16:26:37 +01:00
John Cupitt 2e513eef82 enable seq mode for `join`
much faster for large TIFFs

see https://github.com/jcupitt/libvips/issues/717
2017-08-25 10:53:44 +01:00
John Cupitt 97997d1990 Merge branch '8.5' 2017-08-18 22:13:51 +01:00
John Cupitt f2576003b7 fix webp upscale in thumbnail
we could try to use webp shrink on load to upscale, oops

see https://github.com/jcupitt/libvips/issues/710
2017-08-18 22:08:43 +01:00
John Cupitt 3cf33d7f32 Merge branch '8.5' 2017-08-18 12:32:12 +01:00
John Cupitt f2c55e80fe better dzsave with zip output to a file
close down output earlier to help mark-sweep bindings
2017-08-18 12:31:24 +01:00
John Cupitt 63550280a4 Merge branch '8.5' 2017-08-04 18:31:25 +01:00
John Cupitt 47a763209a hide warnings if VIPS_WARNING is defined
If VIPS_WARNING is defined, suppress all warning messages from vips by
installing a null log handler.

Libraries should not call g_log_set_handler(), it is supposed to be for
the application layer, but this can be awkward to set up if you are using
libvips from something like Ruby.

This env var hack is a workaround.

see https://github.com/jcupitt/ruby-vips/issues/119
see https://github.com/jcupitt/libvips/issues/544
2017-08-04 18:01:19 +01:00
John Cupitt e46a56e137 remove lcms1 support
it had bitrotted and no longer worked properly
2017-08-02 13:39:28 +01:00
John Cupitt 302f4f2517 Merge branch '8.5' 2017-08-02 11:05:39 +01:00
John Cupitt 58f9757467 fix transparency detection in merge
a typo meant we were just testing the first band for zero, not all three

thanks Haida!
2017-08-02 10:41:10 +01:00
John Cupitt a3b226aa9b version bump 2017-08-02 10:40:17 +01:00
John Cupitt 639b0f5021 Merge branch '8.5' 2017-07-29 10:40:44 +01:00
John Cupitt 69f70a7e24 Merge branch '8.5' into tweak-smartcrop-8.5 2017-07-28 18:04:23 +01:00
John Cupitt 1e7541bfb8 add find_trim
compiles, not yet working
2017-07-25 14:52:45 +01:00
John Cupitt a8fb38fb6a Merge branch '8.5' 2017-07-08 16:06:18 +01:00
John Cupitt 64fe910fc5 fix DPI mixup
librsvg defaulted to 90 DPI, but libvips to 72 DPI -- add a correction
factor

thanks Fosk!

see https://github.com/jcupitt/libvips/issues/688
2017-07-08 12:31:36 +01:00
John Cupitt 9a1c3f9405 rename 'disc' as 'memory'
the old 'disc' flag to open defaulted TRUE and disabled read via disc if you
set it FALSE, which was very confusing

replace it with a flag called 'memory' which defaults FALSE and forces
read via memory if set TRUE

'disc' is still there and still works, it's just tagged as deprecated

see https://github.com/jcupitt/libvips/issues/677
2017-07-07 09:45:49 +01:00
John Cupitt 91457e455a add "page-height" save property 2017-06-19 09:31:49 +01:00
John Cupitt 5383554724 Merge branch '8.5' 2017-06-12 18:23:07 +01:00
John Cupitt 4d846534b8 transform cmyk->rgb automatically
if:

- we are writing a cmyk image
- there is an embedded profile
- the saver does not support cmyk

see https://github.com/jcupitt/libvips/issues/676
2017-06-12 18:19:20 +01:00
John Cupitt 869f3dae04 revise again
seems to work on all test images now
2017-06-09 11:50:27 +01:00
John Cupitt aeff03b951 Merge branch '8.5' 2017-05-29 10:21:02 +01:00
John Cupitt 7bcf0bb93f don't cache thumbnail
thanks tomasc! see

jcupitt/ruby-vips#109
2017-05-29 10:19:21 +01:00
John Cupitt 354921df83 Merge branch '8.5' 2017-05-28 06:34:11 +01:00
John Cupitt 6a189d068b mark vipsprofile as python2
Some distros have python3 as the default, so make vipsprofile explicitly
python2, thanks ioquatix.

See https://github.com/jcupitt/libvips/issues/667
2017-05-28 06:33:58 +01:00
John Cupitt 027b9ccc9c Merge branch '8.5' 2017-05-26 09:09:33 +01:00
John Cupitt 7b64246af2 fix a couple of issues with huge profiles
The base64 encode limit was 1MB, but some huge profiles can get over
that, so it's now 10MB.

transform_save_string_blob() was incorrectly setting a refstring not a
blob as an error fallback, potentially leaving a dangling pointer.

Thanks Jaume!

See https://github.com/jcupitt/libvips/issues/666
2017-05-26 09:04:15 +01:00
John Cupitt 5216d75b83 Merge branch '8.5' 2017-05-19 16:16:16 +01:00
John Cupitt 5df65ec6fd fix tiff read with page > 0
could break edge tiles under some circumstances
2017-05-19 16:07:36 +01:00
John Cupitt 8c8b71d935 Merge branch '8.5' 2017-05-15 11:35:47 +01:00
John Cupitt 2b0ebb0de2 fix test suite thresholds
changes in jpg encode/decode mean we must adjust test suite thresholds
2017-05-15 11:21:13 +01:00
John Cupitt 6dbdc173a2 better prefix guessing on Windows
see https://github.com/tumagonx/pygi-mingw-patches/issues/5
2017-05-13 11:11:32 +01:00
John Cupitt 82994e4c33 add vips_thumbnail_image()
thumbnail with an image source, see

https://github.com/jcupitt/libvips/issues/656
2017-05-12 18:20:37 +01:00
John Cupitt 5c6979cdcb Merge branch '8.5' 2017-05-12 17:25:01 +01:00
John Cupitt 942b0446a3 revise fail handling, again
clarify policy on file read errors and warnings:

* if the file format library reports a warning, we log it in vips, but
that's all
* if the file format library reports an error, we log it, but try to
continue
* if the file format library reports an error and fail is set, we log it
and fail

all loaders now implement this
2017-05-12 17:22:49 +01:00
John Cupitt a10787baa3 Merge branch 'add-force-size' 2017-05-10 17:08:32 +01:00
John Cupitt 3019e5966b vips_conv*() default to float
we had INT as the default, but this will cause serious precision loss
with many masks ... instead, have float (always correct) as the default
and let people turn on int if they cn
2017-05-08 13:28:23 +01:00
John Cupitt 260180197d done! but needs some tests 2017-05-04 14:54:49 +01:00
John Cupitt 2b75a372d1 more truncated png improvements 2017-05-03 10:32:24 +01:00
John Cupitt 39ea6ce492 all done 2017-04-29 10:07:41 +01:00
John Cupitt 04353f8915 added new_from_image() to python
and tests
2017-04-28 18:27:15 +01:00
John Cupitt 7882602dfe C/C++ done
python next
2017-04-26 14:52:28 +01:00
John Cupitt b0f8246c90 Merge branch '8.5' 2017-04-26 10:31:33 +01:00
John Cupitt cc38097560 better handling of truncated PNG files
improve fail support, and bail out sooner

see https://github.com/jcupitt/libvips/issues/646
2017-04-26 10:25:52 +01:00
John Cupitt 4c8d83ce85 Merge branch '8.5' 2017-04-23 18:54:40 +01:00
John Cupitt 8bf0a05948 doc polishing 2017-04-23 18:52:05 +01:00
John Cupitt 757065baab Merge branch '8.5' 2017-04-23 09:58:11 +01:00
John Cupitt a067dc4140 oop credit fix 2017-04-23 09:57:55 +01:00
John Cupitt d8fce50284 Merge branch '8.5' 2017-04-23 09:57:02 +01:00
John Cupitt 7938903d22 don't size caches by image width
we were sizing buffers partly by image width, which could cause caches
to be too small if width changed down a pipeline

see https://github.com/jcupitt/libvips/issues/639
2017-04-23 08:31:16 +01:00
John Cupitt 4f3364a2b0 skip non-image HDUs at start of fits
some fits images have header units (HDUs) at the start with extra
metadata in ... skip over these

see https://github.com/jcupitt/libvips/issues/640
2017-04-15 13:27:45 +01:00
John Cupitt 4094070ecb version bumo for new cycle 2017-04-15 13:26:29 +01:00
John Cupitt e01a90f7cf revise cache sizing
we had output buffers too large, input caches too small

see https://github.com/jcupitt/libvips/issues/639
2017-04-13 16:24:51 +01:00
John Cupitt 38b65478e5 bump version, doc tweaks
more sotons removed
2017-04-07 15:59:37 +01:00
John Cupitt a5b04091ee Merge branch 'add-markdown-docs' into 8.5 2017-04-06 11:51:36 +01:00
John Cupitt c2cb4c38fe missing ptoto for vips_tiffsave_buffer()
oop, thanks greut

see https://github.com/jcupitt/libvips/issues/632
2017-04-04 10:17:05 +01:00
John Cupitt 30829ef003 add howitworks.md 2017-03-31 10:57:04 +01:00
John Cupitt d5a706e47e better behaviour for truncated PNG files
truncated PNG files failed with an error, even if --fail was not set ...
instead, just warn, and only error out if fail is on

see https://github.com/jcupitt/libvips/issues/629
2017-03-30 17:13:25 +01:00
John Cupitt cd2c1324c5 version bump for release
and for the one tiny change
2017-03-25 13:57:33 +00:00
John Cupitt 0a5375b6cd Merge branch 'master' into remove-seq-stalling 2017-03-15 12:26:44 +00:00
John Cupitt fd6006bacb Merge branch 'master' into add-smartcrop 2017-03-13 20:41:22 +00:00
John Cupitt 51f96ce9af argh revert the arg order change
we need to patch bindings instead
2017-03-13 08:24:06 +00:00
John Cupitt d7da3c7de7 fix vips_resize() bug
if hscale and vscale were very different, resize could fail with "reduce
factor too large" ... just a silly typo
2017-03-10 10:22:40 +00:00
John Cupitt 9eab57c31d Merge branch 'master' into add-smartcrop 2017-03-08 17:17:16 +00:00
John Cupitt 9e6832b34d add --smartcrop to vipsthumbnail
does the obvious thing
2017-03-08 14:31:00 +00:00
John Cupitt 507212e3d8 Merge branch 'master' into remove-seq-stalling 2017-03-08 09:30:48 +00:00
John Cupitt 55dcaa4ae4 add vips_rot90() etc. convenience funcs
90/180/270 rotate as convenience functions
2017-03-07 17:36:49 +00:00
John Cupitt 205fb817e8 change three C API funcs to match Python/C++/CLI
vips_math2_const(), vips_boolean_const() and vips_relational_const() had
the const and oper args reversed from the Python/CLI/C++ API

add something to check for arg priority conflicts and resolve the
conflicts it found
2017-03-07 14:28:31 +00:00
John Cupitt 162e224186 notes 2017-03-05 22:24:52 +00:00
John Cupitt d40773515c add smartcrop 2017-03-01 15:41:26 +00:00
John Cupitt 47a4a78a33 Merge branch 'try-expat' 2017-02-28 17:19:21 +00:00
John Cupitt 1912a30bec Revert "note new seq thing"
This reverts commit 156f729d75.
2017-02-27 10:23:19 +00:00
John Cupitt e1b9c789cb add dbuf object
dynamically expanding buffer

also, escape "<>& appropriately when we write xml
2017-02-26 17:37:46 +00:00
John Cupitt e87654fcd9 use printf for xml write 2017-02-25 17:28:48 +00:00
John Cupitt 134ce0560c use expat for xml read
we were using libxml for xml load, use expat instead, we get it for free
with glib
2017-02-25 13:07:43 +00:00
John Cupitt 156f729d75 note new seq thing 2017-02-23 20:05:11 +00:00
John Cupitt 4bbd56fb0a handle transparency in vips_region_shrink()
we weren't multiplying through alpha in vips_region_shrink(), causing
fringing on pyramids with transparent elements

thanks sickrandir!

see https://github.com/jcupitt/libvips/issues/599
2017-02-23 17:04:25 +00:00
John Cupitt 21a5d0dfe4 speeling 2017-01-29 12:24:25 +00:00