Commit Graph

1700 Commits

Author SHA1 Message Date
John Cupitt 030921efc6 make all tools unicode-aware on windows
sigh
2016-08-17 12:14:43 +01:00
John Cupitt eb49347abb start adding better filename handling 2016-08-16 16:22:38 +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 5df5793457 done!
all tests done, all pass with magick6 and magick7
2016-08-14 18:39:40 +01:00
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