Commit Graph

1670 Commits

Author SHA1 Message Date
John Cupitt
ce0bddaf4f update notes 2016-07-09 18:22:37 +01:00
John Cupitt
9d7667cbff oop found a problem 2016-07-09 18:01:46 +01:00
John Cupitt
a9d1c654e2 fixes 2016-07-09 14:15:28 +01:00
John Cupitt
c0bffd53ad use PingImage() etc
much faster now we have a proper header for libMagick
2016-07-09 13:12:31 +01:00
John Cupitt
3130b9b118 add note on Peter's CM work 2016-07-05 08:48:08 +01:00
John Cupitt
d2aeec56b5 convi done 2016-07-01 15:11:17 +01:00
John Cupitt
df81a6fe24 almost there 2016-06-30 14:59:20 +01:00
John Cupitt
1a5aa2125e add convi 2016-06-24 12:48:08 +01:00
John Cupitt
e60e90b0da im_conv_f rewrite done 2016-06-23 20:42:03 +01:00
John Cupitt
93a55310d3 compiles 2016-06-23 15:00:26 +01:00
John Cupitt
11b136b2df pyvips8 can create new metadata
previously it tried to lookup the type of the field in set(), now if
OK if there's no field there already
2016-06-17 11:27:13 +01:00
John Cupitt
d56cd4dcb2 note py problem 2016-06-17 09:36:04 +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
58be330714 oop problems found in reducev 2016-06-14 14:56:56 +01:00
John Cupitt
83b1c33441 add tests for C++ += etc
all seems to work!
2016-06-11 20:14:48 +01:00
John Cupitt
28efdf1695 working! 2016-06-11 17:36:06 +01:00
John Cupitt
6fa665d6de notes 2016-06-10 14:45:33 +01:00
John Cupitt
b90145ca31 free pixel buffers on image close
We were freeing pixel buffers on thread exit. This was convenient, but
meant that main thread buffers were not freed until program exit. As a
result, long-running programs which created main thread buffers would
slowly fill the operation cache with useless junk, forcing everything else out.

This change also frees pixel buffers on image close. This makes the
cache work much better in long-running programs, and can substantially
reduce memory use.

See https://github.com/jcupitt/libvips/issues/466
2016-06-06 13:50:25 +01:00
John Cupitt
37131e5834 not working tests 2016-06-06 11:03:31 +01:00
John Cupitt
3c696d9a18 notes about sharp needs 2016-06-06 06:39:34 +01:00
John Cupitt
15878bffca Revert "free main-thread pixel buffers"
This reverts commit 2a77301033.
2016-06-06 06:38:18 +01:00
John Cupitt
2a77301033 free main-thread pixel buffers
threads keep pixel buffers in thread-private storage, and free these
buffers on thread exit ... this means buffers created by the main thread will
only be freed on program exit!

if your program creates any main-thread buffers, these buffers will
eventually fill the operation cache and force everything else out,
making the cache useless

this patch explicitly frees main-thread pixel buffers on image close
2016-06-05 16:59:07 +01:00
John Cupitt
cf56b43ebf notes 2016-06-05 16:34:10 +01:00
John Cupitt
c5a4afbe40 support --strip for tiffsave
stops metadata save
2016-06-02 13:14:15 +01:00
John Cupitt
ff8f6364a4 update notes 2016-06-01 16:12:20 +01:00
John Cupitt
916e5b5589 set filename on file read for more types
the new loaders were missing the line to set the output filename, so
`vipsheader fred.pdf` was not displaying the filename correctly
2016-06-01 09:14:01 +01:00
John Cupitt
0012cefc25 improve orientation fetch
we were generating some annoying messages
2016-06-01 08:59:44 +01:00
John Cupitt
7a91eaa583 tiff save converts for jpg in jpg mode
when jpg compression is on, tiffsave now converts the input image for
jpg save ... previously, it would try to send a tiff-formatted image
(eg. perhaps with an alpha channel, or float data), which would fail

see https://github.com/jcupitt/libvips/issues/449
2016-05-31 22:04:07 +01:00
John Cupitt
93d0d15f88 Merge branch 'master' into add-tiff-orientation 2016-05-27 20:25:41 +01:00
John Cupitt
cefc4ce64d all done
seems to all work and pass tests
2016-05-27 20:24:48 +01:00
John Cupitt
2590559e56 basic tests 2016-05-27 20:18:25 +01:00
John Cupitt
f0521d4b5d all done!
a few more tests though
2016-05-27 16:53:25 +01:00
John Cupitt
23f4d9a235 todo notes 2016-05-27 09:56:11 +01:00
John Cupitt
094470c9c1 done, just a few things left
- tif->jpg copy seems to loose tag

