Commit Graph

959 Commits

Author SHA1 Message Date
John Cupitt d351e07a6b finish up 2016-03-10 17:33:34 +00:00
John Cupitt a26291a426 reducehl3 is done
sort of anyway, tinkering with optimization
2016-03-09 22:47:02 +00:00
John Cupitt 25c3c49d1c better handling of cast+shift for non-int formats
before, im.cast(uchar, shift = true) where im was float and tagged as
rgb16 would not shift the image, since it's unclear how much to shift a float
type by

now we do two casts: first, we guess the numeric range from the
interpretation, so rgb16 would be ushort, so we cast float->ushort;
second, we cast to the target type and do the shift on the way

see https://github.com/jcupitt/libvips/issues/397

thanks apacheark
2016-03-01 11:31:54 +00:00
John Cupitt ee1874c5ca much better handling of arrayimage cli args
we were not setting the access hint on arrayimage args, so

arrayjoin "$(echo *.jpg)" x.tif[bigtiff] --across 10

would open all the jpg images to memory, usually, in random mode

now arrayimage args see the operation's access hint (seq in this case),
for much better behaviour

also, we allow any whitespace as an arg separator in arrayimage from
string
2016-02-27 20:37:20 +00:00
John Cupitt 840c3f2e63 oops typo
thanks Lovell
2016-02-22 14:08:36 +00:00
John Cupitt 9262d672b7 almost done
a valgrind failure still
2016-02-12 10:53:04 +00:00
John Cupitt bd985731eb unpremultiply svgload / pdfload
cairo uses premultipled ARGB, we need to undo this for transparency to
work correctly
2016-02-11 09:06:09 +00:00
John Cupitt 153886d2eb add svgload
load from bubffer is not working though, strange ... it seems to be
generating a 16-biit image?
2016-02-09 11:01:12 +00:00
John Cupitt 991cc4f88b rename as pdfload 2016-02-08 20:25:03 +00:00
John Cupitt bff4157773 add load pdf from buffer 2016-02-08 17:48:18 +00:00
John Cupitt adfd25a5ed byteswap popplerload
and better path absoluteization
2016-02-08 16:37:47 +00:00
John Cupitt 69c2fe00f7 add C API and docs for popplerload 2016-02-08 10:05:37 +00:00
John Cupitt 3e78bdb6a9 reduceh is working! 2016-01-27 14:34:06 +00:00
John Cupitt 8b09c86492 add cubich interp., start reduceh 2016-01-27 11:12:36 +00:00
John Cupitt 4d18300560 add VIPS_FABS/MAX/MIN/CLIP
macros which use the gcc __builtin_fabs() etc. functions when they can
2016-01-26 12:26:21 +00:00
Lovell Fuller 0cac224431 Replace use of "Duff's device" with for-loop to allow compiler to optimise.
Reduces CPU instruction count of conv_gen function by ~30%.
Improves performance of convolution operation by 20-25%.
2016-01-25 21:17:41 +00:00
John Cupitt a7d889df06 use builtin floor / ceil
get rid of FAST_PSEUDO_FLOOR, add VIPS_FLOOR and VIPS_CEIL, use them
everywhere

see https://github.com/jcupitt/libvips/pull/372
2016-01-23 09:50:57 +00:00
Lovell Fuller 90c1fb9a94 Use gcc/clang isnan and isinf builtin functions where available.
These are used heavily in the building of look-up tables at
start-up time and therefore improve vipsthumbnail perf by ~4%.
2016-01-20 19:02:14 +00:00
John Cupitt 69d10ea4b2 add C decls for bandjoin_const
oops, forgot them
2015-12-30 16:30:56 +00:00
Eric Corriel 630f8bb02b fixing typo, should be IFDEF 2015-12-27 20:39:55 -05:00
John Cupitt 73436ddfc2 add @properties flag to tiffsave
writes all vips metadata to imagedescription tag
2015-12-21 14:43:59 +00:00
John Cupitt 0deb640bc4 load and save TIFFTAG_IMAGEDESCRIPTION
this often has useful metadata in, for example the OME spec has all the
metadata in there as an XML document

