Commit Graph

1696 Commits

Author SHA1 Message Date
John Cupitt
20298b0d9a better all_frames on gif sources
some frames can be missing some lines
2016-08-14 17:39:01 +01:00
John Cupitt
9143bda915 Merge branch 'master' into add-magick7 2016-08-14 10:25:03 +01:00
John Cupitt
98bb078a96 update TODO 2016-08-13 16:46:47 +01:00
John Cupitt
cbce10db81 allow missing offset in matrix header
defaults to zero
2016-08-12 10:39:03 +01:00
John Cupitt
88252e6794 float output from worley
no need to int it
2016-08-11 21:51:58 +01:00
John Cupitt
b75a533493 done as much as we can
abandon our current conva system, use a cumulative image instead
2016-08-11 21:39:04 +01:00
John Cupitt
8c05a2bbe8 argh all_frames doesn't work for gif 2016-08-04 15:55:06 +01:00
John Cupitt
40f01fdb2b Merge branch 'master' into add-magick7 2016-08-04 14:15:46 +01:00
John Cupitt
e6bf970911 hit a snag 2016-08-04 10:11:21 +01:00
John Cupitt
c658332215 vips_conva() done and working
remove im_conva() nest, add tests
2016-08-03 18:29:50 +01:00
John Cupitt
8a9ee7e4ce small polish
convasep offset now working, matches convsep very closely
2016-08-02 18:19:35 +01:00
John Cupitt
2e8f14c6a5 Merge branch 'master' into rewrite-convf 2016-08-01 15:08:45 +01:00
John Cupitt
e439c5f78f add .svg.gz suffix
allow .x.y suffixes
2016-08-01 14:57:33 +01:00
John Cupitt
b0e3035590 small cleanups to svgz support 2016-08-01 14:28:35 +01:00
John Cupitt
920f2ea488 tiny py stuff 2016-07-29 15:25:28 +01:00
John Cupitt
3f41e21c8b notes on dicom error 2016-07-29 13:32:00 +01:00
John Cupitt
9535128a93 stuck on dicom now 2016-07-29 13:24:13 +01:00
John Cupitt
422b029602 better gif load via magick7 2016-07-29 12:35:55 +01:00
John Cupitt
6d217f6f68 getting closer
seems we'll need many different paths, perhaps one for each ImageType
2016-07-28 16:12:02 +01:00
John Cupitt
d8381c73da more improvements to error handling during eval
we were dropping the error buffer in tilecache, thanks David
2016-07-28 09:46:10 +01:00
John Cupitt
27da050a24 fix all_pages
tested with pdf, need to test gif
2016-07-25 13:57:50 +01:00
John Cupitt
2dc43198e4 final fixups 2016-07-24 14:47:22 +01:00
John Cupitt
6db9a2fdf9 better smoothing for perlin 2016-07-24 12:58:45 +01:00
John Cupitt
c469bb3983 perlin sort-of works 2016-07-24 11:46:42 +01:00
John Cupitt
dac671439c kind-of working 2016-07-19 10:57:21 +01:00
John Cupitt
036bd0bb4b convsep calls convasep when it can 2016-07-09 19:20:33 +01:00
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