Commit Graph

561 Commits

Author SHA1 Message Date
John Cupitt dd5a108854 fix up new seq mode stuff
seems to work
2017-03-05 21:59:53 +00:00
John Cupitt 55840cf131 try setting a seq meta
and only caching in shrinkv if we see the tag
2017-03-05 21:59:01 +00:00
John Cupitt 20f99b62cf more ideas 2017-03-05 21:59:01 +00:00
John Cupitt e6b20cbd0f Revert "remove stalling"
This reverts commit 959f412380.
2017-02-27 10:26:32 +00:00
John Cupitt e7ae10ef68 Revert "more UNBUF fixes"
This reverts commit a4d3c2a754.
2017-02-27 10:25:41 +00:00
John Cupitt 6cbda61ec1 fix thumbnail crop on rotated images
crop after rotate so we don't need to rotate the crop box

thanks ElHeineken!

see https://github.com/jcupitt/libvips/issues/608
2017-02-23 20:26:59 +00:00
John Cupitt a4d3c2a754 more UNBUF fixes
try to keep compat better, remove the single-thread-first-tile idea
2017-02-21 16:53:48 +00:00
John Cupitt 959f412380 remove stalling 2017-02-21 15:03:15 +00:00
John Cupitt 646960077d fix cache hint for shrink
shrink had UNBUFFERED as a cache hint, but for non-int shrinks it used
affine, so you could get out of order reads

set regular SEQ as the cache hint, and switch to reduce for the final
resize in the non-int case

see https://github.com/jcupitt/libvips/issues/596
2017-02-09 09:10:03 +00:00
John Cupitt b140c18a37 various tweaks to calm coverity
passes cleanly now
2017-01-20 08:55:13 +00:00
John Cupitt fb88d037fc Merge branch 'master' into add-thumbnail-geometry 2017-01-17 11:51:10 +00:00
John Cupitt 6b325145e4 use new hints and prepare everywhere 2017-01-12 14:36:44 +00:00
John Cupitt c5e675f7db fix --vips-cache-max etc.
--vips-cache-max, --vips-cache-max-memory and --vips-cache-max-files were not
working and probably hadn't been for a while

vipsthumbnail.c turns off the operation cache, it's not useful for
the same operation repeated across many files
2017-01-10 14:12:24 +00:00
John Cupitt 2fa3736722 all done, I think 2017-01-06 13:43:43 +00:00
John Cupitt 2be0b97dce switch to g_warning()_/g_info()
we had vips_warn() and vips_info(), but they are a bit crappy ... switch
to g_warning() and g_info() instead

see https://github.com/jcupitt/libvips/issues/544
2017-01-03 15:52:27 +00:00
John Cupitt 5644296b1c expand intro to resample 2016-11-21 13:10:06 +00:00
John Cupitt 7d0c821a6e add tests for thumbnail 2016-11-02 13:51:09 +00:00
John Cupitt 0faedcd088 docs done 2016-11-02 11:19:08 +00:00
John Cupitt d4b4eb44a3 works! 2016-11-02 11:07:30 +00:00
John Cupitt efe824ec13 compiles! 2016-11-02 09:29:19 +00:00
John Cupitt b7dd72e166 start hacking 2016-10-31 11:14:54 +00:00
John Cupitt d3cafb3a9f seems to work
add @centre option for downsampling, see

https://github.com/jcupitt/libvips/issues/504
2016-09-10 10:31:33 +01:00
John Cupitt 1e9cdef615 try centre sampling option 2016-09-09 14:51:45 +01:00
John Cupitt 271d8656e9 use round() rather than rint() where appropriate
rint() rounds to nearest even, rather than nearest ... in some cases,
like geometry transforms, we want strict nearest
2016-08-20 12:59:41 +01:00
John Cupitt 1f403a4add first attempt
seems to all work, test it a bit more

see https://github.com/jcupitt/libvips/issues/491
2016-08-15 15:45:26 +01:00
John Cupitt 2e8f14c6a5 Merge branch 'master' into rewrite-convf 2016-08-01 15:08:45 +01:00
John Cupitt b6768a7e0f small speedup for reduceh 2016-08-01 12:04:15 +01:00
John Cupitt 23d9bad581 doc improvements 2016-07-13 09:24:41 +01:00
John Cupitt 097ecd07c1 doc improvements 2016-07-13 07:06:43 +01:00
John Cupitt 0c2259d34b improve similarity docs
rotation direction was wrong, add type comments