see https://github.com/jcupitt/libvips/issues/358
2015-12-21 13:53:33 +00:00
John Cupitt 6e9834e623 add vips_arrayjoin() 2015-12-11 15:14:08 +00:00
John Cupitt 1504ca7cdc have a more formal max image dimension
we now have VIPS_MAX_COORD for maximum image dimension, set to 10m
pixels ... we could go up to 2bn, but 10m seems a reasonable max, at
least for now

see https://github.com/jcupitt/libvips/issues/355
2015-12-03 12:14:39 +00:00
John Cupitt 2409767679 add vips_image_new_from_memory_copy()
takes a copy of a memory area when making an image ... this helps bindings
for languages which don't have much control over memory

see https://github.com/jcupitt/libvips/issues/346
2015-11-25 17:05:59 +00:00
John Cupitt cdccf01c46 rename as mapim 2015-11-16 20:32:48 +00:00
John Cupitt 8e6ed3ef30 compiles 2015-11-16 14:58:51 +00:00
John Cupitt d32bc97ccb start hacking it in 2015-11-16 11:08:10 +00:00
John Cupitt 9cb2674a77 now works woo
python interface plus test and benchmark to go

update c++ too I guess

oh docs as well sigh
2015-11-07 18:47:02 +00:00
John Cupitt 11ce13d43d enable new shrink code
2x faster, much lower memuse
2015-10-31 12:15:48 +00:00
John Cupitt 582a7f1810 shrink2 now done
big mem saving, still a bit slower though
2015-10-31 10:43:08 +00:00
John Cupitt da8f236f95 try a split shrink
not quite done yet
2015-10-30 18:15:14 +00:00
John Cupitt 5160010eda add vips_array_image_empty()/_append()
to help bindings without init from array
2015-10-25 17:15:45 +00:00
John Cupitt 36617bd2e4 added vips_blob_copy()
helps ruby-vips8
2015-10-24 11:12:08 +01:00
John Cupitt 2b46b7e889 many more const decls
ruby gobject-introspection is quite fussy about needing a lot of const
declarations ... these changes help vips_image_matrix_from_array()
appear in Ruby
2015-10-23 11:45:11 +01:00
John Cupitt 4d95f4512c Merge branch '8.1'
Conflicts:
	ChangeLog
	configure.ac
	doc/libvips-docs.xml
2015-10-13 14:47:37 +01:00
John Cupitt 368a74abcd better vips7 filename splitting
helps windows, see https://github.com/jcupitt/build-win32/issues/11

also add some tests
2015-10-13 10:29:53 +01:00
John Cupitt b8a28f1a8d add vips7 wrapper for magickload_buffer
see https://github.com/jcupitt/ruby-vips/issues/69
2015-10-07 14:48:32 +01:00
John Cupitt 3b75d90174 copy photoshop data in tiff load/save
well, try anyway, it might work

see https://github.com/jcupitt/libvips/issues/332
2015-09-29 18:02:30 +01:00
John Cupitt 75a0b5b789 add vips_entropy()
calculates image entropy from a histogram
2015-08-11 14:00:43 +01:00
John Cupitt 69fc2c1b7c getting closer ...
fix RefString handling, add a test case
2015-07-16 11:14:33 +01:00
John Cupitt a42232a9a1 boilerplate for hsv colourspace 2015-06-09 10:18:30 +01:00
John Cupitt e9720afb18 add vips_bandfold()/vips_bandunfold()
was part of vips_copy(), but it was very ugly there
2015-06-05 14:52:05 +01:00
John Cupitt dbd852211e move bytw swapping out to vips_byteswap()
it was an option to vips_copy(), ugly!
2015-06-05 13:56:26 +01:00
John Cupitt 5cb2239d7d try to support DOS ppm/csv files on linux
swap \r\n for \n in vips__fgetc()
2015-06-04 12:58:30 +01:00
John Cupitt c35e2e5427 add RefString getter
to python now unpacks VipsRefString on get_value()
2015-06-02 13:32:48 +01:00
John Cupitt 472bf7dbc3 add vips_unpremultiply() 2015-05-08 10:26:23 +01:00
John Cupitt 66c51b7d23 add an experimental premultiply operation 2015-05-07 23:42:02 +01:00
John Cupitt dbdcf91171 remove some stray decls
see https://github.com/jcupitt/libvips/issues/288

