Commit Graph

59 Commits

Author SHA1 Message Date
Kleis Auke Wolthuizen a498680094
Update `glib-mkenums` templates (#2939)
* Avoid writing the full path in enumtypes.h

Helps reproducible builds, as build paths can vary between builds.

* Use g_intern_static_string() for enum/flags type names

We are emitting a static string, so use that shortcut function to
intern it, which will save one allocation.

* Use g_once_init_enter/leave to register enum/flags type names

This is the more modern way, and ensures thread-safety.
2022-07-22 15:33:40 +01:00
John Cupitt 94d8a7d993 tried (and failed) to build against ubuntu nifti
the ubuntu cmake dev files for nifti seem to be broken, and I can't get meson
to add the dependency manually
2022-04-18 15:13:55 +01:00
John Cupitt 0c70f3dc7d
add fail-on : better control over loader error handling (#2360)
Instead of a simple fail/don't-fail boolean switch, add fail-on, an enum which sets the sensitivity of loaders to errors. 

There's a new sensitivity level which tries to detect truncated images, but ignores other types of error.
2021-10-31 14:13:18 +00:00
John Cupitt 47383b5bfc
tell buffer and target savers the file format (#2499)
tell buffer and target savers the file format

Currently, buffer and target savers are not told the format they should
write.

This is usually OK (the JPEG saver already knows it should write JPEG),
but some savers can write several formats, and these currently need an
extra parameter.

For example:

```ruby
buf = x.write_to_buffer ".bmp", format: "bmp"
```

The first ".bmp" gets libvips to pick magicksave, the second
`format:` param is necessary to tell magicksave to write BMP.

This patch adds stub subclasses so that the savers know the exact format. It also improves PPM save.
2021-10-28 18:57:24 +01: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
elad laufer d2b794ec35 - use a single enum and switch that replaces no_subsample, force_subsample 2020-02-17 11:29:57 +02:00
Lovell Fuller 42f9f78c86 heifsave: expose compression option
improve error messaging, add further suffixes
2019-07-03 13:07:58 +01: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 e27c290856 glib version change 2019-02-27 14:24:17 +00:00
John Cupitt a373d2c876 add changelog notes for region_shrink 2018-06-13 17:36:36 +01:00
John Cupitt 9ac45f42e3 needs testing still 2018-04-30 17:38:32 +01:00
John Cupitt 18c50c3231 typo in configure.ac 2018-04-23 15:17:53 +01: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 40f20e5e0a Merge branch 'master' into gargsms-text-autofit 2017-10-10 13:04:31 +01:00
John Cupitt 7c7c30a601 works!
but only OVER mode at the moment, and it's not especially quick
2017-09-27 08:58:36 +01:00
John Cupitt 64be1d89b5 add gravity 2017-09-20 00:43:17 +01:00
John Cupitt 3cd0d5f161 try changing dpi instead of font size 2017-09-18 23:01:38 +01:00
gargsms 8f660ab45b [WIP] Autofit text in the requested dimensions 2017-08-01 23:26:24 +05:30
John Cupitt 126fdd4f6f update for new goi in ubuntu 17.04 2017-04-13 16:26:15 +01:00
John Cupitt d40773515c add smartcrop 2017-03-01 15:41:26 +00:00
John Cupitt 2fa3736722 all done, I think 2017-01-06 13:43:43 +00:00
Felix Bünemann f834ea39f6 Add lossy compression "preset" option to webpsave
This allows to tune the lossy webp encoder for certain types of images.
2016-04-22 23:57:07 +02:00
John Cupitt a26291a426 reducehl3 is done
sort of anyway, tinkering with optimization
2016-03-09 22:47:02 +00:00
John Cupitt 6e2135d8b5 mask builders take prec, not integer
vips_gaussmat() and vips_logmat() used to default to float, but
vips_conv() defaulted to int ... so this failed:

	vips gaussmat m.v 2 0.1 --separable
	vips convsep k2.jpg x.jpg m.v

since we were using a small float mask with an integer convolution

This change makes everything int by default, with gaussmat having a new
param called --precision whose arg can be int or float.

The old @integer param is deprecated.
2014-12-16 20:48:11 +00:00
Lovell Fuller 45d90b68f1 Expose ability to control libpng's row filter
Disabling adaptive filters can improve image size
2014-10-26 21:55:14 +00:00
John Cupitt 3dc708d2b6 add @container option to dzsave 2014-04-25 10:26:23 +01:00
John Cupitt 9b13188fc1 add "mode" to vips_draw_image() 2014-03-28 13:55:56 +00:00
John Cupitt 5983833caa deprecate im_zerox(), not very useful
morph now done
2014-01-17 18:03:46 +00:00
John Cupitt 0257dda270 first hack at supporting XYZ PCS
still need to fix new encode / decode
2013-11-12 14:58:59 +00:00
John Cupitt e74a0b71d9 almost done compass 2013-10-24 14:46:08 +01:00
John Cupitt 5475cabbf2 redo im_dilate()/erode() as classes
just a thin wrapper over the vips7 operations for now
2013-10-23 13:15:31 +01:00
John Cupitt 67dff74b2c rot45 works 2013-10-19 18:26:46 +01:00
John Cupitt 45a9e417f4 start vips_conv() 2013-10-01 14:26:13 +01:00
John Cupitt 440b800e0e add a new unbuffered seq mode
things like

	vips copy huge.png x.v

now run with only a small line cache
2013-09-29 11:04:11 +01:00
John Cupitt e5ba019942 start adding unbuffered sequential mode 2013-09-27 14:47:04 +01:00
John Cupitt 1de6c6bcc6 add binary complex ops
cross_phase is the only one atm
2012-12-06 14:52:51 +00:00
John Cupitt 09789ebdfd add @depth option to dzsave
so you can ask for a 1 layer pyramid
2012-11-01 18:11:46 +00:00
John Cupitt f8a160de44 Merge remote-tracking branch 'origin/master' into colour
Conflicts:
	ChangeLog
	configure.in
	po/vips7.pot
2012-10-21 12:24:08 +01:00
John Cupitt dee1aac7b1 dzsave can write zoomify and google maps
use "layout" to pick the directory layout, deepzoom / zoomify / google
all allowed
2012-10-03 14:26:59 +01:00
John Cupitt e793d38aa7 new icc transformer compiles 2012-09-25 22:06:24 +01:00
John Cupitt 643dc28950 turn on seq mode automatically in cli
cli operations turn on seq mode automatically when they can

vips_operation_get_flags() added: lets you attach a set of flags to an
operation

flags for now are "nocache" (replacing the old nocache system) and "seqential"

if vips_object_set_argument_from_string() from string sees "seq" flag on the
object for which it is setting the arg, it enables sequential mode

all operations which can run sequentially have been tagged

the operation printer knows about flags and can display them
2012-07-10 10:51:40 +01:00
John Cupitt 8c6e3738dd fix up ordering issues in seq mode
read order should be guaranteed now, hopefully
2012-02-20 15:03:29 +00:00
John Cupitt 47fdd3ae6d new tiff writer builds 2011-12-02 18:21:55 +00:00
John Cupitt 56fb2126b8 rename VipsFile as VipsForeign 2011-11-29 11:43:08 +00:00
John Cupitt dd14948652 new-style jpeg save works 2011-11-25 14:34:17 +00:00
John Cupitt 2c641c6644 sync 2011-11-24 14:53:30 +00:00
John Cupitt 0addd7fb6d c2real(), c2imag() -> classes 2011-11-21 14:38:11 +00:00
John Cupitt 187212768d add class for complex ops
and it does conj as well
2011-11-19 11:24:04 +00:00
John Cupitt a31c7d8caf added math2, various 2ary math ops 2011-11-13 17:45:27 +00:00
John Cupitt 2d30264840 redo boolean as a class 2011-11-12 14:11:46 +00:00