- add tests
2016-05-27 09:48:08 +01:00
John Cupitt
5a9f2c787b compiles
needs testing etc.
2016-05-26 14:58:04 +01:00
John Cupitt
ac2ce4228b notes 2016-05-26 07:30:29 +01:00
John Cupitt
5f75e5363b radsave_base should be abstract
now we can set suffs on it, but pick the actual saver from the subclass
2016-05-24 11:19:02 +01:00
John Cupitt
50468a07a2 clean up foreign
various cosmetic changes:

- pngsave_buffer now uses Write, not WriteBuf, same change for
  radsave_buffer

- move C wrappers out to class defs from foreign.c

- use g_free() not vips_free() for buffer free from low-level savers

- fix var names in some comments

- various style changes for radiance.c
2016-05-24 10:57:02 +01:00
John Cupitt
493ac80890 intltool mystery solved
carefully removed 8 years ago, according to the logs
2016-05-18 19:54:27 +01:00
John Cupitt
c84f642d09 removed intltool again
and ignire more standard m4/ macros
2016-05-18 16:24:06 +01:00
John Cupitt
db11d3b973 allow nested [] in CLI args
this now works:

	vips copy x y.dz[suffix=.jpg[Q=90]]
2016-05-16 11:09:47 +01:00
John Cupitt
2cfe4842d3 notes 2016-05-15 09:48:02 +01:00
John Cupitt
24a51098b1 compiler warning 2016-05-12 14:54:28 +01:00
John Cupitt
9fba3b5577 notes on TODO 2016-05-12 08:55:19 +01:00
John Cupitt
38fe936eee Merge remote-tracking branch 'origin/8.3' 2016-05-08 11:09:28 +01:00
John Cupitt
379b69fda8 note on test suite failure 2016-05-08 10:02:34 +01:00
John Cupitt
948d1103d4 note more webp tests needed 2016-05-07 19:53:00 +01:00
John Cupitt
1f701a61ea try signalling invalidate on load error
to knock load ops out of cache
2016-05-05 15:00:40 +01:00
John Cupitt
37c716be89 more webp doc improvements 2016-05-03 09:36:49 +01:00
John Cupitt
48ef215479 tiny fixups for the webp commit
just small formatting changes, plus an unneeded var

see

	https://github.com/jcupitt/libvips/pull/430
2016-05-02 09:55:16 +01:00
John Cupitt
d46a57cf6b update notes 2016-04-11 13:27:04 +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
bf1c8707c7 better draw docs
add a caching discussion to the start of draw

see https://github.com/jcupitt/libvips/issues/411
2016-04-06 10:26:53 +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
5f24468dba tiny code cleanup, note a bug 2016-04-02 11:25:27 +01:00
John Cupitt
95a74cbf28 tiny help polishing 2016-03-25 16:35:28 +00:00
John Cupitt
ddd7ab7459 doc fixups 2016-03-25 10:56:59 +00:00
John Cupitt
1a25c7a083 better rounding in vipsthumbnail 2016-03-25 10:42:21 +00:00
John Cupitt
2996947b0d start fixing up test_thumbnail
since --interpolator no longer does anything
2016-03-25 06:11:01 +00:00
John Cupitt
213f9e23b4 count colour pixels
more overcomputation testing
2016-03-24 17:41:05 +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
385f8a167f notes 2016-03-21 11:36:15 +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
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
773b474116 Merge branch 'master' of github.com:jcupitt/libvips 2016-03-14 13:35:47 +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
a832a0c254 notes 2016-03-11 14:42:12 +00:00
John Cupitt
4f41617d89 TODO notes 2016-03-11 13:47:19 +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
9209fb25c5 update notes 2016-03-10 17:40:19 +00:00
John Cupitt
d351e07a6b finish up 2016-03-10 17:33:34 +00:00
John Cupitt
e9728e389b first commit 2016-03-09 12:56:30 +00:00
John Cupitt
2ea5c5f7e5 make python bandrank() work like bandjoin()
we had a custom wrapper for bandjoin(), but bandrank(), a function with
an almost identical interface, did not ... this was confusing

bandrank() now has a custom wrapper too ... this breaks API
unfortunately, but hopefully very few people were using this thing and
it's better to make this change as soon as possible
2016-03-01 12:12:51 +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
b197773095 oop, overflow in sharpen
plus another tweak of the defaults
2016-02-28 11:24:35 +00:00
John Cupitt
35650c2244 reduce the number of copy() ops
reduce the number of copy() ops issued during colour conversion
2016-02-26 14:05:35 +00:00
John Cupitt
c95bbe43b5 oops in sharpen 2016-02-26 12:26:12 +00:00
John Cupitt
d33306836f better rgb16 -> scrgb handling
helps new sharpen tests
2016-02-26 09:08:42 +00:00
John Cupitt
04cc13e321 notes 2016-02-25 11:47:53 +00:00
John Cupitt
c1f1a7c1b3 improve sharpen for screen work
it was a bit granular (since it was designed for offset work), make sharpen
easier to adjust for smaller effects