https://github.com/jcupitt/libvips/issues/475
2016-06-28 17:07:14 +01:00
John Cupitt bd7bad1916 almost done vector path 2016-06-28 11:07:20 +01:00
John Cupitt 65105a9442 upsize with something other than nearest
vips_resize() uses to just use nearest when upsizing, following standard
practice in repro. This is often unfortunate for image processing, where
small nearest upsizes will produce obvious aliasing.

It now picks a VipsInterpolate which corresponds (roughly) to the
selected VipsKernel and uses that with affine for any upsizing.
2016-06-22 10:33:08 +01:00
John Cupitt f3326c8126 better vips_resize() for cubic/linear/nearest
vips_resize() used to do most of a downsize with vips_shrink() and the
final 200 - 300% with vips_reduce(). This was correct for lanczos2/3,
but not right for linear/cubic, which need more shrink and less
reduce to avoid aliasing.

This patch makes vips_resize() leave the final 100 - 200% to
vips_reduce() for linear/cubic, and leave everything to reduce for
nearest.
2016-06-16 09:46:02 +01:00
John Cupitt a5bef08d4a better reducev multiplication
more accurate, no slower

add more tests too
2016-06-15 13:56:19 +01:00
John Cupitt 948d1103d4 note more webp tests needed 2016-05-07 19:53:00 +01:00
John Cupitt 1ae92bb15f make optional args into bullets
make docs easier to read
2016-05-02 10:12:37 +01:00
John Cupitt 02821ae9e3 expose @kernel setting for vips_resize()
a new optional arg lets you pick the downsizing kernel
2016-05-01 12:33:49 +01:00
John Cupitt c2d1de9a26 allow mixed zoom and shrink in resize
vips_resize() now allows >1 on one axis, <1 on the other ... previously,
although you could have non-square ratios, you couldn't mix zoom and
shrink
2016-05-01 12:03:13 +01:00
John Cupitt 65b9ced6e9 improve arg order
more consistent
2016-04-11 13:23:25 +01:00
John Cupitt 269cbb8641 better mask sizing for lanczos 2016-04-11 13:19:00 +01:00
John Cupitt 511a0a7da5 better rounding in reducev orc path 2016-04-10 17:52:51 +01:00
John Cupitt 8aa4566c87 update notes 2016-04-02 20:24:54 +01:00
John Cupitt bc320f1090 much better int mask creation
removes some banding from the orc path for reducev
2016-04-02 18:46:10 +01:00
John Cupitt 3115310bb7 fix no-orc builds 2016-03-26 10:45:31 +00:00
John Cupitt 2ab14a3590 better rounding in vector reducev
add before downshift to round to nearest on 16->8 fixed-point conversion
2016-03-25 06:07:58 +00:00
John Cupitt ec5cdf4fff Merge branch '8.2' 2016-03-24 16:09:44 +00:00
John Cupitt 72ea91fecc fix nohalo, vsqbs interpolators
we were getting occasional memory access problems in nohalo and vsqbs
interpolators ... the previous fix was not enough

version bump
2016-03-24 16:06:31 +00:00
John Cupitt 36e0b60ffa put the resize cache back again
stops overcomputation on vips_shrink()
2016-03-22 14:35:44 +00:00
John Cupitt 3c98ba78a0 small experiment 2016-03-22 14:19:32 +00:00
John Cupitt e8b5cb6c23 add VIPS_COUNT_PIXELS, overcomputation tracking
added VIPS_COUNT_PIXELS(), use like this:

	static int vips_shrinkh_gen( VipsRegion *or, ... )
	{
        	VIPS_COUNT_PIXELS( or, "vips_shrinkh_gen" );
	}

and on image close, if more than 100% of the pixels have been
calculated, you get a warning