version bump as well
2015-05-04 19:41:08 +01:00
John Cupitt 6c6d0d6b78 fix some compiler warnings 2015-04-25 17:39:16 +01:00
John Cupitt a00db6c8f1 doc cleanups 2015-04-24 12:49:50 +01:00
John Cupitt 42efce5c66 fix various typos
thanks dg1727

see https://github.com/jcupitt/libvips/issues/277
2015-04-21 18:39:02 +01:00
John Cupitt e0a5d28100 add vips_vipsload() vips_vipssave() to C API
we didn't have these in the C API before, for some reason
2015-04-21 14:29:44 +01:00
John Cupitt 7495690cd6 remove vips__image_sizeof_bandformat
we had main API macros which used an array behind the scenes,
vips__image_sizeof_bandformat[]. Swap this for a function,
vips_format_sizeof(), to help DLLs.

the array symbol is still there for compatibility
2015-04-20 14:18:17 +01:00
John Cupitt 24084aed85 Merge branch 'add-copy-to-memory' 2015-04-19 11:13:15 +01:00
John Cupitt 54c37e7e0d add copy-to-memory
try to make a threadsafe vips_image_wio_input()
2015-04-19 09:45:20 +01:00
John Cupitt a5a3b062fc support saving 1 and 2 band images to webp
see https://github.com/jcupitt/libvips/issues/267

libwebp does not supportG and GA images

make a new SAVEABLE type for savers which only do RGB and RGBA
2015-04-17 16:59:28 +01:00
John Cupitt a0aacad871 much better convert to greyscale
mix RGB channels as .2, .7, .1 in linear light

see https://github.com/jcupitt/libvips/issues/266
2015-04-17 11:33:27 +01:00
John Cupitt 339f268200 add some API for args, fix a docs messup 2015-03-02 22:02:33 +00:00
John Cupitt 9e0bf03c64 Merge pull request #240 from mcuelenaere/foreign_is_a_buffer
Add vips_foreign_is_a_buffer() method
2015-02-27 11:44:58 +00:00
John Cupitt 044bdf38d1 more doc tweaks 2015-02-18 16:32:30 +00:00
John Cupitt 377075fe05 Merge branch 'new-tiff-save' of github.com:jcupitt/libvips into new-tiff-save
Conflicts:
	ChangeLog
	libvips/foreign/vips2tiff.c