- new 'sigma' parameter
- greater parameter range
- more self-tests
2016-02-25 11:16:24 +00:00
John Cupitt
789e154cd7 phew, done 2016-02-13 14:04:29 +00:00
John Cupitt
fdf0c349ae almost there
seeing transparency tags when we shouldn't, strange
2016-02-13 11:51:50 +00:00
John Cupitt
c2be771342 fix load from buffer, update APIs 2016-02-12 20:04:46 +00:00
John Cupitt
0dbd64a122 fix gifload memleak 2016-02-12 17:53:15 +00:00
John Cupitt
b10f332404 very close now
just a leak to nail down and some small stuff
2016-02-12 17:30:56 +00:00
John Cupitt
9262d672b7 almost done
a valgrind failure still
2016-02-12 10:53:04 +00:00
John Cupitt
4a63e961ea much faster is_a_svg 2016-02-09 14:42:27 +00:00
John Cupitt
56e45545d3 fix load from buffer 2016-02-09 11:58:43 +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
8ffbe98a29 note svg and gif loader needs 2016-02-08 21:47:12 +00:00
John Cupitt
5ca90dc2be final polish 2016-02-08 21:40:44 +00:00
John Cupitt
676d35ed74 add pdfload tests 2016-02-08 20:39:39 +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
b7030d004a add file type sniffing 2016-02-08 17:04:31 +00:00
John Cupitt
5db2c64d90 add @scale option
and set xres/yres
2016-02-08 16:57:37 +00:00
John Cupitt
adfd25a5ed byteswap popplerload
and better path absoluteization
2016-02-08 16:37:47 +00:00
John Cupitt
be574be539 popplerload hacking
metadata, relative filenames
2016-02-08 14:41:57 +00:00
John Cupitt
a7192ce8c6 update notes 2016-02-08 10:00:18 +00:00
John Cupitt
a41a1d5c33 popplerload seems to work
though it's not been tested much
2016-02-08 09:30:33 +00:00
John Cupitt
8da4e706dd start adding poppler support 2016-02-07 23:33:43 +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
39e6963033 start tests 2016-01-29 17:55:54 +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
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
John Cupitt
d3f87c5f44 notes 2016-01-20 11:58:59 +00:00
John Cupitt
dbf9a5ed1c fix dzsave tile-width default
was wrong for google / zoomify layouts

revise tests too
2015-12-30 11:23:33 +00:00
John Cupitt
1593b23fc4 allow smaller rowsperstrip
and some other tiny things
2015-12-13 14:55:56 +00:00
John Cupitt
5916e25c31 rename python bandjoin as ibandjoin
oh argh class and instance methods are in the same namespace, so we have
to rename the instance one as ibandjoin

also, start adding a test for arrayjoin
2015-12-12 12:29:20 +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
16c4eeabad python does auto complx/uncomplx
this is a bit ugly :-(
2015-11-20 16:29:43 +00:00
John Cupitt
a8b78371f8 better run_cmplx()
ready to go into Vips.py
2015-11-20 14:55:28 +00:00
John Cupitt
32f6f5ed22 fix atan() for -ve angles 2015-11-20 14:45:51 +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
40173838d1 use atan2 and hypot more
might be a little quicker
2015-11-19 14:34:03 +00:00
John Cupitt
743b21e83e fix off by 1 error 2015-11-19 13:25:52 +00:00
John Cupitt
d27bbd6803 add mapim test
and a python mapim example
2015-11-19 11:44:58 +00:00
John Cupitt
e47b631105 add notes 2015-11-19 09:55:03 +00:00
John Cupitt
8e6ed3ef30 compiles 2015-11-16 14:58:51 +00:00
John Cupitt
d88304a297 sync 2015-11-12 09:15:31 +00:00
John Cupitt
03a4e54649 slightly less stupid float->int mask
still not quite right
2015-11-11 16:51:08 +00:00
John Cupitt
f32ab06a1c fix test suite 2015-11-11 15:00:15 +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
aedb174537 note 2015-11-11 08:33:41 +00:00
John Cupitt
ca51b46e9a docs, c++, all done 2015-11-07 20:54:00 +00:00
John Cupitt
295b18585a python uses bandjoin_const when possible
added a test case, speedup seems worthwhile
2015-11-07 20:34:56 +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
2f98f38d8a started bandjoinconst 2015-11-06 14:58:32 +00:00
John Cupitt
de65da85b9 smarter conversion of float masks to int
we were just rint()ing masks going from float -> int, but this could
give bad results in some cases, with output images becoming darker
or lighter, as individual elemets moved up or down

now we adjust the output scale to try to keep the overall brightness
the same, if we can

see: https://github.com/jcupitt/libvips/issues/344
2015-11-06 14:29:23 +00:00
John Cupitt
d38a78d0ea notes 2015-11-05 12:40:03 +00:00
John Cupitt
82d96fb73e notes 2015-11-04 21:19:31 +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