only if you enable debugging, since this hurts perf slightly
2016-03-22 12:26:45 +00:00
John Cupitt 4f8aca3a93 sync 2016-03-21 16:40:55 +00:00
John Cupitt c2035eb0f0 similarity uses reduce more often 2016-03-21 14:18:01 +00:00
John Cupitt 063706f300 notes 2016-03-21 11:11:27 +00:00
John Cupitt ba3ae9e671 finished!
fix up preciscion and signedness issues, simpler inner loop
2016-03-21 11:08:38 +00:00
John Cupitt 57cba39607 switch to 2.6 bits
almost working
2016-03-20 22:29:25 +00:00
John Cupitt 74984f1049 off by one error
didn't always write the output
2016-03-19 10:37:02 +00:00
John Cupitt 05156edd15 add orc path for reducev
works, but still not quite right, see some banding
2016-03-18 17:41:51 +00:00
John Cupitt c20eb9dca0 remove old unrolled case for reduce
not used any more
2016-03-15 17:34:31 +00:00
John Cupitt 46a18118c6 works! 2016-03-15 16:46:18 +00:00
John Cupitt ff88087a28 try making the reduce mask larger with residual 2016-03-15 14:59:59 +00:00
John Cupitt 45c3fea6ac more resize tuning 2016-03-15 09:49:30 +00:00
John Cupitt ac4e5ce059 return of shrink-less-affine-more
though a bit less extreme
2016-03-14 14:58:02 +00:00
John Cupitt 82cecf3d9f bilinear interp. supports complex types
in line with cubic etc.
2016-03-14 10:06:45 +00:00
John Cupitt fba2ac2f85 fix sizing issues with new reduce code
a couple of bugs and some changed conventions
2016-03-13 17:44:24 +00:00
John Cupitt f12fef4aa9 fix compile 2016-03-13 11:35:35 +00:00
John Cupitt dc7902b12f Merge branch 'master' into add-lanczos3 2016-03-13 11:23:03 +00:00
John Cupitt 70db9aa77b better rounding in resize 2016-03-12 13:14:34 +00:00
John Cupitt 493482c8a7 hey ho, line cache goes back too 2016-03-11 14:56:06 +00:00
John Cupitt 08e8c27e38 moore vips_resize() tuning
put back the mild post-shrink sharpen, a little more anti-alias

see https://github.com/jcupitt/libvips/issues/404#issuecomment-195297607
2016-03-11 10:17:41 +00:00
John Cupitt 5d31d8e824 turn up anti-alias for small shrinks
a little more anti-alias for small reductions

see https://github.com/jcupitt/libvips/issues/404#issuecomment-195276154
2016-03-11 09:25:33 +00:00
John Cupitt 2ca7b29214 better gauss mat generation 2016-03-10 22:01:55 +00:00
John Cupitt 4974a1ed9c better rounding for vips_resize()
we were getting off by one size errors
2016-03-10 19:53:05 +00:00
John Cupitt d351e07a6b finish up 2016-03-10 17:33:34 +00:00
John Cupitt e9bf936377 finish vl3
but it's still not producing identical results to reducev, seems to be
offset by one?
2016-03-10 12:16:21 +00:00
John Cupitt 4d10bd12f9 still trying to get reducevl3 to vectorise 2016-03-10 10:24:44 +00:00
John Cupitt 013102de01 finish hl3 version
vl3 nest
2016-03-10 08:43:50 +00:00
John Cupitt a26291a426 reducehl3 is done
sort of anyway, tinkering with optimization
2016-03-09 22:47:02 +00:00
John Cupitt dcd921d7bf silly travis 2016-03-09 13:06:03 +00:00
John Cupitt e9728e389b first commit 2016-03-09 12:56:30 +00:00
John Cupitt ad7ddc4f24 more vips_resize() tuning
now we have better tuning for the anti-alias blur, we can increase the
amount we shrink by and reduce the amount we affine by