2015-02-16 21:27:00 +00:00
Maurus Cuelenaere dba1b1d81b Add ImageMagick buffer support
This commits adds buffer support for the ImageMagick backend, using the Blob
API.
2015-02-15 21:45:17 +01:00
John Cupitt 800208ec3a more tinkering 2015-02-15 17:44:56 +00:00
Maurus Cuelenaere 3d067af889 Add vips_foreign_is_a_buffer() method
This commits adds a vips_foreign_is_a_buffer() method, similar to
vips_foreign_is_a().
2015-02-15 16:31:29 +01:00
John Cupitt 9d11c02e35 version bump 2015-02-06 13:39:39 +00:00
John Cupitt eb5fee5e65 add lower-level cache access 2015-02-01 17:56:48 +00:00
John Cupitt 29d073c04c now compiles cleanly with -Wstrict-prototypes
some downstream packages were seeing lots of spurious warnings
2015-01-21 09:02:56 +00:00
John Cupitt eda4ed64f1 rename _!PIXEL etc. to help bindings
ruby gobject-introspection hates numbers at the start of _ separated
names
2015-01-07 14:22:13 +00:00
John Cupitt ad6f42c869 remove dead proto
vips_draw_line_mask() was never implemented .. use
vips__draw_line_direct() instead.
2015-01-02 21:34:34 +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
John Cupitt 384a5e05dc change parameters of vips_gaussblur()
sorry :-(

The old param (passing sigma*2 as an int) were just too confusing
coming from other packages. This new behaviour matches ImageMagick, and
almost everyone else in the world.

A new optional param lets you set the minimum amplitude as well.
2014-11-19 12:27:26 +00:00
John Cupitt 589e15b8a4 better vips_resize() 2014-11-18 18:37:19 +00:00
John Cupitt dda412c85f add command-line option parsing to python 2014-11-18 11:29:32 +00:00
John Cupitt 394149e9e8 fix all docs warnings 2014-11-17 10:32:40 +00:00
John Cupitt d25beeddac remove wrap7 class
and pyvips8 now knows about deprecated args and ops
2014-11-14 22:41:05 +00:00
John Cupitt 6a25b04974 better docstrings
you now see:

class_method(cls, *args, **kwargs) method of gi.types.GObjectMeta
instance
    make a black image
    usage:
       out = Vips.Image.black(width, height, bands = gint)

    where:
       out        - Output image, VipsImage

    required parameters:
       width      - Image width in pixels, gint
       height     - Image height in pixels, gint

    optional parameters:
       bands      - Number of bands in image, gint
2014-11-13 14:37:59 +00:00
John Cupitt be4ffa6d8a more pyvips8 docs
and cleanups of various small doc markup errors
2014-11-07 14:49:18 +00:00
John Cupitt 266e120676 new C++ interface works!
phew
2014-10-27 12:57:28 +00:00
John Cupitt 620bff2d78 allow symbolic names for flags
you can now use numbers or names for GFlags values, eg.:

$ vips copy 50020484-00001.png x.png[filter=avg]
$ vips copy 50020484-00001.png x.png[filter=64]

was numbers only before
2014-10-27 11:40:43 +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 952241a426 more cplusplus hackery 2014-10-21 14:55:38 +01:00
John Cupitt 904803510d box/unbox hooks in C API
should help us pass C++ objects as args
2014-10-21 09:27:34 +01:00
John Cupitt f2898a8e3b more C++ hacking 2014-10-20 14:54:03 +01:00
John Cupitt ad86f45cd9 add autorot as an operator as well 2014-10-19 10:35:10 +01:00
John Cupitt 14d7ce1e91 first try, not very good 2014-10-16 19:16:45 +01:00
John Cupitt ca2ae681cd add --with-gmic configure option 2014-10-07 14:54:53 +01:00
John Cupitt 3788c85e54 gmic uses an imagevec for input images 2014-10-06 21:52:27 +01:00
John Cupitt ae7d81d748 update cimg, integrate gmic
try:

$ vips gmic 1 x.jpg 20 1 1 --in0 k2.jpg -- "-blur 10"

output is black, but it does seem to almost work
2014-10-06 14:37:44 +01:00
John Cupitt ecc8f62f6c tiny fix 2014-09-30 13:34:59 +01:00
John Cupitt 154796a8dc rename VIPS_ANGLE_0 as VIPS_ANGLE_D0
and other similar cases

VIPS_ANGLE_0 becomes Vips.Angle.0 in Python, which is very inconvenient, so we
rename ... the D stands for degrees, I think
2014-09-29 13:56:55 +01:00
John Cupitt e458365970 use vips__substitute() more
should probably remove vips_snprintf() from a few more places
2014-09-27 11:37:28 +01:00
John Cupitt d7083d7a03 make arrayimage ref/unref 2014-09-23 14:38:46 +01:00
John Cupitt 1e6cd1b1a5 clean up length return
read file to mem was using uint for length for historical reasons
2014-09-18 10:19:24 +01:00
John Cupitt de594151a5 rename NOTEQUAL as NOTEQ
since <= is LESSEQ

python has some relational overloads now
2014-09-16 17:25:20 +01:00
John Cupitt c4a3e9a1a0 add VIPS_ARGUMENT_MODIFY
a flag for arguments meaning the operator will modify an input

the python binding uses this to take a copy of the arg before calling
2014-09-15 14:47:34 +01:00
John Cupitt b21c47b1c5 add @background arg to save
used to flatten A out of images, if necessary

vipsthumbnail rtd-img.png -o x.jpg[background=255]
2014-09-11 09:18:38 +01:00
John Cupitt 84e55b86e6 added class methods to python
we now have Vips.Image.black(w, h), woo
2014-09-08 14:53:37 +01:00
John Cupitt 6f8b5c6745 bring the rest of the API into python 2014-09-05 23:18:16 +01:00
John Cupitt 751982d9f0 add make vips matrix from python array 2014-09-05 14:53:05 +01:00