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