this gives a noticable speedup
2016-03-01 11:19:30 +00:00
John Cupitt 8cffd136e9 finish reduce
and fix up bicubic a bit, it works better on int32 images now
2016-02-07 17:41:39 +00:00
John Cupitt 67f3ecfd8d wire up to resize / similarity
still need tests
2016-01-29 15:23:00 +00:00
John Cupitt fbe010b80a in-line reduceh as well 2016-01-29 15:01:54 +00:00
John Cupitt dd7b30bd00 in-line reducev
bit quicker
2016-01-29 13:16:00 +00:00
John Cupitt 3bb24f2567 some tinkering
still not very quick
2016-01-28 09:33:32 +00:00
John Cupitt 4b2349323c all working
though not as quick as hoped :(
2016-01-27 21:59:07 +00:00
John Cupitt 991349c9a7 add cubicv, reducev
untested
2016-01-27 15:01:54 +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 1f93efd65d fix more compiler warnings 2016-01-26 16:41:03 +00:00
John Cupitt db20d70495 fix some more compiler warnings
and a bit of formatting
2016-01-26 15:10:46 +00:00
John Cupitt 07a1903390 use g_assert_not_reached()
we were using g_assert(0) ... g_assert_not_reached() makes the
intention clearer
2016-01-24 13:21:53 +00:00
John Cupitt 31e4168718 clip bicubic output range from int
The output range of the bicubic interpolator is outside the input range,
we must clip from a larger type.

See https://github.com/jcupitt/libvips/pull/372
2016-01-23 10:09:11 +00:00
John Cupitt 0dd7f14ada put interpolate param back
Although no current interpolators use the interpolate param, having it
there makes it possible for other (perhaps user-defined) interpolators
to be parameterised.

For example, you could write:

	vips affine in.v out.v "2 0 0 2" --interpolate sharp[2]

and `sharp` could do a bicubic and sharpen by 2 in a single operation.

See https://github.com/jcupitt/libvips/pull/372
2016-01-23 09:57:27 +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 25eeb82de6 Consolidate FAST_PSEUDO_FLOOR macros, prefer __builtin_floor if available
Use of vips_interpolate_get_method avoids need to pass interpolate instance
Remove an unnecessary temp variable to help prevent register starvation

5% less time in vips_interpolate_bicubic_interpolate
10% less time in vips_affine_gen
2016-01-22 22:26:29 +00:00
John Cupitt 9b968491d3 unroll shrinkh inner loop
use VIPS_UNROLL for the inner loop, another 5% or so
2016-01-22 10:21:38 +00:00
John Cupitt dce70c82a5 vectorise vips_shrinkh()
add special paths for 1, 3 and 4 bands so we can vectorise

see https://github.com/jcupitt/libvips/pull/369
2016-01-22 09:49:20 +00:00
John Cupitt 2e5880b69c speed up for vips_shrinkh()
remove the sum buffer, we can just use a local, about 5% faster

see https://github.com/jcupitt/libvips/pull/369
2016-01-22 09:15:38 +00:00
Lovell Fuller 572354b793 Allow compiler to vectorise vips_shrinkh
Reduce for-loop count in shrinkh macros
Don't access loop variable outside loop
Remove unnecessary use of ceil from integer
2016-01-21 20:18:56 +00:00
John Cupitt 4512400a3c better rounding in new bilinear interp
was off by 0.5
2016-01-14 13:13:08 +00:00
John Cupitt e40a3d166e oops 2015-12-17 13:49:39 +00:00
John Cupitt fb084ef6a6 working 2015-12-17 13:43:34 +00:00
John Cupitt 7068fbb20b new bilinear interpolator 2015-12-16 14:48:00 +00:00
John Cupitt 3570f61f3d Merge branch 'master' of github.com:jcupitt/libvips 2015-12-04 07:28:52 +00:00
John Cupitt 848adca836 fix an off-by-one error in mapim 2015-12-02 16:09:39 +00:00
John Cupitt d42caca820 Merge branch 'master' of github.com:jcupitt/libvips 2015-11-24 14:54:29 +00:00
John Cupitt c79e77438f add restrict tags 2015-11-24 14:53:40 +00:00
John Cupitt 18baf40b1a fix mapim typo
oops! typo ... also an off-by-one issue for larger stencils

more error checking in interpolators

fix rounding in nohalo/lbb ... they were rounding to nearest in the
interpolator, rather than using floor. This broke assumptions about
stencil position elsewhere. The right way to do centre convention is to offset
the whole input by 0.5 pixels.
2015-11-22 10:29:45 +00:00
John Cupitt 2620f3b8c9 allow non-square vips_resize()
in a very crude way
2015-11-19 17:09:18 +00:00
John Cupitt 8506ff13a6 try to improve vips_resize() quality
small improvements to vips_resize() quality:

* turn down the anti-alias filter a little so we don't smudge out texture
* don't do the final sharpening pass if we skipped the anti-alias filter
* fix a >/>= mixup which meant we didn't sharpen for small resizes
2015-11-19 15:22:23 +00:00
John Cupitt 743b21e83e fix off by 1 error 2015-11-19 13:25:52 +00:00
John Cupitt cdccf01c46 rename as mapim 2015-11-16 20:32:48 +00:00
John Cupitt c858066fe0 works, but needs testing 2015-11-16 20:09:27 +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 4c51f5b36d tune cache sizes a bit more 2015-11-11 13:00:25 +00:00
John Cupitt d94a2807c9 smarter cache sizing for vips_resize
see comment in code, should now account for max delay possible
2015-11-11 10:23:50 +00:00
John Cupitt 30a3d2f7fa fix shrink with non-int args
fix a silly bug, add a test
2015-11-04 12:00:49 +00:00
John Cupitt d126a733a0 better rgb16/grey16 conversion
things like float tagged as rgb16 did not save well as png ... new
conversion rules should help

see https://github.com/jcupitt/libvips/issues/344
2015-11-04 11:34:52 +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 ceb1b96d06 note that quadratic is unfinished 2015-10-08 17:40:37 +01:00
John Cupitt d88dd1ab72 fix a few coverity issues
a couple of minor bugs, and a lot of warnings
2015-09-30 09:54:50 +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 a345a517c1 add docs note
note that when resizing, xres/yres need to be updated by the application
2015-02-25 08:47:45 +00:00
John Cupitt ffbb259c86 C++ oops, see
346a9e70c0
2015-02-09 18:56:47 +00:00
John Cupitt 346a9e70c0 remove --disable-cxx flag
it was getting too hard to support :( automake now generates libtool
lines before configure runs, so it can't know we don't want a C++ link

see https://github.com/jcupitt/libvips/issues/231
2015-02-07 10:37:13 +00:00
John Cupitt 57196ee702 fix an operation cache bug
when testing two operations for equality, need to check that both had an
optional arg set before testing the value
2015-01-29 13:47:14 +00:00
Lovell Fuller 8fbe8c36fa Resize builder uses 7 temp images
Prevents memory leak and possible segfault
2015-01-22 13:27:52 +00:00
John Cupitt d9709119fa oop, leak in vips_resize()
see https://github.com/jcupitt/libvips/issues/217
2015-01-21 13:17:39 +00:00
John Cupitt 0eca68a088 fix vips_resize() C API
oops, see https://github.com/jcupitt/libvips/issues/223
2015-01-21 09:05:36 +00:00
John Cupitt 7b76120d78 oop, fix leak in affine
see: https://github.com/jcupitt/libvips/issues/217
2015-01-13 10:05:27 +00:00
John Cupitt a7a025707a fix default interpolator in similarity
was not defaulting correctly
2014-12-10 17:32:56 +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 2a4f56ff9f notes 2014-11-19 09:51:52 +00:00
John Cupitt 77d5bd8d08 add sharpening step to vips_resize() 2014-11-18 21:39:29 +00:00
John Cupitt 589e15b8a4 better vips_resize() 2014-11-18 18:37:19 +00:00
John Cupitt 394149e9e8 fix all docs warnings 2014-11-17 10:32:40 +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 927b2d7954 remove cimg and gmic
move this to a plugin, it's too big for the core library
2014-10-08 17:51:07 +01:00
John Cupitt 6f8b5c6745 bring the rest of the API into python 2014-09-05 23:18:16 +01:00
John Cupitt 31f969abec oops, fix without-cxx compilation
see

https://github.com/jcupitt/libvips/issues/155

thanks Andrea
2014-08-17 18:12:48 +01:00
John Cupitt 2e2809a6b4 Merge remote-tracking branch 'origin/7.40'
Conflicts:
	ChangeLog
2014-08-17 10:00:03 +01:00
John Cupitt 0b896119d4 fix similarity rotate + scale
thanks Topochicho

see https://github.com/jcupitt/libvips/issues/154
2014-08-13 17:44:29 +01:00
John Cupitt fe7bd9bdcc add vips_resize()
a wrapper over affine that just scales ... much faster from the
command-line, since it can set SEQ mode
2014-08-13 13:57:52 +01:00
John Cupitt b24cbb492c Merge remote-tracking branch 'origin/7.40'
Conflicts:
	ChangeLog
	TODO
	configure.ac
	libvips/foreign/vipspng.c
2014-08-12 13:41:52 +01:00
John Cupitt 2b086cfe6e add signed int bicubic path
better rounding for 8- and 16-bit signed int bicubic
2014-08-07 10:13:08 +01:00
John Cupitt ebeee822bc better rounding behaviour for bicubic
fixed-point bicubic was not rounding to nearest, introducing some noise
in flat areas
2014-08-05 10:02:11 +01:00
John Cupitt e4996d8dce don't set shrink too low 2014-08-04 21:25:19 +01:00
John Cupitt ecd771cde7 Merge branch 'affine-bug'
Conflicts:
	libvips/resample/transform.c
2014-08-01 16:35:59 +01:00
John Cupitt 274e6c1b2b revise affine, yet again
how can this be so hard

the tougher self-tests in nip2/test/extras now all pass
2014-08-01 16:34:09 +01:00
John Cupitt 0bb8a218bb exit() in fewer cases
we now only exit() when we know the stack has been trashed, just warn in
other cases
2014-07-29 15:23:27 +01:00
John Cupitt 32a8fe117e start working on --disable-deprecated
need to move im_conv() etc to classes to finish this
2014-07-25 18:06:52 +01:00
John Cupitt 1a8dd2f299 fix affine identity transform with clipping 2014-07-08 17:09:42 +01:00
John Cupitt 0e68067a82 oops dropped a patch 2014-06-18 14:08:41 +01:00
John Cupitt 84d65c1727 Merge branch '7.38'
Conflicts:
	libvips/resample/affine.c
2014-06-18 13:48:08 +01:00
John Cupitt 5e57c13af7 fix affine in a better way
argh this time
2014-06-18 12:34:20 +01:00
John Cupitt d01beb5411 fix coordinate error in affine
see https://github.com/jcupitt/libvips/issues/131
2014-06-17 14:22:55 +01:00
John Cupitt 131b78ad67 forgot to turn off DEBUG 2014-06-17 14:21:31 +01:00
John Cupitt 519898a7ac oop, affine coordinate error
we were offsetting the input image incorrectly, compare
the way the transform is set up in vips_affine_build() and
im__affinei()

see https://github.com/jcupitt/libvips/issues/131
2014-06-17 14:18:12 +01:00
John Cupitt e2cda919ea match works 2014-05-26 14:20:38 +01:00
John Cupitt fb489bad53 move vips_image_decode() into the public API 2014-02-03 14:29:57 +00:00
John Cupitt 4167bdf0e6 small operation description fixes
more consistency, fix a couple of missing ones
2014-02-03 09:25:09 +00:00
John Cupitt 13a6ed1457 Merge remote-tracking branch 'origin/7.38'
Conflicts:
	ChangeLog
	configure.ac
	libvips/conversion/falsecolour.c
	libvips/resample/affine.c
2014-01-23 15:25:09 +00:00
John Cupitt d059431867 more auto-decode stuff
more to do though
2014-01-22 14:53:48 +00:00
John Cupitt 4ac08bc2d6 add some auto unpack stuff
so RAD etc get unpacked automatically
2014-01-22 13:26:59 +00:00
John Cupitt bf9fc7f855 auto-unpack RAD in affine 2014-01-22 10:02:38 +00:00
John Cupitt cd7fcf5cfe redo im_rank() as a class 2014-01-17 14:44:25 +00:00
John Cupitt 0bb052414a use plain "restrict"
configure changes this to __restrict__ for us, if the compiler supports
it
2013-12-03 08:53:36 +00:00
John Cupitt 29eed7b2b5 remove repack code from affine
just done in compat wrapper now
2013-11-29 23:20:32 +00:00
John Cupitt e0b9b3cd5c more polishing
and instrument stuff for vipsthumbnail
2013-11-28 14:56:19 +00:00
John Cupitt dec76f566d Merge remote-tracking branch 'origin/master' into rot45 2013-10-25 12:58:17 +01:00
John Cupitt 3dce5951c2 reverse similarity rotation direction convention
The rest of vips uses +ve-is-clockwise convention, like almost all image
processing packages. The new similarity operator was mistakenly using the
mathematical +ve-is-anticlockwise convention, oops.
2013-10-25 12:56:24 +01:00
John Cupitt 12cf71a6a9 combin copy_fields and demand_hint
We had two API calls, vips_image_copy_fields() and vips_demand_hint().
They are now combined in the single vips_image_pipeline() call.

All operations are now slightly smaller and simpler.
2013-10-22 09:29:40 +01:00
John Cupitt 439522a254 add vips_similarity()
simple wrapper over vips_affine() that lets you give the matrix as scale
+ angle.
2013-10-03 11:56:35 +01:00
John Cupitt 440b3a3362 fix up -DVIPS_DEBUG build 2013-07-15 10:49:49 +01:00
John Cupitt 7312fd4ed4 more array->matrix renaming 2013-07-03 09:22:04 +01:00
John Cupitt 9278498623 add vips_matrixload(), vips_matrixsave()
read and write vips mat format to and from VipsImage

also fix a leak with vips_check_matrix()
2013-07-02 12:08:46 +01:00
John Cupitt 2fd2fd58f7 fix up gtk-doc
fix various problems:

- out of date IGNORE in doc/reference/Makefile.am
- name clashes between private .h and public
2013-06-17 20:16:20 +01:00
John Cupitt 038015a971 Merge remote-tracking branch 'origin/7.32' 2013-06-14 09:04:01 +01:00
John Cupitt 216d286065 fix --disable-cxx build
quadratic.c was missing from the list of non-C++ sources, thanks Michael
2013-06-14 09:01:18 +01:00
John Cupitt bd5c4757e8 fix vips_shrink() seq again
perhaps properly this time
2013-06-06 12:08:26 +01:00
John Cupitt 0c6da0c330 fix demand hints for shrink
"vips shrink" was broken due to wonky demand hints, thanks Jan
2013-04-08 13:08:24 +01:00
Benjamin Gilbert 8cc76a6ba3 Update address for Free Software Foundation
Also update LGPLv2.1 license text from the copy currently on the GNU
website.
2013-03-07 00:40:19 -05:00
John Cupitt 90709538e6 update configure system 2013-01-23 10:17:51 +00:00
John Cupitt c570bf902e revert recent changes to nohalo/vsqbs
revert the changes to nohalo/vsqbs that were suppoed to switch to corner
convention, they broke addressing

this needs rethinking
2013-01-16 11:50:34 +00:00
John Cupitt 1ae19e896f Merge remote-tracking branch 'origin/7.30'
Conflicts:
	libvips/conversion/sequential.c
	libvips/conversion/tilecache.c
	libvips/deprecated/im_tile_cache.c
	libvips/deprecated/vips7compat.c
	po/vips7.pot
2013-01-15 13:47:48 +00:00
John Cupitt ac405862ba argh 2013-01-11 14:51:12 +00:00
John Cupitt da0b890e84 argh 2013-01-10 14:46:20 +00:00
John Cupitt 05324ca33c fix up affine
now passes valgrind with both vips7 and vips8 interfaces
2013-01-02 12:52:36 +00:00
John Cupitt 0951e2faa4 still segving with labq 2012-12-19 14:50:01 +00:00
John Cupitt dbdf9c8d83 deprecate vips7 resample dispatch 2012-12-18 13:43:46 +00:00
John Cupitt e6eb08173f can now displace affine input space
so hopefully that means you can change corner vs. centre convention
easily
2012-12-18 13:08:18 +00:00
John Cupitt 1fc10d56a8 half-way through expanding transform
started putting in input displacement
2012-12-17 09:59:04 +00:00
John Cupitt 40bb7a2eb3 im_affine*() compat functions work too 2012-12-14 15:09:11 +00:00
John Cupitt f441e3c566 now passes valgrind 2012-12-14 14:58:17 +00:00
John Cupitt 27b9b92c60 now runs! 2012-12-14 14:17:53 +00:00
John Cupitt 4c82d45463 redo im_affine as a class 2012-12-14 12:33:47 +00:00
John Cupitt 43d69e74e7 use corner convention everywhere
all interpolators use corner convention
2012-12-13 14:10:52 +00:00
John Cupitt 7a202cf95e Merge remote-tracking branch 'origin/master' into newmaxmin
Conflicts:
	TODO
2012-12-04 12:49:04 +00:00
John Cupitt 1aee7b73d5 start new max hacking 2012-12-03 14:53:10 +00:00
John Cupitt 6f22c00df4 NN now rounds down rather than to nearest
nearest-neighbour interpolation now strictly rounds down rather than
rounding to nearest

round to nearest caused strange half-pixels along top/left image edges
during enlargement, and extra 1.5 sized pixels everywhere else

instead we should fix the thing that round to nearest was supposed to fix by
adding an extra pair of params to the affine transform which displace in
input space (dx/dy displace in output space)
2012-11-30 21:35:12 +00:00
John Cupitt fcc33020bd better exif handling
- track ifd numbers for each item of exif
- be more careful about which ones we update
- don't update xres/yres in vips_shrink()
2012-11-16 10:03:31 +00:00
John Cupitt b6a1c87d9c vips_quadratic() uses an interpolator 2012-11-09 14:53:32 +00:00
John Cupitt 8f364a8b51 rename some _get funcs
all the _get_ funcs that returned a bool have become _isthing()
functions, eg.

vips_object_argument_get_assigned() ->
  vips_object_argument_isset()
2012-11-09 13:08:59 +00:00
John Cupitt d5a1d65183 mostly working
still some strange things with order3, not initing ddx correctly?
2012-11-08 22:01:39 +00:00
John Cupitt 8df32c84c1 more work on vips_quadratic 2012-11-08 13:34:37 +00:00
John Cupitt e951668e45 started adding im_transform() 2012-11-07 14:54:50 +00:00
John Cupitt 26f2105e5b make everything LGPL2.1+
some files were incorrectly tagged as GPL, thanks Dmitry
2012-09-17 11:52:32 +01:00
John Cupitt 39b05f5172 tuning, sort out demand hints
and disable extract_area seq mode
2012-08-24 12:46:10 +01:00
John Cupitt fa5677abd7 works! 2012-08-23 13:49:21 +01:00
John Cupitt f5f0dda551 experiment with thread stalling 2012-08-21 16:18:25 +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 a94ce8957e Merge remote-tracking branch 'origin/7.28' 2012-07-01 11:08:02 +01:00
John Cupitt ec53b1af74 remove refs to bicubic in docs 2012-07-01 11:06:42 +01:00
John Cupitt 7a51b59016 some vips_shrink() tuning
tried an int coordinate path for vips_shrink(), no significant speedup
2012-06-21 13:11:35 +01:00
John Cupitt 7061f0f00b put the shrink line cache back
so we can use THINSTRIP for the vips_shrink() operation
2012-06-18 09:19:31 +01:00
John Cupitt f07fb25ab5 fix write RGBA as JPG
it was saving RGBA as CMYK JPG, with comical results (thanks Tobias)
2012-06-17 22:16:20 +01:00
John Cupitt fdd3b0a387 remove im_rightshift_size()
there's a deprecated wrapper now
2012-06-15 18:21:25 +01:00
John Cupitt c12bf31c12 oops proto 2012-06-15 14:21:33 +01:00
John Cupitt 0a74a34096 remove logging, fix shrink hint
vipsthumbnail works again now
2012-06-15 09:28:57 +01:00
John Cupitt c3ae8dafc0 remove the old im_shrink()
too much debugging still on though argh
2012-06-14 14:50:37 +01:00
John Cupitt e286737042 vips_shrink done 2012-06-13 09:31:05 +01:00
John Cupitt e9504c28f1 start moving im_shrink() to a class 2012-06-12 14:52:49 +01:00
John Cupitt 2dde7ce256 Merge remote-tracking branch 'origin/7.28'
Conflicts:
	libvips/foreign/vips2tiff.c
	po/vips7.pot
2012-06-08 19:37:03 +01:00
John Cupitt fc3d4192d7 tiff loader always offers thinstrip
the tiff loader now always offers thinstrip ... later stages can then
pick any demand style they like (thanks Diuming)
2012-06-03 11:44:03 +01:00
John Cupitt ffb34c943c nearest0neighbor now rounds to nearest
before it just truncated x/y downs, now it rounds to nearest ... this
removes a 0.5 shift compared to the other interpolators

thanks Nicolas
2012-03-26 09:35:22 +01:00
John Cupitt 8b5b3288b4 fix im_shrink() 2012-02-10 13:17:19 +00:00
John Cupitt 24e86ae458 better im_shrink()
faster, lower memuse, simpler
2012-02-10 10:00:39 +00:00
John Cupitt 5fd317941d rationalise the dumpers 2012-01-16 14:54:29 +00:00
John Cupitt d0ec401a12 hackery to get goi working 2011-12-31 18:22:42 +00:00
John Cupitt 0983b50905 Merge remote-tracking branch 'origin/gobject-introspection' into goi-merge
Conflicts:
	TODO
	libvips/arithmetic/im_recomb.c
	libvips/arithmetic/im_stats.c
	libvips/deprecated/im_measure.c
	libvips/include/vips/header.h
	libvips/include/vips/image.h
	libvips/include/vips/object.h
	libvips/iofuncs/header.c
	libvips/iofuncs/image.c
	libvips/iofuncs/object.c
2011-12-24 17:36:55 +00:00
John Cupitt a2ed2edb5d fix --without-tiff etc. 2011-12-13 13:19:20 +00:00
Nicolas Robidoux 6c4ae0239c nohalo comments clean up 2011-11-22 20:09:51 -05:00
Nicolas Robidoux 9b971ae8c2 comment clean up for nohalo 2011-11-22 19:58:02 -05:00
Nicolas Robidoux b8d3c179f0 actually, revert to the smooth limiter in LBB, which is best overall 2011-11-22 15:18:04 -05:00
Nicolas Robidoux b36717a070 use the new slope limiters in LBB 2011-11-22 11:37:55 -05:00
Nicolas Robidoux b6dd1e0af1 remove LBB options 2011-11-22 10:42:39 -05:00
John Cupitt b400918541 omit static objs from leak test 2011-11-14 11:51:15 +00:00
John Cupitt ae8faf6597 remove dmalloc support
we never used it and valgrind etc. is better anyway
2011-09-23 17:12:47 +01:00
John Cupitt 580536e412 indent class lists
"vips list classes" now indents the class lists by structure
2011-07-16 11:26:24 +01:00
John Cupitt 53492613bd merge change from aturcotte 2011-06-23 10:55:02 +01:00
John Cupitt f69168fc04 gobject-introspection compiles
we now mostly compile cleanly, woo
2011-06-22 12:17:43 +01:00
John Cupitt 3126e5100d get interpolate new from string working
vips_type_map() has to see abstract types now so we can get the
baseclass for interpolate. interpolate class has to set the nickname.
2011-06-21 11:08:56 +01:00
John Cupitt cba1ea0024 vipsobject fallback for new_from_string() as well 2011-05-25 13:43:53 +01:00
John Cupitt 3f1c855177 vipsinterpolate uses new_from_string() vfunc system 2011-05-25 13:25:18 +01:00
John Cupitt 3378c2ba2c small nohalo improvement
Commented out the CHEAP option for nohalo, it gets slightly better
without it and there's not much difference to runtime.
2011-02-24 12:54:56 +00:00