2109 lines
76 KiB
Plaintext
2109 lines
76 KiB
Plaintext
6/12/10 started 7.25.0
|
|
- attach the jpeg thumbnail and multiscan fields (thanks Mike)
|
|
- faster tiff read for some common cases
|
|
- faster im_tile_cache()
|
|
- if we use C++ in libvips, add -lstdc++ to vips-7.xx.pc
|
|
- im_vips2png() / im_png2vips() set / get png resolution (thanks Zhiyu Wu)
|
|
- updated README
|
|
- don't use tables for bilinear on float data for a small speedup (thanks
|
|
Nicolas Robidoux)
|
|
- no tables for uchar either, about a 15% speedup (thanks Nicolas)
|
|
- dmask write was broken
|
|
- lr/tbmerge() cast images to match, like im_insert()
|
|
- lr/tbmosaic() work for any mix of image formats / bands
|
|
- removed ancient balance stuff from im_lr/tbmosaic()
|
|
- gtk-doc for mosaicing
|
|
- add im_fits2vips() to the operation database
|
|
- im_fits2vips() is lazy and much faster
|
|
- im__file_open_write() / _read() has a flag for text_mode, get rid of all the
|
|
remaining fopen()s
|
|
- move cooc_* and glds_* to deprecated
|
|
- move im_dif_std() to almostdeprecated
|
|
- move im_simcontr() to almostdeprecated
|
|
- add im_sines() to operation db
|
|
- move im_spatres() to almostdeprecated
|
|
- done gtk-doc for other
|
|
- --vips-progress tells you about nthreads, tile size, nlines
|
|
- gtk-doc for interpolate
|
|
- move im_stretch3() to deprecated
|
|
- move im_clamp() to deprecated
|
|
- gtk-doc for video ... all operators done! amazing argh
|
|
- set MAP_NOCACHE on OS X, otherwise performance dives off a cliff with
|
|
files larger than memory
|
|
- removed man pages, we are all gtk-doc now
|
|
- im_jpeg2vips() ignores weird APP1 chunks
|
|
- im_add() for int/uint was broken
|
|
- im_ri2c() was broken
|
|
- added VIPS_FORMAT_BIGENDIAN format flag
|
|
- moved IMAGE and REGION to VipsImage and VipsRegion, classes over VipsObject
|
|
- Rect -> VipsRect
|
|
- libpng-1.5 supported
|
|
- better png read for 1-bit and palette images
|
|
- fits write
|
|
- better fits metadata support
|
|
- renamed all header fields, old names still supported, hopefully
|
|
- all of iofuncs moved to vips_ namespace
|
|
- lots of old iofuncs API moved to deprecated
|
|
- added VipsOperation, an abstract base class for all vips operations
|
|
- added VipsAdd, the first operation object
|
|
- im_tiff2vips() int/uint mixup for rows_per_strip, thanks Bubba
|
|
- removed the links feature, won't work with vips8
|
|
- got rid of the tools/ subdirs
|
|
- added im_bufjpeg2vips()
|
|
- tiff reader can do 1, 2, 4, 8 bit palette images
|
|
- tiff palette read can do mono images
|
|
- im_bufjpeg2vips() has a "header_only" parameter
|
|
- added vips_image_get_data()
|
|
- updated German translation (thanks Chris)
|
|
- fixed typo in im_conv() overflow estimation which could cause errors
|
|
- vips.c has new action syntax, knows about vips8 operations
|
|
- add now has sizealike
|
|
- vips7 binops all do sizealike too, also gbandjoin and ifthenelse
|
|
- new API is now functional
|
|
- vips.c generates GOption flags for vips8 operations
|
|
- added im_gauss_dmask_sep()
|
|
- laplacian generator lost -ve lobes for large sigma
|
|
- added im_aconv(), approximate convolution
|
|
- bumped smalltile to 512x512 for testing
|
|
- added VipsPool, got rid of floating refs again, argh
|
|
|
|
30/11/10 started 7.24.0
|
|
- bump for new stable
|
|
- added im_dmask2imask(), im_imask2dmask()
|
|
- im_rotate_*mask90() can do masks of any size (thanks Adam Turcotte)
|
|
|
|
18/7/10 started 7.23.0
|
|
- im_vips2bufjpeg() writes to a linked list, so it will work for any size
|
|
image and header
|
|
- added im_vips2bufpng()
|
|
- use GetTempPath() to pick a temp dir on Windows
|
|
- added "rd" mode to im_open()
|
|
- vipsthumbnail and vips use "rd"
|
|
- im_divide spots /0
|
|
- remove liboil dependency, we will use Orc instead
|
|
- various small cleanups (thanks Tim)
|
|
- add lcms2 support
|
|
- VImage(filename) defaults to "rd" mode
|
|
- revise window_offset / window_size, again
|
|
- fix a mixup with ANY hints that caused performance problems on the main
|
|
benchmark
|
|
- rewritten im_circle as im_draw_circle, im_circle moved to almostdeprecated
|
|
- added IM_TYPE_RW args for inplace ops --- nip2 uses this to wrap inplace ops
|
|
automatically
|
|
- special-case 3x3 masks in im_conv() for a 20% speedup
|
|
- add IM_TYPE_RW flag for im__rw_image, helps nip2 auto-wrap inplace ops
|
|
- im_insertplace() casts and bandalikes
|
|
- copy iconv.m4 and friends in bootstrap, thanks Mike
|
|
- moved the stupid _copy() versions of the inplace ops to deprecated, since
|
|
nip2 can call inplace ops directly now
|
|
- added im_draw_rect(), moved im_paintrect() to deprecated
|
|
- added im_draw_image(), moved im_insertplace() to deprecated
|
|
- added im_draw_line(), now clips, moved im_fastline() to deprecated
|
|
- added im_draw_line_user(), now clips, moved im_fastlineuser() to deprecated
|
|
- added im_draw_mask(), now wrappable, moved im_plotmask() to deprecated
|
|
- added im_draw_point(), moved im_plotpoint() to deprecated
|
|
- added im_read_point(), now partial, moved im_readpoint() to deprecated
|
|
- added im_draw_smudge(), moved im_smudge() / im_smear() to deprecated
|
|
- convolution functions support complex images
|
|
- im_blend() can have any format condition image and it's converted to uchar
|
|
- security fix for vips-7.23 wrapper script (thanks Jay)
|
|
- im_affine() has a larger safety margin
|
|
- fix gtk-doc warnings
|
|
- small mask load/save improvements
|
|
- mask gtk-doc done
|
|
- add cfitsio dependancy
|
|
- add FITS reader
|
|
- land the vector branch and the orc dependancy ... we have SSE
|
|
erode/dilate/add/conv
|
|
- add IM_SWAP
|
|
- dilate/erode do (!=0) on non-uchar images
|
|
- add multipass Orc to im_conv(), 3.5x faster for 5x5 mask
|
|
- im_profile() works for any image format, any number of bands
|
|
- im_rank_image() works for mix of formats, bands
|
|
- morph gtk-doc done
|
|
- oops, missing braces in debug.h and util.h, thanks Laurence
|
|
- update C++/Python binding
|
|
- oop, bool constants are always (int) now, so (^-1) works for unsigned types,
|
|
thanks Nicolas Robidoux
|
|
- much lower memuse for im_cache() in complex pipelines
|
|
- im_scale_dmask() normalises to 20, not 100 ... we hit the fast
|
|
conv path more often
|
|
|
|
12/5/10 started 7.22.2
|
|
- the conditional image of ifthenelse can be any format, a (!=0) is added if
|
|
necessary
|
|
- oops vipsthumbnail sharpening was turning off for integer shrinks,
|
|
thanks Nicolas Robidoux
|
|
- im_vips2jpeg() could fail for very small images (thanks Tim)
|
|
- threadpool wasn't stopping on allocate errors (thanks Tim)
|
|
- vips_sink_disc() could block if allocate failed (thanks Tim)
|
|
|
|
12/5/10 started 7.22.1
|
|
- fix a problem with tiff pyramid write and >1cpu, thanks Ruven
|
|
- constant ops clip to target range
|
|
- oops, moreconst and moreeqconst were the same
|
|
- better buffer handling in sinkdisc for single-line images
|
|
- less chatty errors from "vips"
|
|
- oops, don't rename "copy_set" as "copy_", thanks Ole
|
|
|
|
12/5/10 started 7.22.0
|
|
- bump and rename
|
|
- vipsthumbnail has a manualpage and sharpens correctly
|
|
- more interpolator work
|
|
- fixes to --disable-cxx mode (thanks Mike)
|
|
- added German translation, thanks Chris Leick
|
|
- fixed typos in some messages, thanks Chris Leick
|
|
- fix gettext startup
|
|
- all "colour" in messages changed to "color", have a proper en_GB
|
|
translation file
|
|
- vipsthumbnail delete profile failed if there was a profile
|
|
- interpolate cli unref was broken
|
|
- more accurate, slightly faster bilinear and bicubic (thanks Nicolas Robidoux)
|
|
|
|
21/3/10 started 7.21.3
|
|
- added progress feedback to threadpool
|
|
- --vips-wbuffer2 switch does all wbuffer use now
|
|
- im_wbuffer2() renamed as vips_discsink(), some cleanups
|
|
- im_gammacorrect() can do 16-bit images too
|
|
- im_histplot() could fail for signed int histograms
|
|
- im_fwfft() and im_invfft() could free their output image too early
|
|
- added im_local_imask(), im_local_dmask()
|
|
- added im_mpercent_hist()
|
|
- im_maplut() casts the index image to one of the uint types
|
|
- fixed a couple of /0 problems with scale == 0 masks
|
|
- set G_LOG_DOMAIN to VIPS so we can use g_warning etc.
|
|
- added VIPS_DEBUG_MSG() macro
|
|
- --vips-wbuffer2 turns on threadpool for im_iterate as well
|
|
- im_vips2tiff() uses vips_sink() instead of threadgroup
|
|
- strip out threadgroup
|
|
- add --enable-debug=xxx flag
|
|
- im_iterate() -> vips_sink()
|
|
- better number-of-bands detection for im_magick2vips()
|
|
- added im_get_argv0()
|
|
- added PFM read / write
|
|
|
|
16/1/10 started 7.21.2
|
|
- "invalidate" is careful to keep images alive, so invalidate callbacks can do
|
|
im_close()
|
|
- flood_blob could loop if start point == ink
|
|
- added im_meta_remove()
|
|
- added remove profile option to vipsthumbnail
|
|
- added vips_bandfmt_iscomplex() and friends, im_iscomplex() and friends
|
|
deprecated
|
|
- im_bandjoin()/im_gbandjoin() work with images of varying formats
|
|
- added im_copy_native(), deprecated im_copy_from() and friends
|
|
- im_check*() name rationalisation
|
|
- finally removed old flood stuff
|
|
- im_insert*() bandalike and formatalike
|
|
- im_*join() bandalike and formatalike
|
|
- im_ri2c() bandalike
|
|
- im_vips2png() saves 16-bit PNGs, if necessary
|
|
- vipsthumbnail has selectable interpolators, optional sharpen
|
|
- moved a lot of stuff (eg. im_iscomplex()) from deprecated to
|
|
almostdeprecated to avoid breakage
|
|
- im_csv2vips(): allow lines that end with EOF rather than \n
|
|
- im_vips2tiff has a bigtiff option
|
|
- oops, im_lineset() needs to ask for WIO of mask and ink
|
|
- move cache invalidation to REGION, fixes a race
|
|
- don't im_invalidate() after paint, it can cause horrible performance
|
|
problems ... for example, im_plotmask() used as the action operator for
|
|
im_fastlineuser() is terrible
|
|
- instead, users of the inplace operations need to call im_invalidate() at the
|
|
end of a set of paint actions to trigger an update
|
|
- parent/child renamed as upstream/downstream in DAG
|
|
- set VIPS_ICC_DIR in configure
|
|
- ICC profiles are looked for in VIPS_ICC_DIR as a fallback
|
|
- im_render() mask image generation no longer triggers image calc
|
|
- threadgroups scale output buffers with number of threads for smalltile ...
|
|
improves SMP scaling for narrow images on many-way machines
|
|
- default to max number of processors (--vips-concurrency and IM_CONCURRENCY
|
|
set >0 can override) on linux and win32
|
|
- better nprocs guesser
|
|
- im_render() fixes to help the paintbox, some speedups too
|
|
- added im_wbuffer2(), a new distributed threading system, and --vips-wbuffer2
|
|
to enable it, thank you Christian
|
|
|
|
15/1/10 started 7.21.1
|
|
- added "written" callbacks, used to implement write to non-vips formats
|
|
|
|
26/11/09 started 7.21.0
|
|
- branch for new dev cycle
|
|
- argh, missing init from colour.c (thanks Peter)
|
|
- argh, im_measure() was not looping over bands correctly (thanks Peter)
|
|
- removed mmap_limit, we now always use windows ... reduces VM use hugely,
|
|
because mmap windows are freed when their regions are freed, while images
|
|
are only unmapped when they are closed
|
|
- have a min bytes for mmap windows as well, so we don't make too many tiny
|
|
windows
|
|
- im_disp2Lab() was broken
|
|
- deprecated.h is now defined in terms of current functionality, rather than
|
|
repeating stuff
|
|
- im_flood() and friends rewritten, typically 4x faster
|
|
- removed --with-cimg option, added --disable-cxx
|
|
- added im_system_image() (thanks Roland)
|
|
- added postclose callbacks
|
|
- added vipsthumbnail
|
|
- oops, generate C++/Python wrappers for deprecated operations by default
|
|
- read TIFF images strip-wise, not scanline-wise
|
|
- better TIFF YCbCr reading (thanks Ole)
|
|
- isanalyze generates fewer silly error messages
|
|
|
|
26/11/09 started 7.20.3
|
|
- updated en_GB.po translation
|
|
- file_length is gint64 to avoid win32 breakage
|
|
|
|
23/11/09 started 7.20.2
|
|
- GETTEXT_PACKAGE now includes lib version number (thanks Jay)
|
|
|
|
11/11/09 started 7.20.1
|
|
- oop, im_clip2fmt() was missing PTOP flag, should get a small speedup
|
|
- im_conv() / im_convf() didn't like all-zero masks
|
|
- small updates to im_convf() from im_conv()
|
|
- im_read_imask() produced an incorrect error message if passed a doublemask
|
|
- rename im_convf(), im_convsepf() as _f()
|
|
- vips.c drops _f suffix when overloading
|
|
- regenerate C++ binding, don't make deprecated package
|
|
|
|
9/11/09 started 7.20.0
|
|
- removed vips-7.x.spec.in, shouldn't really have this in SVN
|
|
- bumped version to 7.20
|
|
- fixes to get "make dist" working again
|
|
|
|
3/4/09 started 7.19.0
|
|
- version bump
|
|
- tiny conv speedup
|
|
- catch lcms error messages
|
|
- fix includes for gtk+-3.0
|
|
- report virtual memory too in im__print_all()
|
|
- cosmetic changes to nohalo
|
|
- im_magick2vips() needs to invert alpha
|
|
- now (more or less) passes -Wextra
|
|
- added "fail" option to im_jpeg2vips: fail with an error on any warning
|
|
(thank you Ole)
|
|
- started gtk-doc changes
|
|
- renamed im_meta_get_type() and im_header_get_type() as
|
|
im_meta_get_typeof() and im_header_get_typeof() to prevent confusion with
|
|
GObject type definers (was breaking gtkdoc object scan)
|
|
- revised more names, limited documented API
|
|
- im_buildlut() could segv for non-zero based tables (thanks Jack)
|
|
- VIPS_BUF_STATIC() does not take length arg
|
|
- check for SetImageOption() so we work with GraphicsMagick too
|
|
- "header" sets a non-zero exit code if anything failed
|
|
- add and use im_check_uncoded() and friends
|
|
- matlab load handles column-major and plane-separated images (thanks Mikhail)
|
|
- JPEG save allows "none" for profile, meaning don't attach a profile
|
|
- saner, simpler, faster typecasting for im_add(), im_subtract(),
|
|
im_multiply(), im_divide(), im_remainder()
|
|
- im_remainder() has a float result for float types
|
|
- im_measure() allows sel == NULL, meaning all patches
|
|
- added "deprecated" package
|
|
- faster, simpler, better im_max(), im_min, im_avg(), im_deviate()
|
|
- im_max() returns true modulus, not square of modulus, for complex images
|
|
- im_avg() works for complex, returning average modulus
|
|
- im_system() fix (thanks Roland)
|
|
- im_system() rewrite
|
|
- im_maxpos()/im_minpos() are partial and work for complex
|
|
- im_max()/im_min() are now convenience functions
|
|
- im_maxpos_avg() handles complex and multi-band images
|
|
- added im_point(), rewrite im_point_bilinear() in terms of this
|
|
- close callbacks now happen *after* images have closed resources (such as
|
|
open files) ... this lets them delete temps and stuff. Expect breakage :(
|
|
- added vips_interpolate_get_window_offset()
|
|
- boolean revised: smaller, more general, faster
|
|
- im_remainderconst_vec() renamed to im_remainder_vec() for consistency
|
|
- added im_shift*_vec()
|
|
- renamed im_eor_vec() as im_eorimage_vec() for consistency, also and, or
|
|
- renamed im_eorconst() as im_eorimage_const() for consistency, also and, or
|
|
- relational revised: smaller, more general, faster
|
|
- im_blend()/im_ifthenelse() allows many-band conditional, 1-band then/else
|
|
- im_blend()/im_ifthenelse() allows band and format to differ between then
|
|
and else parts
|
|
- better im_check() functions
|
|
- added im_flood_other() as start of simple segmentation operator
|
|
- added im_label_regions()
|
|
- im_printlines(), im_debugim() deprecated (use im_vips2csv() instead)
|
|
- meta, header, callback, error, region, check, generate, memory gtkdocs
|
|
- removed printlines tool, vips2csv is much better
|
|
- removed other useless tools as well: debugim, binfile
|
|
- fix up addr calcs on 64-bit machines with >2gb images and inplace ops
|
|
(thanks Christoph)
|
|
- im_generate() checks that im_demand_hint() has been called for this image
|
|
- im_jpeg2vips.c, set scale_num on shrink (thanks Guido)
|
|
- heh argh reading history always stopped after the first line (thanks Haida)
|
|
- added im_histindexed
|
|
- new im_iterate() calls start and stop functions from workers so resources
|
|
they make are owned by the worker thread ... this makes it possible to have
|
|
start functions which create mutiple regions and therefore allows
|
|
im_iterate() to scan more than one image at once
|
|
- threadgroup no longer has any default action, you must attach a work
|
|
function
|
|
- added im_copy_file()
|
|
- added im_insertset()
|
|
- im_insertplace() allows small to be outside big
|
|
- added im__colour_difference(), colour ops now work on any image format
|
|
- added im_col_display_get_table(), so display tables are now shared by name
|
|
- added im__colour_unary()
|
|
- drop "set" postfix from names, so "insert" can now take a vector of positions
|
|
- deprecate all the "_raw" variants, not really necessary now
|
|
- removed "contrib", not very useful anymore
|
|
- added im_header_as_string()
|
|
- im_malloc()/im_free() now call g_try_malloc()/g_free() ... removes confusion
|
|
over whether to use im_free() or g_free() for things like im_header_string()
|
|
- added im_history_get(), im_getexp(), im_printdesc() as wrapped functions ...
|
|
so you no longer need the "header" program
|
|
- image vectors from Python work, woo
|
|
|
|
25/3/09 started 7.18.0
|
|
- revised version numbers
|
|
- updated vipsmanual
|
|
- revised manpages
|
|
- removed name and "changed" from vipsobject since we don't use them yet
|
|
- explicitly link with stdc++ for nohalo etc. stuff
|
|
- wrap im_gauss_imask_sep in C++/Python
|
|
|
|
6/3/09 started 7.17.3
|
|
- revised nohalo
|
|
- remove fading stuff from im_render() -- cleaner and simpler
|
|
- configure spots support for "restrict"
|
|
- reset dcm:display-range on magick read to help DICOM
|
|
- saner im_buildlut() behaviour
|
|
- added im_gauss_imask_sep()
|
|
- allow open and view of truncated images (thanks Joe & Rachel)
|
|
- revising rounding on im_affine*() coordinate transforms to make them more
|
|
stable
|
|
- added Radiance write
|
|
- added im_float2rad()
|
|
- added IM_CODING_RAD, support where it makes sense (extract, flip, rotate,
|
|
etc.)
|
|
- IM_PROGRESS env var
|
|
- docs for rad2float and IM_CODING_RAD
|
|
|
|
3/3/09 started 7.17.2
|
|
- im_magick2vips.c: allow funky bit depths, like 14 (thanks Mikkel)
|
|
- isradiance was returning TRUE too often
|
|
- radiance loader now loads packed RGBE/XYZE instead of unpacking to float
|
|
- added im_rad2float()
|
|
|
|
11/10/08 started 7.17.0
|
|
- merge vips-7.16 brach back into trunk
|
|
- bumped version number to 7.17.0
|
|
- re-added type.[hc]
|
|
- added vipsinterpolate and im_affinei
|
|
- added yafrsmooth interpolation
|
|
- added yafrtest
|
|
- added yafrnohalo
|
|
- ubuntu 8.10 changes
|
|
- interpolators get an output pointer, not region
|
|
- tuning for bicubic
|
|
- revised transform / clip code, we now do corner not centre
|
|
- yafr-smooth reworked along the lines of bicubic
|
|
- cleanups after yafr hacking
|
|
- added affinei_all
|
|
- don't set im_error() on failed callback
|
|
- moved im_format_t to VipsFormat, now sits over VipsObject
|
|
- IM_FORMAT_FLAG_PARTIAL -> VIPS_FORMAT_PARTIAL
|
|
- updated docs
|
|
- interpolators use type introspection
|
|
- added vips --list classes, does formats too
|
|
- include sys/param.h to get PATH_MAX in more places
|
|
- added vips_format_get_flags()
|
|
- oop, forgot to check for cancel during tiled tiff write
|
|
- don't use mmap for tiff read: no performance advantage, chews up VM
|
|
- VIPS_INTERPOLATE_SHIFT bumped to 12, we need the extra precision for u16 gel
|
|
data
|
|
- added string->double transform for cmdline args
|
|
- merged class-params branch back into trunk
|
|
- IM_FREE() can do "const char*" variables
|
|
- im_buf_t renamed as VipsBuf
|
|
- added vips_object_to_string()
|
|
- added "nickname" and "description" properties to VipsObject
|
|
- shift/and/or/eor ops were broken for non-int types
|
|
- added nohalo interpolator
|
|
- updated format docs
|
|
- IM_INPUT_INTERPOLATE() now used by affinei and affinei_all
|
|
- added vips_object_new
|
|
- resamplers/interpolators now in a resample package
|
|
- removed yafrnohalo.c
|
|
- added matio as a dependency
|
|
- added Matlab save file read
|
|
- added Radiance file read
|
|
- better file-not-found messages
|
|
|
|
11/9/08 started 7.16.3
|
|
- oop typo in manpage for im_project()
|
|
- doc fixes
|
|
- returning non-zero from eval callbacks was not always stopping computation
|
|
|
|
11/9/08 started 7.16.2
|
|
- added --without-v4l option
|
|
- added -no-undefined to libsrcCC build, so we get a libvipsCC.dll
|
|
- removed the swig dependency: we include the generated bindings in the
|
|
distribution tarball
|
|
|
|
6/9/08 started 7.16.1
|
|
- trigger eval callbacks on tiled tiff write
|
|
- added vips as an im_format_t
|
|
- added im_format_write()/_read() convenience functions
|
|
- more cleanups for the format API, argh
|
|
- removed win32/ directory now mingw finally makes DLLs correctly
|
|
- removed the windowed spcor for now, it has some edge effects
|
|
|
|
24/8/08 branch for 7.16
|
|
- renames and version numbers
|
|
- load plgs from libdir as well as libdir/vips-x.x for compat
|
|
- complex -> complex conversion was broken
|
|
- refstring <-> gstring transforms
|
|
- better behaviour with Magick non-presence
|
|
- added --enable-links switch to configure ... we no longer make the bin/im_*
|
|
links by default
|
|
- started a 'format' section in the docs
|
|
- configure fails if no gettext found
|
|
- revised po/
|
|
- released as 7.16.0!
|
|
|
|
25/5/08 fork for loadable image format branch
|
|
- image load/save in non-vips format code moved to own dir
|
|
- simple format searching added
|
|
- some cleanups for vips load
|
|
- im_open() simplified
|
|
- add im_format_flags
|
|
- only consider formats with a save method in im_format_for_name()
|
|
- oops, format sort order was reversed
|
|
- im_filename_suffix() includes "." in suffix
|
|
- merge back into trunk for 7.15.1
|
|
- remove im_ispng(), im_png2vips_header() etc. & friends
|
|
- add "vips --list formats"
|
|
- rename VBuf as im_buf_t for consistency
|
|
- add type.[hc], start of new type system
|
|
- removed man pages for IM_MIN, MAX and RINT to avoid case confusion on
|
|
OS X / win
|
|
|
|
7/3/08 started 7.15.0
|
|
- MAGIC constants should be tagged as unsigned
|
|
- write MAGIC correctly on sparc/powerpc machines (thanks Joe)
|
|
- oop, we were still making fade threads even when not fading
|
|
- tiny cond jump fixes for valgrind in colour.c
|
|
- remove -lstdc++ from libs, except on windows
|
|
- push Magick cflags earlier in the include order to make it easier to pick
|
|
GraphicsMagick over ImageMagick (thanks Mikhail)
|
|
- fix the en_GB translation
|
|
- use meta to preserve resunit between tiff load and save
|
|
- small doc improvements
|
|
- read and write CMYKA tiff (thanks Doron)
|
|
- performance improvements for morphology ops, esp. when zooming out
|
|
- oop, im_render() was broken for mask == NULL
|
|
- better support for multiple Python installs (thanks Jay)
|
|
- better IM_SETSTR() stops some warnings
|
|
- im_histcum() works for signed histograms
|
|
- better rounding for im_conv(), im_convsep()
|
|
- tiny speedup for im_conv()
|
|
- better /0 test for remainderconst
|
|
- revise i18n configure, get rid of intltool
|
|
- command-line IMAGVEC input could segv with non-vips image output
|
|
- added .tobuffer()/.frombuffer(), .tostring()/.fromstring() to Python binding
|
|
- add PIL_mode_from_vips () and vips_from_PIL_mode () utility functions
|
|
- update docs for new Python stuff
|
|
- FIND_ macros no longer search for stuff, you have to specify prefixes if the
|
|
packages are not on the default path (or in $prefix). This avoids some
|
|
accidents on some platforms
|
|
- configure prints a summary of optional packages found at the end
|
|
- im_lhisteq() checks for window too small
|
|
- added invalidate callbacks
|
|
- now tests for MagickWand before ImageMagick (thanks Adam Turcotte)
|
|
- added "-rotate" option to vips2dj
|
|
- added man page for im_resize_linear
|
|
- better jpeg-in-tiff YCbCr read (thanks Ole)
|
|
- oops, invalidatefns were not being freed on im__close()
|
|
- VMask() can init from std::vector, so Python can init from []
|
|
- added IM_LIBDIR, im_guess_libdir()
|
|
- load plugins from libdir/vips-x.x on startup
|
|
- added meta get/set int/double/string/area/blob/GValue to C++ API
|
|
- include time_t in vips.h, thanks Nicolas Robidoux
|
|
- lock global image list (thanks lee)
|
|
|
|
25/1/08 started 7.14.0
|
|
- bump all version numbers for new stable
|
|
- better CMYK JPEG read (thanks Ole)
|
|
- add __str__ to VError in Python (thanks Ole)
|
|
- revert the dynamic wrapping for Python :-( next version!
|
|
- added VImage::convert2disc (thanks Ole)
|
|
- you can now set the jpeg quality factor for tiff pyramids (thanks Joe)
|
|
- you can now shrink jpegs during read, see "man im_jpeg2vips"
|
|
- added CMYK JPEG write
|
|
- optionally use GraphicsMagick (thanks Bob Friesenhahn)
|
|
- look for MAGICKCORE_HDRI_SUPPORT (thanks Marcel)
|
|
- set icc profiles in tiff pyramids explicitly (thanks Joe)
|
|
- add --without-cimg configure option
|
|
- add im_maxpos_subpel
|
|
- make im_abs compile without liboil
|
|
- add im_align_bands
|
|
- fix type overflow in complex division
|
|
- fix im_cross_phase and im_addgnoise (Tom)
|
|
- updated docs, C++ and python
|
|
- header no longer stops on error
|
|
- C++ dummy2.cpp helps OS X linking
|
|
|
|
12/12/07 started 7.13.3
|
|
- added "include <cstring>" to VImage.cc to help gcc 4.3
|
|
- started moving the python binding to dynamic wrapping
|
|
- added im_wrap(), im_wraptwo(), im_phasecor_fft(), im_cross_phase() (Tom)
|
|
- memleak plugged in im_save_string_setf()
|
|
- bugfix in and docs for im_gradcor() (Tom)
|
|
- use Glib macros to make im_msb work on big-endian platforms (Tom)
|
|
- use Glib macros to get rid of needless compile warnings (Tom)
|
|
- fix type overflow in im_c2ps/im_abs (Tom)
|
|
|
|
31/10/07 started 7.13.2
|
|
- build cimg on windows fixes
|
|
- various include cleanups, updated man pages
|
|
- break im_wbuffer() out to a separate API
|
|
- use im_wbuffer() to make im_vips2jpeg() compress in the background
|
|
- also im_vips2png(), im_vips2tiff(), im_vips2ppm()
|
|
- revised evaluation progress system
|
|
- new evalstart/evalend/preclose callbacks fix over/underflow reporting
|
|
- but the meaning of evalend has changed in a non-backwards-compatible way :(
|
|
use preclose instead ito get the old behaviour
|
|
- added "--vips-progress" flag to turn on a simple eval progress tracker
|
|
- make im_spcor[12] static, im_spcor is wrapper (Tom)
|
|
|
|
28/9/07 started 7.13.1
|
|
- vips2dj can print RGB images
|
|
- oop, include <stdexcept> missing
|
|
- add protos for generate/iterate function args, fix warnings
|
|
- add cimg package, we now have C++ source inside VIPS, sigh
|
|
- added OUTPUT_DOUBLEVEC and OUTPUT_INTVEC, use for im_maxpos_vec() and friends
|
|
|
|
29/8/07 started 7.13.0
|
|
- we now have a trunk and the version is 7.13.x, woo!
|
|
- move manpages into a separate man/ dir ... speeds up builds a lot on windows
|
|
- don't install malkovich
|
|
- don't fail on unknown args for python (thanks Simon)
|
|
|
|
1/8/07 started 7.12.5
|
|
- im_embed() is more general ... x and y can be negative
|
|
- predicate.c is smaller and cleaner
|
|
- libsrcCC link improvement from Pablo
|
|
- support 32/64-bit ImageMagick as well (thanks Marcel)
|
|
- better im_magick2vips() for Q8 ImageMagick
|
|
- split repository to trunk/branches ready for a stable 7.12.x branch
|
|
|
|
27/7/07 started 7.12.4
|
|
- proto.h had vars called small, breaking on win32
|
|
- more python fixing, we now have working matricies too
|
|
|
|
17/7/07 started 7.12.3
|
|
- fix to VImage.i for gcc 4.2 (thanks Damir)
|
|
- eek, off by 1 for more than 1 band hists
|
|
- needed a slightly larger worst-case buffer in im__b64_encode()
|
|
- tiny cleanup for make_hI() prevents cond jump on ui in valgrind
|
|
- --disable-threads was broken again
|
|
- remove .svn dirs from dist
|
|
- now passes distcheck again
|
|
|
|
17/7/07 started 7.12.2
|
|
- added im_bandmean()
|
|
- added support for TIFFTAG_PREDICTOR (Andrey Kiselev)
|
|
- fix TIFFOpen() mode snafu (Andrey Kiselev)
|
|
|
|
11/5/07 started 7.12.1
|
|
- memory.c abort()s with DEBUG
|
|
- oops, im_bits_of_fmt() manpage was not being installed
|
|
- im_histcum() can do all image types
|
|
- updated NEWS
|
|
- added im_csv2vips_header()
|
|
- command-line csv read was broken (thanks Tom)
|
|
- removed length limit on argument vectors (Tom)
|
|
- added IM_PREFIX, configure-time install prefix
|
|
- oop, turned off memory.c DEBUG
|
|
- fix some bogus gcc 4.1 warnings with im_open_local_array()
|
|
- better vips usage message
|
|
- oops, IM_ANY missing from im_demand_hint() manpage (thanks Shahid)
|
|
- just warn if plugins fail to load in im_init_world()
|
|
- expose Vargv and make refblock public rather than private so that
|
|
subclasses of VImage can add vips-style member operations (thanks Pablo)
|
|
- oops, im_initdesc() needed to have bbits set correctly (thanks Shahid)
|
|
- make VError derive from std::exception more officially
|
|
- woo, got exceptions working in SWIG
|
|
- soname version bumped to 12.x.x
|
|
- oops, added vector ops to Python
|
|
- check for overflow of int in return of strtol in dispatch system (Tom)
|
|
- add im_[di]mask_[xy]size to dispatch system (Tom)
|
|
- add im_gradcor(), im_grad_[xy] (Tom)
|
|
|
|
26/3/07 started 7.11.21
|
|
- ooo, added %include "std_except.i" & friends to VError.i, VImage.i
|
|
- im_init_world() is more lenient about recursive invocation
|
|
- im_gbandjoin() falls back to im_copy() for 1 input image
|
|
- race condition fixed in im_render.c (thanks Simon)
|
|
- bump for 7.12!!!
|
|
|
|
26/1/07 started 7.11.20
|
|
- another fix to im_region_image() (thanks Mikkel)
|
|
- tiny speed up to im_rect_includesrect()
|
|
- avoid recursive invocation in im_init_world() (thanks Christian)
|
|
- fix to extract_prefix (thanks Christian)
|
|
- buffer cache is now per thread
|
|
- combine buffer unref and ref in a single operation to reduce malloc/free
|
|
cycles
|
|
- new internal API for passing regions between threads means we can remove
|
|
buffer locks
|
|
- more buffer/region sanity checks, plus a memory barrier
|
|
- lock around error buffer changes
|
|
- im_vips2mask() was wrong for nx1 m-band images
|
|
- liboil back to "test"
|
|
- add buffer_cache_list to avoid GHashTable _insert()s
|
|
- oop, --vips-concurrency was broken
|
|
- renamed (in dispatch layer) im_and/or/eor_const -> im_and/or/eorimageconst
|
|
for consistency
|
|
- C++ API wraps IMAGEVEC, DOUBLEVEC, INTVEC arguments
|
|
- oop, IMAGE % vector<double> was broken
|
|
|
|
21/12/06 started 7.11.19
|
|
- added im_linreg() (Tom)
|
|
- various C++ API polishes, plus a bugfix (Dennis Lubert)
|
|
- vips.spec split to devel and python too (Dennis Lubert)
|
|
- be more explicit about sizeof(magic)
|
|
- init magic to native order by default (thanks Dennis)
|
|
- Hist becomes im_history_get()
|
|
- new history mechanism is faster, uses much less memory, and removes
|
|
duplicate lines
|
|
- added im_get_option_group()
|
|
- added official im_concurrency_set()/_get()()
|
|
- don't read bbits from vips files ... set ourselves from bandfmt
|
|
- oops add RGB16 and GREY16 to C++ header
|
|
- --list packages option to vips.c
|
|
- updated docs to 7.12
|
|
- oops, im_region_image() snafu was causing a lot of recomputation
|
|
- make im_mpercent() suck a little less
|
|
- EXIF save was a bit bOrked ... cause of mac crashes?
|
|
- im_histgr(), im_heq(), im_hist() all number bands from zero now
|
|
- fix stride in liboil calls
|
|
- set RGB16 on 16-bit RGB ICC export
|
|
|
|
29/11/06 started 7.11.18
|
|
- added im_buffer_t so regions can share calculated pixels: 2-3x speedup on
|
|
the benchmark
|
|
- im_region_local() -> im_region_buffer()
|
|
- im_sharpen() order change to help sharing
|
|
- im_invalidate() clears buffer caches
|
|
- add sentinel attributes
|
|
- add some missing im_demand_hint()s
|
|
- paint ops invalidate the output image
|
|
- fix nothread eval
|
|
- raise threads limit to 1024 (thanks Christian)
|
|
- manual redone
|
|
- vipsCC python init() hooks
|
|
- add liboil dependency
|
|
- use liboil for im_abs(), im_add(), im_divide(), im_floor(), im_multiply(),
|
|
im_subtract(), im_lintra(), im_avg(),im_deviate()
|
|
- quiet libtoolize test (thanks Tom)
|
|
- im_benchmarkn now regrows image each time
|
|
- strip meta from sample2.v ... saves a lot of mem (esp. Hist)
|
|
- added im_isscalar() (Tom)
|
|
- added IM_REGION_ADDR_TOPLEFT() (Tom)
|
|
- reduce size of im_rightshift_size.c to help compile (Tom)
|
|
- make im_stop_many(NULL) safe (Tom)
|
|
|
|
24/11/06 started 7.11.17
|
|
1;5Q
|
|
- better benchmark script makes graphing easier
|
|
- double-buffer image file writes
|
|
- reuse write threads
|
|
- clean up threadgroup / iterate / generate
|
|
- added im_benchmarkn to make it easier to make a CPU-bound op on large
|
|
machines
|
|
- im_cache() failed for cpus > 1
|
|
|
|
1/11/06 started 7.11.16
|
|
- moved im__convert_saveable() into im_copy() (thanks Christian)
|
|
- missing gobject dependency (thanks Christian)
|
|
- --enable-threads was broken (thanks Christian)
|
|
- eval without theads was broken (thanks Christian)
|
|
- LIBADD libvips.la to libvipsCC.la (thanks Simon)
|
|
- benchmark.sh is now plain sh, not bash
|
|
- set ORIENTATION_TOPLEFT in im_vips2tiff (thanks Josef)
|
|
- oops, im_vips2csv() output separator was broken
|
|
- added im_benchmark2
|
|
- move XYZ2Lab LUT build outside the eval thread
|
|
|
|
30/10/06 started 7.11.15
|
|
- print leaked windows
|
|
- oops, race condition in im_window_unref()
|
|
- integrated im_region_window() into im_region_image(), tiny speed up
|
|
|
|
6/10/06 started 7.11.14
|
|
- ifthenelse and affine dhints revised
|
|
- buildlut no longer outputs x cods
|
|
- configure asks for glib >= 2.6 (we need GOption)
|
|
- configure uses AC_TOOL_CHECK to find tool names to help cross-compiling.
|
|
- better configure test for libexif
|
|
- add </libexif/ prefix if required
|
|
- test for glibtoolize during bootstrap to help OS X
|
|
- add --version to vips main prog
|
|
- don't set Type in im_scale, want to be able to scale hists, for example
|
|
- im_vips2mask() allows multiband hists as well
|
|
- im_vips2csv() lets you specify an output separator
|
|
- vips.c cleanups in arg handling
|
|
- removed python binding to C layer, too hard to get it working right
|
|
- leak test python test program
|
|
- added throw() decls to C++ to help SWIG
|
|
- no longer derive VError from std::exception, can't get it to work with SWIG
|
|
- added mmap window manager to share windows between regions ... big reduction
|
|
in VM use for large workspaces and for SMP
|
|
- add im_spcor2 (with sliding window) (Tom)
|
|
|
|
15/9/06 started 7.11.12
|
|
- python vips wrapper hooks into init to start vips
|
|
- oop, python detect was broken again
|
|
- im_file_length() error return was wrong (thanks Christian)
|
|
- im_csv2vips() isnored last column if there was no trailing
|
|
whitespace/quoting
|
|
- test for NULL filename/mode, common if you forget to check argc
|
|
(thanks Bruno)
|
|
- im_break_token() returns NULL on trailing whitespace ... helps read_dmask
|
|
work with trailing whitespace on matrix headers
|
|
- added im_buildlut(3)
|
|
- removed extra im_free() in im_copy() fallback in im_msb()
|
|
- added GValue input/output args
|
|
- various C++ binding improvements (thanks Dennis): namespace support,
|
|
VError inherits from std::exception, small fixups
|
|
- remove im_msb() warning on fallback to copy for uchar ... not very serious,
|
|
happens a lot in nip2
|
|
- added <vips/vips> C++ include ... include in a namespace
|
|
- added im_benchmark / SMP benchmark script
|
|
- add im_maxpos_avg() and im_point_bilinear() (Tom)
|
|
- make im_region_free(NULL) safe (Tom)
|
|
- link in manpages for im_contrast_surface (Tom)
|
|
|
|
8/9/06 started 7.11.11
|
|
- add im_norm_dmask()
|
|
- removed old code for gradient and lindetect
|
|
- internal decls split from proto.h to help SWIG
|
|
- test for python and SWIG during configure
|
|
- added python dir for the binding
|
|
- python binding done!
|
|
- oops, --without-python was broken (thanks Tom)
|
|
- added python/test
|
|
- add im_lu_decomp() im_lu_solve(), rewrite NR type functions in terms of these (Tom)
|
|
|
|
23/6/06 started 7.11.10
|
|
- still more im_affine() rounding/clipping tweaks
|
|
- ignore "--" arguments to vips.c
|
|
- im_init_world() also sets g_*_prgname() and loads plugins
|
|
- add manpage for im_init_world() (oops)
|
|
- error_exit() prints prgname
|
|
- various cygwin fixes
|
|
- fix cache thread assert failure (thanks Joe)
|
|
- "header" now uses GOption, slightly different args, will loop over args
|
|
- fixed assert() overenthusiasm in im_prepare()
|
|
- im_csv2vips() now has separate whitespace / separator tables
|
|
- add im_rightshift_size() (Tom)
|
|
- add im_maxpos_vec(), im_minpos_vec() (Tom)
|
|
- add im_norm_dmask() (Tom)
|
|
- make im_free_[di]mask(NULL) safe (Tom)
|
|
|
|
23/6/06 started 7.11.9
|
|
- back on sourceforge CVS again
|
|
- require openexr 1.2.2 or greater
|
|
- range check xy on im_insert*() for sanity
|
|
- VMask::invertlut decl removed (thanks Jean)
|
|
- added \"all\" option to vips.c
|
|
|
|
17/5/06 started 7.11.8
|
|
- debrokened openexr read
|
|
- added im_tile_cache()
|
|
- added tiled read to im_exr2vips()
|
|
- im_tiff2vips() now uses im_tile_cache() rather than its own cache ...
|
|
faster in some cases, less RAM use in some cases, saves 200+ lines
|
|
- removed 'broken' read option from im_tiff2vips()
|
|
- read/write doubles with g_ascii_strtod() and friends where appropriate
|
|
- add a "thread" member to region to help sanity check region ownership
|
|
- saner threadgroup fixes a race problem on gcc 4.0.3 / amd64
|
|
- added im_vips2csv()
|
|
- im_open() now does CSV read/write too
|
|
- oops, broke vips main prog for function name in argv1 case
|
|
|
|
22/4/06 started 7.11.7
|
|
- split vips_png.c to im_vips2png.c and im_png2vips.c
|
|
- added OpenEXR dependency
|
|
- added im_exr2vips(), im_exr2vips_header()
|
|
- added im_isexr(), im_open() knows about OpenEXR
|
|
- added im_contrast_surface(), im_contrast_surface_raw() (Tom)
|
|
- added im_msb(), im_msb_band() (Tom)
|
|
- im_scale() sets Type on output
|
|
- added RGB16, GREY16 types
|
|
- im_*2vips() set these types if appropriate
|
|
- configure fixes for mac
|
|
- vips main prog uses GOption
|
|
- im_icc_* locks around calls to cmsDoTransform() to avoid corruption on SMP
|
|
machines
|
|
- add im_prepare_many() (Tom)
|
|
|
|
10/3/06 started 7.11.6
|
|
- typo in manpage and header for im_rect_dup() (Tom)
|
|
- don't abort image load if XML read fails
|
|
- added im_video_test() ... test video source
|
|
- oops, lcms .pc finder was not working
|
|
- clipping problem in im_affine() fixed (thanks Clare)
|
|
- test for attr support in libmagick
|
|
- im_text() returns an error for empty string
|
|
- im_falsecolour() scale reversed
|
|
- im_remosaic() could crash on bad mosaics
|
|
- configure changes to fix --without-magick, lcms and fftw (but sadly we now
|
|
require .pc files for these libs)
|
|
- im_vips2jpeg() automatically converts to 1 or 3 band sRGB uchar for write
|
|
- also im_vips2png()
|
|
- added im_project()
|
|
|
|
20/2/06 started 7.11.5
|
|
- added im_csv2vips()
|
|
- commas in filename options can be escaped with a '\'
|
|
- raise tile buffer limit (thanks Ruven)
|
|
- im_spcor() and im_fastcor() have prettier borders
|
|
- im_fastcor() returns sum of squares of differences, not sum of abs of
|
|
differences
|
|
|
|
18/11/05 started 7.11.4
|
|
- small win32 fixes, thanks Juan
|
|
- added im_flood_blob_copy() ... a temporary hack
|
|
- much faster im_histplot()
|
|
- read RGBA palette-ized PNG images more robustly (thanks Tom)
|
|
- turn on -ms-bitfields automatically for mingw
|
|
|
|
26/9/05 started 7.11.3
|
|
- better error recovery for im_binfile() file too large
|
|
- all raw files now use mmap windows, so (eg.) ppm and analyze reads can go
|
|
>2GB
|
|
- remove DISABLE_COMPAT ... you now have to define IM_ENABLE_DEPRECATED to get
|
|
broken #defines
|
|
- fix to build without exif, thanks Chas
|
|
- use native win32 API for seek()/truncate() to work with large files
|
|
- use attribute to check printf-style args with gcc
|
|
- fix gcc4 warnings
|
|
- removed ebuild, since it's in gentoo now
|
|
- im_magick2vips() sets meta from attributes (good for dicom)
|
|
- im_magick2vips() writes many-frame images as tall thin VIPS images
|
|
- im_histcum() was broken for vertical histograms
|
|
- im_histnorm() is neater
|
|
- simpler and faster inner loop for im_conv() and im_convf() avoids gcc4 bug
|
|
- appendc() was reading past the end of the buffer on MSB machines
|
|
|
|
13/6/05 started 7.11.2
|
|
- im_copy_set() was messed up in 7.11.1
|
|
- put into CVS, phew
|
|
- fixed a rounding bug in im_affine() ... should no longer get black edges on
|
|
image resize
|
|
- if TIFF open fails in im_open(), try going through libmagick
|
|
- merge requires all bands == 0 for transparency (used to just check 1st
|
|
band)
|
|
- 16 bit LAB TIFF read/write was wrong
|
|
- new GType for refstring makes it visible from im_header_map()
|
|
- jpeg loader attaches exif data (and human-readable meta fields)
|
|
- jpeg saver writes any exif data
|
|
- meta not wiped by im_*incheck() in a "w" image
|
|
- meta keeps traverse order
|
|
- now require glib >= 2.4
|
|
- require libxml-2.0 for meta save and new history mechanism
|
|
- no more .desc files, history saved in XML after pixel data
|
|
- i/s/d meta fields saved there too
|
|
- added base64 encode/decode
|
|
- added blob header write
|
|
- added a save string type: types which define transforms to and from the
|
|
save format get serialized
|
|
- GValue meta API now exposed, since we can serialise anything
|
|
- jpeg loader loads ICC profiles
|
|
- jpeg saver saves ICC profiles from the VIPS header
|
|
- src/header.c knows about meta system
|
|
- added im_analyze2vips(), im_grid(), im_raw2vips()
|
|
- extract/grid/replicate/zoom were not setting TRANSFORM flag
|
|
- better falsecolour LUT
|
|
- less stupid + more portable read/write of VIPS header
|
|
- better im_updatehist()
|
|
- jpeg load sets vips xres/yres from exif, if possible
|
|
- jpeg save sets exif xres/yres from vips, if possible
|
|
- icc_export and icc_transform attach profiles and intents to output images
|
|
- added im_icc_import_embedded() to import with an embedded profile
|
|
- split vips_jpeg.c into two, it was getting too big
|
|
- added im_cp_descv(), im_cp_desc_array(), funcs use them
|
|
- removed im_append_Hist() from API
|
|
- fixed meta copy bug
|
|
- better history copy, removed nonsense about 1st line of Hist being special
|
|
- tiff read/write now reads/writes ICC profile from meta
|
|
- edvips rewritten to remove stupidness, and can now set xml
|
|
- header can now print xml extension block
|
|
- IM_ prefix for colour temp names
|
|
|
|
1/6/05 started 7.11
|
|
- added im_copy_morph()
|
|
- im_region_region() allows Bands and BandFmt to differ, provided
|
|
sizeof( pel ) is the same ... makes im_copy_morph() work
|
|
- added im_meta*() functions (MW)
|
|
- im_header_*() rewritten for meta
|
|
- added im_header_exists(), im_header_map()
|
|
- use pkg-config to find libpng and ImageMagick
|
|
- added im_lineset()
|
|
- added im_extract_areabands() (JF)
|
|
- added im_copy_from() (JF)
|
|
|
|
15/4/05 started 7.10.12
|
|
- im_ifthenelse just evals left/right for region all zero/all one
|
|
- also im_blend
|
|
- swap g_setenv() back to plain setenv() so we work with glib 2.2
|
|
|
|
9/4/05 JC started 7.10.11
|
|
- docs no longer have broken links
|
|
- fixed memleak in im_text()
|
|
|
|
8/4/05
|
|
- one bit tiff read was sometimes reading a byte too far in each scanline
|
|
|
|
14/1/05 started 7.10.9
|
|
- im_filename_split() will now usually work for filenames containing ':'
|
|
characters
|
|
- added im_render_fade() for fancier nip2 image repaint
|
|
- added "ccittfax4" as a TIFF compression option
|
|
- fix all 64-bit compiler warnings
|
|
- "," allowed as column separator in mask read
|
|
- better at spotting singular matricies
|
|
- small im_render() tidies
|
|
- glib dependancy reduced to just 2.0, but untested ... helps people building
|
|
on older systems who aren't interested in nip2
|
|
- removing leading spaces from IMAGEVEC arguments
|
|
- load non-interlaced PNGs more efficiently
|
|
- 1 point mosaic functions work on more image types
|
|
- better memory allocation debugging info
|
|
- local memory on regions can shrink as well as grow
|
|
- shut down threadgroups on render if no dirty tiles
|
|
- limit number of simultaneous renders
|
|
- higher mmap window threshold
|
|
- allow max == -1 for unlimited render cache
|
|
- 'priority' marks non-suspendable renders
|
|
- im_embed() mode == 4 paints white pels
|
|
- im_tiff2vips() was broken with --disable-threads
|
|
- oops, im_errormsg() compat macros were GCC only
|
|
- larger default tile size and strip height
|
|
- tiff write sets PHOTOMETRIC_CIELAB for vips TYPE_LAB images ... so we can
|
|
write float LAB as well as float RGB (thanks Ruven)
|
|
- also 16 bit LAB TIFF write
|
|
- im_render() rewritten
|
|
|
|
20/11/04 started 7.10.8
|
|
- im_sharpen() is ~15% faster
|
|
- more quoting for MAGICK finder
|
|
- im_XYZ2Lab() uses a LUT rather than cbrt(), 5x faster
|
|
- --disable-threads removes gthread dependency completely (thanks Simon)
|
|
- intercept TIFF warnings as well as errors ... stops occasional libMagick
|
|
exceptions
|
|
- add im_init_world() to im_init() as well to help backwards compat (thanks
|
|
Simon)
|
|
- im_icc_present() function description was broken, thanks Jay
|
|
- oops, libtool library versioning was wrong, thanks Jay
|
|
- can now make TIFF pyramids of any non-complex image type (was uchar and LAB
|
|
only), thanks Ruven
|
|
- 1st order mosaic code now works for LABQ too
|
|
- build system changes to make "make distcheck" work
|
|
- RPM .spec files fixed up and updated by configure (thanks Simon)
|
|
- tiny cleanups for vdump
|
|
- use g_setenv()/g_getenv()
|
|
- tiny improvements to IM_FREE*()
|
|
- tiny VImage debug print fixes (thanks Jay)
|
|
- swap off_t for gint64 to fix LARGEFILE support on win32
|
|
- computation feedback now uses gint64 for number of pels, so we give feedback
|
|
correctly on images with >2**31 pels
|
|
- other small fixes for >2**31 pels in an image
|
|
|
|
10/11/04 started 7.10.7
|
|
- im_histnD() was not checking BandFmt (thanks Kirk)
|
|
- improvements to threading system speed up non-vips output in some cases
|
|
- use cbrt(x) where we can ... 10x faster than pow(x,1.0/3) on win32
|
|
- typeo in im_text() when built without PANGOFT2 (thanks Stefan)
|
|
|
|
1/11/04 styarted 7.10.6
|
|
- tiny doc fixes
|
|
- scripts now only depend on 'vips' program
|
|
- im_open( "r" ) is now lazier ... for non-VIPS formats, we delay read until
|
|
the first ->generate()
|
|
- so im_open_header() now deprecated since im_open("r") is identical
|
|
- now looks for fftw3 as well as fftw2 ... slightly faster ffts
|
|
|
|
19/10/04 started 7.10.5
|
|
- fix to light_correct (thanks Jay)
|
|
- edvips knows about xoffset/yoffset
|
|
- better vips enum<->char conversions
|
|
|
|
4/10/04 started 7.10.4
|
|
- man page fixes (thanks Jay)
|
|
- removed last csh scripts (thanks Jay)
|
|
- scripts default VIPSHOME to $prefix (thanks Jay)
|
|
- doc build system tidies
|
|
- im_rank() edge padding was wrong
|
|
- im_vips2tiff() can now embed ICC profiles
|
|
|
|
22/9/04 started 7.10.3
|
|
- mildly better im_vips2tiff()
|
|
- *, -, +, /, % between two images now work for mixed number of bands
|
|
- im_free() was missing a man page
|
|
- revised documentation
|
|
|
|
1/9/04 started 7.10.2
|
|
- C++ .pc files were still set for 7.9, grr
|
|
- im_insertplace() didn't check compatibility of images (thanks Matt)
|
|
|
|
27/7/04 started 7.10.1
|
|
- set default stack size explicitly to help platforms with a very low default
|
|
- 16 bit RGB tiff read was broken (bug introduced in 7.9.5, thanks Haida)
|
|
- !pangoft2 was broken, thanks Kenneth
|
|
- win32 build fixes
|
|
|
|
12/7/04 renamed as 7.10.0
|
|
- added NOCACHE function flag ... stops nip memoising video & paint ops
|
|
- added im_extract_bands() ... takes out many bands from an image
|
|
- im_vips2tiff() scanline write speed up for area pipelines
|
|
|
|
10/6/04 started 7.9.6
|
|
- tiny polishing of im_ppm2vips()
|
|
- im_blend() can now work on labq
|
|
- boolean ops all work on float/complex images (by casting to int)
|
|
- im_maplut() was broken for 1 band image + many band lut + >8 bit output
|
|
- im_lintra_vec() now handles 1 band image and many band vector to make many
|
|
band image
|
|
- oops, im_lintra_vec() was missing a man page
|
|
- im_measure() can work on labq
|
|
- im_lhisteq() uses new embed mode, _raw() version is one pixel smaller, sets
|
|
Xoffset/Yoffset for new origin scheme
|
|
- generalised im_tone_build() to any image type to make im_tone_build_range()
|
|
|
|
20/5/04 started 7.9.5
|
|
- tiff output res can be a single number too
|
|
- added im_text() to make a bitmap from a string with pango
|
|
- im_tiff2vips() does 16 bit RGBA
|
|
- im_binfile() was broken since 7.9.2 due to im_mapfile() change
|
|
- im_ppm2vips() now works for 16 bit images
|
|
- added im_copy_swap() ... copies, reversing byte order
|
|
- im_resize_linear() was broken for some images, thanks Javi
|
|
|
|
8/3/04 started 7.9.4
|
|
- oops, config.h include missing in a few places
|
|
- im_vips2tiff() can now write 1 bit images
|
|
- im__find_lr/tboverlap() now exported to nip
|
|
- better edge tile handling for tiff read/write (thanks Ruven)
|
|
- added extend-pixels-from-edge mode to im_embed()
|
|
- im_conv*(), im_rank(), im_stdif(), im_dilate(), im_erode() all use it to
|
|
expand their input, so their output now has guess borders, not black borders
|
|
- im_fastcor() now does an im_embed( 1 ) on the output ... the zero borders
|
|
were very annoying before, since you would usually be searching for the
|
|
minimum point
|
|
- no change to im_spcor(), since you will usually be searching for the maximum
|
|
- better im_render() cache behaviour under heavy loads
|
|
- im_affine() revised
|
|
* clip, resample and transform is now pixel-perfect for all
|
|
inputs (I hope)
|
|
* uses the new embed to make sure there are no black borders
|
|
from edge interpolation
|
|
* about 20 - 30% faster
|
|
- policy change: Xoffset and Yoffset are now set by all operations to record
|
|
the position of the input origin in the output
|
|
- im_replicate() is much faster for some cases
|
|
- added tile and mirror flags to im_embed()
|
|
- added im_cache() convenience function
|
|
- better ETA for image calculation
|
|
- im_tiff2vips() now has a "broken" option so it can read tiled tiffs made
|
|
with earlier versions of vips
|
|
- on convert float to int format, now does floor() not rint() ... more
|
|
'mathematical'
|
|
- added im_rint()
|
|
- im_sharpen() now uses a gaussian mask
|
|
- im_convsep() more resistant to int overflow problems
|
|
- added im_make_xy(), avoids rounding problems with the old float-based thing
|
|
- im_profile() now makes vertical images for a vertical profile
|
|
- added im_vips2tiff() option to set the resolution in inches not cm (thanks
|
|
Andrey)
|
|
- im_binfile() is now exported
|
|
|
|
6/2/04 started 7.9.3
|
|
- added an im_init_world() to im_open(), to help old progs
|
|
- renamed VSemaphore as im_semaphore_t
|
|
- started using libtool library versioning
|
|
- now uses g_module_*() in place of dlopen()
|
|
- now uses pkg-config instead of vips-config (thanks Simon)
|
|
- fixes to vips.h for _ADDR() with DEBUG on (thanks Konrad)
|
|
|
|
10/12/03 started 7.9.2
|
|
- patches for freebsd, thanks Lev Serebryakov
|
|
- vips2dj knows about my colour laser printer
|
|
- added i18n support, glib/gmodule/gthread dependency
|
|
- im_error*() API revised to be more i18n friendly
|
|
- List type removed, now uses g_slist
|
|
- VBuf added, some more utility funcs pushed down from nip
|
|
- im_thread stuff removed, now uses g_thread
|
|
- im_lock stuff removed, now uses g_mutex
|
|
- im_semaphore_t renamed to VSemaphore, not sure this is a good idea
|
|
- build with --disable-threads to turn off threaded render
|
|
- #include <vips/vips.h> now pulls in most of the public API, you shouldn't
|
|
need other vips includes very often
|
|
- im_close() is better at cleaning up if there's an error
|
|
- inverse FFTs could fail for wider-than-high images with fftw
|
|
- better im_icc_transform error messages
|
|
- bug fix in im_render with large caches
|
|
- im_binfile() now has an offset parameter
|
|
- im_mapfile()/im_unmapfile() now work on IMAGE and record the length of the
|
|
file they mapped ... this lets VIPS successfully unmap a file if it changes
|
|
size while it's open
|
|
|
|
20/10/03 started 7.9.1
|
|
- threadgroups now have their own kill flag
|
|
- im_plotmask() now does anti-aliasing
|
|
- im_iterate() fix for operations on mmap window images (thanks Clare)
|
|
- im_writeline() stops on kill
|
|
- fix for im_fwfft() segv for wider-than-high real images (thanks Andrey)
|
|
- fix for im_fwfft() to work for non-square real images (thanks Andrey)
|
|
- can now read and write 32-bit IEEE float TIFF (Andrey Kiselev)
|
|
- clean-ups for colour.c (Andrey Kiselev)
|
|
- no longer lets you make an image with width|height|bands == 0 (thanks Joe)
|
|
- im_vips2tiff(), im_vips2*jpeg*(), im_vips2png(), im_vips2ppm() could
|
|
sometimes fail for mmap window input images (thanks David)
|
|
- added IM_RECT_HCENTRE(), IM_RECT_VCENTRE() macros
|
|
|
|
20/8/03 JC
|
|
- started 7.9.0
|
|
- added im_rank_image() ... im_maxvalue() a special case of this
|
|
- im_subtract() goes up to int earlier for better value preserving, thanks
|
|
Haida
|
|
- im_rank() much faster for large windows, correct result on all platforms
|
|
(dratted memcpy() was causing problems before)
|
|
- fixed problem with libMagick config if installed somewhere strange
|
|
- fixed problem with include order in library compile
|
|
- added --without-magick configure option
|
|
- added im_render(), threaded background image paint
|
|
- added im_replicate(), replicate an image horizontally and vertically
|
|
|
|
31/5/03 JC
|
|
- started 7.8.11
|
|
- fixed a problem with relational operators and some combinations of input
|
|
types (bug introduced in 7.8.9), thanks Haida
|
|
- vips-7.8 script overrides VIPSHOME environment variable
|
|
- better im_guess_prefix
|
|
- stupid light_correct script no longer uses /pics/tmp
|
|
- added batch_crop script
|
|
|
|
22/5/03
|
|
- started 7.8.10
|
|
- the JPEG writer can embed ICC profiles in output images ... although I've
|
|
yet to see it make any difference :-( test this carefully at some point
|
|
- fixed a possible coredumper in jpeg write
|
|
- jpeg read now spots truncated files
|
|
- im_invertlut() now makes an image, not a mask ... sorry :-(
|
|
- im_histnD() makes an n-dimensional histogram from an n-band image
|
|
- im_col_pythagoras() patch
|
|
- IM_NUMBER() now returns int not size_t
|
|
- new win32 build system from Juan and friends, based on tmake
|
|
- sample project files for MSVC added, thanks Juan
|
|
- win32/ subdir now has the win32 build systems
|
|
- spec/ subdir now has the spec files for building RPMs
|
|
- dist now includes formatted documentation
|
|
- license change: VIPS is now LGPL, nip stays GPL ... this means proprietary
|
|
programs can link against the vips library
|
|
- had a report of a working VIPS build on a 64 bit system (!)
|
|
- im_log_dmask() now includes all of the negative lobe, thanks matt
|
|
- vips-7.8 start script now auto-relocates
|
|
- im_spcor_raw(), im_fastcor_raw() now exported
|
|
|
|
29/4/03
|
|
- started 7.8.9
|
|
- changes to build to help MSVC
|
|
- oops, makedef.pl missed out function names with an initial cap, and
|
|
error_exit()
|
|
- im_min() and im_max() gave random wrong results for >1 thread on >1 CPU
|
|
machines (bug introduced in 7.7.20), thanks Joe
|
|
- vips.c no longer generates C++ wrappers for functions with no image argument
|
|
(thanks Haida)
|
|
- im_invertlut() now wrapped by hand in VMask.cc
|
|
- C++ docs updated
|
|
- added im_open_header(), returns an IMAGE with just width/height/etc and no
|
|
data
|
|
- ... so now "header" will print useful stuff even on truncated files
|
|
- tiff writer knows about alpha (thanks Jenny)
|
|
|
|
7/2/03
|
|
- started 7.8.8
|
|
- build failed with lcms turned off
|
|
- im_spcor() could segv for 16bit images (thanks Joe)
|
|
- im_tiff2vips() read resolution expressed as pixels/cm incorrectly
|
|
- im_vips2tiff() tries not to write mad resolutions
|
|
- header and im_open file type tests reordered for slight speedup
|
|
- im_copy_set() had a broken dispatch function for xres/yres
|
|
- im_fwfft() exploits libfftw real -> complex transform if possible for a 2x
|
|
speed-up (thanks Matt)
|
|
- im_invfftr() added for complex -> real inverse transform for 2x speed-up
|
|
(thanks Matt)
|
|
- im_freqflt() now uses im_invfftr() for real result and speedup
|
|
- im_flipver() could segv on some inputs, thanks Clare
|
|
- relational operators now work on complex
|
|
- relational rewritten ... now fractionally slower, but 1/3 the size
|
|
- vips2dj -1:1 produced incorrect height
|
|
- better overlap-too-small detection in mosaicing code
|
|
- im_system() can have NULL output
|
|
- global balance ignores overlaps with only transparent pixels
|
|
|
|
3/1/03
|
|
- started 7.8.7
|
|
- worked in patch from Hans Breuer (thanks!)
|
|
- png read/write with im_png2vips(), im_png2vips_header(),
|
|
im_vips2png(), im_ispng()
|
|
- im_errorstring() and im_col_displays() are now functions not externs
|
|
(helps DLLs)
|
|
- many include fixes to help native win32 build
|
|
- added libMagick support, 78 file formats now loadable with
|
|
im_magick2vips(), im_magick2vips_header() and im_ismagick(), w00t
|
|
- now installs vips.m4 to $prefix/share/aclocal
|
|
- added im_icc_export_depth() ... export to device space with a specified bit
|
|
depth (8 or 16)
|
|
- vips.def now rebuilt with custom rule in libsrc/Makefile.am
|
|
- removed externs im_Type, im_BandFmt, im_Coding, im_Compression to simplify
|
|
DLL build
|
|
- im_mmap() -> im__mmap(), since it's supposed to be an internal function
|
|
- new vips-7.8.x/proj directory holds unsupported sample makefiles and
|
|
config.h for building with the MSC toolchain
|
|
- new scripts batch_image_convert and batch_rubber_sheet (thanks Joe)
|
|
- added the RPM .spec files to the main distribution
|
|
- InitializeMagic() now passed "" rather than NULL to avoid assert() problems
|
|
on some libMagic versions
|
|
|
|
2/12/02
|
|
- started 7.8.6
|
|
- now reads 8-bit RGBA tiff
|
|
- C++ build guide fixes (thanks fsicre)
|
|
- im_Type2char array text slightly messed up
|
|
- global_balance is safer for complex mixed mosaics
|
|
- removed im_lintra() fallback to im_copy() for scale == 1, offset == 0 ...
|
|
too confusing
|
|
- im_tiff2vips() now reads 16-bit LAB
|
|
- added im_Lab2LabS() and im_LabS2Lab()
|
|
|
|
5/11/02
|
|
- started 7.8.5
|
|
- fix for mmap window of local region ... caused im_iterate() to break
|
|
sometimes for large images, in turn occasionally breaking
|
|
im_max()/im_min()/etc. (thanks Joe)
|
|
- tiny speed up for im_rot90()/270()
|
|
- on install on win32, add .exe suffix for links
|
|
- vips.c knows to remove .exe suffix for linked commands
|
|
- added im_errormsg_system() ... decode win32 error codes too
|
|
- pagesize calcs for roving mmap windows were messed up on win32 (thanks Kirk)
|
|
- some TODO cleanups
|
|
- global balance broke horribly if you had filenames with spaces in (thanks
|
|
Clare)
|
|
|
|
31/10/02
|
|
- started 7.8.4
|
|
- im_unmapfile() includes mixed up on mac os x
|
|
- libtool patched for mac os x
|
|
- vips.c sets numeric locale to "C"
|
|
|
|
27/10/02
|
|
- started 7.8.3
|
|
- configure fixes help mac os x
|
|
- im_guess_prefix() adds ".exe" suffix on w32 if not there
|
|
- changed im_measure() error messages to number bands from 1
|
|
- added func descriptor for im_read_dmask() to help nip, updated C++ API, docs
|
|
|
|
21/10/02 JC
|
|
- started 7.8.2
|
|
- tries rand() if random() is not available
|
|
- tries mktemp() if mkstemp() is not available
|
|
- turns off realpath() if not available
|
|
- added IM_DIR_SEP/IM_DIR_SEP_STR directory separator character/string
|
|
- added IM_PATH_SEP/IM_PATH_SEP_STR path separator character/string
|
|
- added im_path_is_absolute()
|
|
- vips.c knows to link to vips.exe on win32
|
|
- spot mingw* and set BINARY_OPEN
|
|
- open images in binary too (since we now read() the header)
|
|
|
|
10/10/02 JC
|
|
- im_lintra() and im_lintra_vec() were broken for complex images :-( thanks
|
|
matt
|
|
- renamed im_and() as im_andimage(), im_eor() as im_eorimage() and im_or() as
|
|
im_orimage() ... avoids breakage in the C++ layer
|
|
- added im_dE00_fromLab()
|
|
- limited release as vips-7.8.0
|
|
|
|
2/10/02
|
|
- renamed as vips-7.8, woohoo
|
|
- revised documentation
|
|
|
|
19/9/02 JC
|
|
- started sorting out VIPS #defines ... there are now a sensible set of new
|
|
names (eg. NOCODING becomes IM_CODING_NONE, LAB becomes IM_TYPE_LAB)
|
|
- define IM_NO_VIPS7_COMPAT to turn off the old names
|
|
- added im_mmap()/im_munmap() layer for windows portability
|
|
- removed the contents of history.h .. obsolete
|
|
- added IM_IMAGE_ADDR() macro
|
|
|
|
10/9/02 JC
|
|
- handle errors from TIFF lib correctly
|
|
- configure fixes for cygwin
|
|
- CMYK TIFF write fixed
|
|
- configure fixes for mingw
|
|
|
|
5/9/02 JC
|
|
- im_cp_desc() now copies Xoffset/Yoffset
|
|
|
|
21/8/02 JC
|
|
- started 7.7.24
|
|
- reads CMYK TIFF
|
|
- reads dpi from TIFFs
|
|
- better float Xres/Yres
|
|
|
|
14/8/02 JC
|
|
- new header fields Xoffset and Yoffset ... used by functions to hint
|
|
the position of the origin in output images
|
|
- support added to c++ api and to header
|
|
- im__lrmerge(), im__tbmerge(), im__affine(), im_insert(),
|
|
set Xoffset/Yoffset
|
|
- now uses <lcms.h>, not <lcms/lcms.h> for better suse w0rkage
|
|
- better configure for fftw (uses libdfftw name if libfftw not found)
|
|
|
|
8/8/02 JC
|
|
- large file support with mmap() windows ... had to change
|
|
im_prepare_inplace() to im_prepare_to()
|
|
|
|
benchmark:
|
|
|
|
- system
|
|
|
|
hardware: 2 x 2.5GHz P4, 1GB RAM, 15k SCSI, ReiserFS
|
|
os: suse 8 (kernel 2.4.18)
|
|
compiler: gcc 2.95.3, -O2, threads turned on
|
|
images: fred.v, fred2.v; both 4k by 4k LABPACK (64MB)
|
|
images: jim.v, jim2.v; both 15k by 15k LABPACK (900MB)
|
|
time: smallest real of 5 runs, system idle
|
|
vips: 7.7.23, debug on in im_openin.c, window limit set with an
|
|
environment variable
|
|
|
|
- benchmarks
|
|
|
|
cpu-bound: im_sharpen fred.v fred3.v 11 1.5 20 50 1 2
|
|
io-bound: im_insert fred.v fred2.v fred3.v 4000 0
|
|
worst-case: im_rot90 fred.v fred3.v
|
|
|
|
- results
|
|
|
|
desktop:
|
|
|
|
no mmap windows mmap windows
|
|
|
|
cpu-bound real 0m3.712s real 0m3.970s
|
|
user 0m6.010s user 0m6.390s
|
|
sys 0m0.900s sys 0m1.110s
|
|
|
|
io-bound real 0m1.813s real 0m1.865s
|
|
user 0m0.900s user 0m0.990s
|
|
sys 0m1.720s sys 0m1.520s
|
|
|
|
worst-case real 0m1.344s real 0m3.039s
|
|
user 0m1.270s user 0m2.230s
|
|
sys 0m0.850s sys 0m3.050s
|
|
|
|
not quite sure why sharpen is a little slower (4%?) ... IO speed is about
|
|
the same though ... worst-case is having to constantly move windows about
|
|
(500,000 page faults, vs 10,000 for no windows)
|
|
|
|
again, with an image larger than RAM
|
|
|
|
no mmap windows mmap windows
|
|
|
|
io-bound real 2m52.759s real 2m11.172s
|
|
user 0m14.940s user 0m14.890s
|
|
sys 0m29.940s sys 0m26.560s
|
|
|
|
worst-case real 3m35.391s real 3m50.760s
|
|
user 0m19.850s user 0m26.600s
|
|
sys 0m12.650s sys 0m43.130s
|
|
|
|
mmap windows actually slightly faster in this case ... plus they stress the
|
|
OS less
|
|
|
|
31/7/02 JC
|
|
- added -lm for better lcms detect
|
|
- README notes for fftw on suse8
|
|
- im_profile() sets HISTOGRAM for output image
|
|
- im_copy()/im_copy_set() function descriptor no longer sets PTOP ... helps
|
|
avoid LUT problems
|
|
- im_subsample()/im_zoom() fall back to im_copy() for shrink/grow == 1
|
|
- im_lintra() falls back to im_copy() for scale == 1, offset == 0
|
|
- no longer use Type == LUT ... all just Type == HISTOGRAM now
|
|
- im_blend() was messed up for > 1 band images :(
|
|
|
|
16/7/02 JC
|
|
- started 7.7.23
|
|
- im_XYZ2sRGB() wasn't setting Type = sRGB
|
|
- im_icc_import() was broken for rgb
|
|
- im_header_string() had wrong return type in function database
|
|
|
|
13/7/02 JC
|
|
- added im_flood_blob()
|
|
- added im_open_local_array() ... C API convenience function
|
|
- oop, im_flood() was missing a man page
|
|
- Type == FOURIER added to help visualisation
|
|
- released as 7.7.22
|
|
|
|
30/6/02 JC
|
|
- JPEG, TIFF and PPM import all now set sRGB Type for RGB import
|
|
- im_header_int(), im_header_double() and im_header_string() added to aid
|
|
UIs
|
|
- now uses gettimeofday(), not time()
|
|
- for consistency with other trig functions, im_c2amph() now returns degrees
|
|
not radians (ouch)
|
|
- added im_c2rect() ... turn (amp, phase) to rectangular
|
|
- added im_sign() ... unit vector in direction of value
|
|
- better im_scaleps() ... old code was terrible
|
|
- rewritten im_rotquad() ... now partial
|
|
- im_icc_export()/_import() now do ABSOLUTE correctly
|
|
- added im_icc_ac2rc() ... converts absolute to relative colorimetry
|
|
|
|
25/6/02 JC
|
|
- added im_copy_set(3) ... like im_copy(), but set informational header fields
|
|
|
|
20/6/02 JC
|
|
- added im_ceil(), im_floor()
|
|
- im_Lab2LabQ was not clipping a/b range correctly
|
|
- im_icc_export(), own ABSOLUTE mode
|
|
- released as 7.7.21
|
|
|
|
28/5/02 JC
|
|
- im_remainderconst_vec broken for float/double
|
|
- added Yxy colourspace
|
|
|
|
16/05/02 JC
|
|
- auug, libtool was all messed up ... redone all the autotools stuff
|
|
- uses libtool convenience libraries to build vips in sections
|
|
- uses config subdir for temp files and .m4 things
|
|
- patched stupid suse config.guess
|
|
- vips2dj patched for better raw cmyk
|
|
- released as 7.7.20
|
|
|
|
12/5/02 JC
|
|
- im_vips2jpeg*() and im_vips2ppm() now both partial
|
|
- started updating the C++ guide
|
|
- had to change the location of the C++ headers :-( all C++ progs should now
|
|
have:
|
|
|
|
#include <vips/vipscpp.h>
|
|
|
|
this is so things can work on systems which do not have case sensitive
|
|
file systems
|
|
|
|
- changes for Mac OS X
|
|
* im_system() TRUE/FALSE removed
|
|
* searches /*/[lib|include] to get fink libs for tiff and jpeg
|
|
|
|
30/4/02 JC
|
|
- several functions were missing IM_FN_PIO in their descriptor ... this was
|
|
harmless for nip/ip/C, but broke the ref counting in the C++ layer
|
|
- im_system() now defaults "/tmp" for temp files
|
|
- STRING input and output args were broken for C++ :-(
|
|
- threads exit more quickly on error
|
|
- im_min()/im_max() now partial (at last)
|
|
- im_remainderconst()/im_remainderconst_vec() added
|
|
- --with-dmalloc configure switch
|
|
- vips2dj does CMYK and mono too
|
|
- im_vips2tiff() allows any number of bands (but not the right way to
|
|
write CMYK, see TODO)
|
|
|
|
26/4/02 JC
|
|
- old ICC profile reader removed
|
|
- little cms wrapped ... configure spots it, im_icc_transform() uses it to map
|
|
between two images
|
|
- also im_icc_import() and im_icc_export() so you can see PCS images
|
|
- im_icc_present() to test for existence of lib
|
|
- README fixes
|
|
|
|
4/4/02 JC
|
|
- TODO changes
|
|
- oops, DEBUG left on in im_invertlut()
|
|
|
|
2/4/02 JC
|
|
- im_fwfft.c/im_invfft.c now use libfftw if available ... about 5x speed up
|
|
and double precision
|
|
- added FIND_FFTW autoconf macro
|
|
- include/vips/proto.h changes
|
|
|
|
26/3/02 JC
|
|
- started 7.7.19
|
|
|
|
25/3/02 JC
|
|
- im_log_dmask() was broken (thanks matt)
|
|
- casts between VDMask and VIMask were broken (thanks matt)
|
|
- various error msgs improvements and tiny man page fixes
|
|
|
|
13/3/02 JC
|
|
- tb/lr merge first/last cache moved to per-call state for better sharing
|
|
- im_remosaic() bails out faster on error and makes better error messages
|
|
|
|
13/3/02 ruven
|
|
- im_vips2tiff() pyramids stop at tilesize, not 64x64
|
|
|
|
25/02/02 JC
|
|
- im_remosaic() is smarter, and works better with im_global_balance()
|
|
- im_affine() 2x faster
|
|
|
|
14/2/02 JC
|
|
- started 7.7.18
|
|
- vips.m4 and libsrc/Makefile.am fixes for IRIX
|
|
|
|
11/02/02 JC
|
|
- vips/thread.h and vips/threadgroup.h were missing extern "C" for C++
|
|
- VImage::write() now tracks dependencies, so you can write() to a partial
|
|
safely ... although it's not a very useful thing to do (thanks Mike)
|
|
- new VImage::print() function for debugging
|
|
- added im_print()
|
|
|
|
22/01/02 JC
|
|
- started 7.7.17
|
|
|
|
15/01/02 JC
|
|
- im_rect_unionrect() and im_rect_intersectrect() safer for repeated args
|
|
- im_video_v4l() no longer perrror()s on ioctl fail for less spam
|
|
|
|
03/01/02 JC
|
|
- started 7.7.16
|
|
- im_version_string() really does return the date as well now
|
|
|
|
12/12/01 JC
|
|
- im_guess_prefix() extra smartness for relative path names
|
|
- VImage() no longer uses tmpnam() (thanks Paul)
|
|
|
|
11/12/01 JC
|
|
- renamed im_fexists() as im_existsf()
|
|
|
|
7/12/01 JC
|
|
- ppm man pages added (doh)
|
|
|
|
28/11/01 JC
|
|
- warnings on g++ 2.96 fixed
|
|
|
|
22/11/01 JC
|
|
- started 7.7.15
|
|
- im_video_v4l() failed to compile on non-linux platforms
|
|
|
|
7/11/01 JC
|
|
- im_remosaic() added
|
|
- im_*merge() are more intelligent about transparency in bizarre overlaps
|
|
- grr! putenv() semantics change on more recent clibs ... should be safer
|
|
now
|
|
|
|
19/10/01 JC
|
|
- VDisplay( "display name" ) segved on unknown display :-( thanks mike
|
|
|
|
26/9/01 JC
|
|
- contrib tools get data files from share/vips/xxx area now
|
|
- im_vipshome() renamed as im_guess_prefix(), reworked for new package layout
|
|
- doc/ build sorted out
|
|
- ... but of course, docs still need updating for 7.8
|
|
|
|
20/9/01 JC
|
|
- fix to im_vipshome()
|
|
- ip2 renamed as nip
|
|
- split to library only ... separate ip and nip packages
|
|
- new VIPS_VERSION_* macros set from configure.in in vips/version.h.in
|
|
- vips.m4 VIPS finder
|
|
- reworked README, doc/README and TODO
|
|
- now installs to /usr/local/ by default
|
|
- fmask4th.c was including varargs.h ... d'oh
|
|
- include area reorganised: everything inside <vips/..> now ... hopefully the
|
|
only user-visible change is that all plain C progs need to change:
|
|
|
|
#include <vips.h>
|
|
|
|
to:
|
|
|
|
#include <vips/vips.h>
|
|
|
|
the C++ API should be unaltered
|
|
|
|
21/8/01 ruven
|
|
- im_setupout() was missing some #includes
|
|
|
|
20/8/01 JC
|
|
- started 7.7.14
|
|
|
|
15/8/01 JC
|
|
- added libxml dependency for ip2
|
|
|
|
27/7/01 JC
|
|
- im_conv(), im_convf(), im_convsep(), im_convsepf() now reject masks with
|
|
scale == 0
|
|
|
|
26/7/01 JC
|
|
- started 7.7.12
|
|
|
|
25/7/01 JC
|
|
- started 7.7.11
|
|
- oop, im_histeq() and im_tonemap() also missed
|
|
- better error messages from im_run_command()
|
|
|
|
23/7/01 JC
|
|
- started 7.7.10
|
|
- im_sharpen() failed due to change in im_band_extract() offset
|
|
|
|
20/7/01 JC
|
|
- started 7.7.9
|
|
|
|
4/7/01 JC
|
|
- im_open(,"w") open() delayed until im_setupout(), very slightly safer
|
|
- updated im_open() man page
|
|
- im_tiff2vips() now embeds index in filename ... and it's page number (from
|
|
0), not subsample factor
|
|
- finally bit the bullet ... im_extract()/im_extract_band() now number from
|
|
zero (sorry!)
|
|
- and im_lrmosaic()/im_tbmosaic() bandno param too
|
|
|
|
29/6/01 JC
|
|
- im_region_free() now frees immediately
|
|
|
|
27/6/01 JC
|
|
- im_vips2tiff() man page updated for deflate, 2 years late
|
|
|
|
22/6/01 JC
|
|
- oops, limit wrong on im_rank()
|
|
|
|
21/6/01 JC
|
|
- better post_install for --prefix outside VIPS's tree
|
|
- -ltiff needs -lm in acinclude.m4 ... fixes configure on redhat 7.x
|
|
|
|
13/6/01 JC
|
|
- started 7.7.8
|
|
|
|
6/6/01 JC
|
|
- im_invertlut() added
|
|
|
|
31/5/01 JC
|
|
- im_colour_temperature, im_XYZ2Lab_temp, im_Lab2XYZ_temp added
|
|
- ... colour temp stuff needs sorting out properly
|
|
|
|
25/5/01 JC
|
|
- added vips-config script, cf. gtk-config
|
|
- --without-threads option added
|
|
- did a bit of work on the C++ API docs
|
|
|
|
24/5/01 JC
|
|
- added im_tiff2vips_header(), im_jpeg2vips_header() and im_ppm2vips_header()
|
|
- header uses these to print fields quickly
|
|
- switched to config.h
|
|
- configure.in rewritten ... much nicer, fewer options, more automatic
|
|
|
|
17/5/01 JC
|
|
- im_matinv() didn't free stuff correctly on singular matrix
|
|
|
|
16/5/01 JC
|
|
- vips2dj now knows about 5000ps printers
|
|
- allow RW mode for non-native VIPS image files, for 8 bit images
|
|
|
|
2/5/01 JC
|
|
- started 7.7.7
|
|
|
|
1/5/01 JC
|
|
- im_addgnoise() did not work for >1 band images
|
|
|
|
23/4/01 JC
|
|
- configure options to remove support for JPEG and TIFF ... helpful for a no-
|
|
dependencies build
|
|
|
|
20/4/01 JC
|
|
- im_(v)snprintf() added
|
|
- all sprintf()s removed
|
|
|
|
15/4/01 JC
|
|
- im_affine() had a rounding problem
|
|
|
|
11/4/01 JC
|
|
- tiny mosaicing bug fixed in im__lrcalcon
|
|
- started 7.7.6
|
|
|
|
21/3/01 JC
|
|
- new iblend code in im_tbmerge() was typo-d
|
|
- mosaic1 was broken by affine too
|
|
|
|
20/3/01 JC
|
|
- im_image() failed for FMTUCHAR
|
|
|
|
12/3/01 JC
|
|
- started 7.7.5
|
|
- im_sharpen() uses seperable convolution for big speed up
|
|
- new "Print" menu
|
|
|
|
11/3/01 JC
|
|
- REALVEC renamed as DOUBLEVEC
|
|
- added IMAGEVEC
|
|
- added IM_INPUT_IMAGEVEC
|
|
- gbandjoin now has function description
|
|
- new function im_maxvalue()
|
|
- im_compass()/im_lindetect() reimplemented with im_conv()/im_maxvalue(),
|
|
about 15% faster, works for any type, partial
|
|
- im_gradient() reimplemented with im_conv()/im_abs()/im_add(), about 30%
|
|
slower, works for any type, partial
|
|
|
|
10/3/01 JC
|
|
- new function, im_clip2fmt() converts between any image formats ...
|
|
slightly faster than the old im_clip()
|
|
- legacy im_clip2us() etc. functions now just call this
|
|
|
|
9/3/01 JC
|
|
- im_conv() rewritten, simpler, about 10% faster
|
|
- im_convsep() rewritten, now does any non-complex type, partial, 20% faster
|
|
- new functions: im_convf(), im_convsepf() for DOUBLEMASK
|
|
- raw versions of each
|
|
- legacy convolvers (eg. im_convbi()) removed
|
|
|
|
8/3/01 JC
|
|
- new function im_blend()
|
|
- new function im_lab_morph()
|
|
- speed up to im_ifthenelse()
|
|
- speed up to im_*merge() (uses integer arithmetic for integer blends)
|
|
|
|
4/3/01 JC
|
|
- tiny speed ups to im_histgr()
|
|
- speed ups to im_maplut()
|
|
|
|
3/3/01 JC
|
|
- new functions: im_histnorm(), im_histcum()
|
|
- im_histeq() more general
|
|
- im_vipshome() --- better behaviour for relative paths
|
|
|
|
2/3/01 JC
|
|
- new video package
|
|
- im_video_v4l1() (video for linux) added
|
|
- configure.in switches to turn v4l1 on and off
|
|
|
|
1/3/01 JC
|
|
- new im_histspec() implementation ... more general, bugs removed
|
|
|
|
14/2/01 JC
|
|
- better vips2dj usage message
|
|
|
|
13/2/01 JC
|
|
- im_image_sanity() added, called in various places in iofuncs
|
|
|
|
9/2/01 JC
|
|
- added 'check' and 'name' class member stuff to ip from ip_gtk2
|
|
- new "Plot" menu
|
|
- new "Overlay" menu
|
|
- more stuff in _stdenv/_list ... curried forms of head/tail etc.
|
|
|
|
7/2/01 JC
|
|
- started 7.7.4
|
|
- vips2dj and vdump now use im_vipshome()
|
|
|
|
5/2/01 JC
|
|
- new im_vipshome() function
|
|
- min()/max() macros renamed as MIN()/MAX()
|
|
- new im_load_plugins() function
|
|
- vips.exe and ip now load $VIPSHOME/lib plugins at startup
|
|
|
|
2/2/01 JC
|
|
- mosaicing functions now have an extra max blend width parameter
|
|
|
|
30/1/01 JC
|
|
- fixed tbmerge no overlap detect
|
|
|
|
13/12/00 JC
|
|
- started 7.7.3
|
|
|
|
30/12/00 JC
|
|
- vips.h fixes for cygwin/wingdi conflict
|
|
|
|
27/11/00 JC
|
|
- added im_vips2ppm(), im_open() imports and exports it
|
|
- fixed nasty implicit output conversion problem for PIO dispatch() calls
|
|
|
|
21/11/00 JC
|
|
- added im_ppm2vips()
|
|
|
|
16/11/00 JC
|
|
- configure.in fixes ... jpeg found correctly now
|
|
- searches for libz as well
|
|
|
|
16/11/00 JC
|
|
- started 7.7.2
|
|
|
|
5/11/00 JC
|
|
- speed up to lab2labq
|
|
|
|
19/10/00 JC
|
|
- started 7.7.1
|
|
|
|
13/1/00 JC
|
|
- oops, im_open() was missing an 'else' in jpeg/tiff load
|
|
|
|
5/8/00 JC
|
|
- im_vips2tiff() now has mode string embedded in output filename
|
|
- im_vips2jpeg() now has qfac in output filename
|
|
- im_open() understands this
|
|
|
|
11/7/00 JC
|
|
- new im_image() function ... wraps a VIPS image around a memory buffer
|
|
- C++ layer changes:
|
|
* now use #include <vips/Vips.h>
|
|
* error renamed as VError
|
|
* new VMask() constructors
|
|
* new VImage() constructor
|
|
* new VImage::data() access member
|
|
* more operator equivalences: <, >, <=, >=, ==, !=, &, |, ^, %
|
|
|
|
17/6/00 JC
|
|
- more consts added to vips protos
|
|
|
|
10/5/00 JC
|
|
- minor configure.in changes to help solaris
|
|
- removed _TIFFmalloc() and _TIFFfree() calls
|
|
|
|
9/3/00 JC
|
|
- fixed rounding problem in generate grid
|
|
|
|
8/3/00 JC
|
|
- fixup to im_system() temp dir
|
|
|
|
7/3/00 JC
|
|
- added im_system()
|
|
- small tidies
|
|
|
|
1/3/00 JC
|
|
- better plugin test in configure.in
|
|
|
|
26/2/00 JC
|
|
- fixes to Makefile.am in ip/src* and configure.in, to help ip find the right
|
|
gtk includes on systems with more than one gtk-xxx installed
|
|
|
|
21/2/00 JC
|
|
- now builds ip and ip_gtk2
|
|
|
|
16/2/00 JC
|
|
- configure.in fixes for xil and some TIFF/JPEG strangeness
|
|
|
|
15/2/00 JC
|
|
- im_global_balancef() was broken! d'oh
|
|
- note in README about enabling video cards
|
|
|
|
10/2/00 JC
|
|
- configure now searches for xil ... FIND_XIL macro
|
|
- im_zoom() spots integer overflow
|
|
- better shape set on region drag end in ip
|
|
- better zoom-too-far handling in ip
|
|
|
|
13/1/00 JC
|
|
- fixes to configure etc. to help cygwin
|
|
- jpeg is now searched for too ... FIND_JPEG macro
|
|
|
|
10/1/00 JC
|
|
- global_balance() now uses new affine() atuff
|
|
|
|
27/12/99 JC
|
|
- mosaic1 stuff now uses new affine() funcs
|
|
|
|
21/12/99 JC
|
|
- added Joe's docs
|
|
- im_LabS2LabQ() rounding on a/b slightly broken for a/b == 0
|
|
|
|
20/12/99 JC
|
|
- new function: im_affine()
|
|
- similarity*() now in terms of affine()
|
|
- tests for error return in reduce.c from maplut
|
|
- small clean-ups
|
|
|
|
15/12/99
|
|
- im_version() added, new iofuncs package for it
|
|
- ip did not call zero-input-arg vips functions
|
|
- vips.c did not like zero-input-arg functions
|
|
|
|
6/12/99 JC
|
|
- Sobel filter was a bit broken
|
|
|
|
3/12/99 JC
|
|
- menu reorganisation
|
|
- generate gauss mask dialog
|
|
|
|
2/12/99 JC
|
|
- reworked text file IO, better error messages
|
|
|
|
1/12/99 JC
|
|
- reworked .iprc filename stuff, cleaner
|
|
|
|
30/11/99 JC
|
|
- better menu set switcher in calc preferences
|
|
- ip now thinks it's 7.7
|
|
- did a spellcheck on the ip guide
|
|
|
|
29/11/99 JC
|
|
- 7.7 started!
|
|
- srgb D65->D50 converter
|
|
- Negate added to arith
|
|
- find similar pixel value dialog
|
|
- find similar colour dialog
|
|
- paste into background dialog
|
|
|
|
19/11/99 JC
|
|
- adjust labq was mising
|
|
- shrink image defaulted to /2 not /1
|
|
- sharpdropshadow broken
|
|
- Rotate.* broken
|
|
- vips-7.6.3 release
|
|
|
|
18/11/99 JC
|
|
- ip didn't report space free on >2GB filesystems correctly
|
|
- ip did not link statically against libXpm on solaris7
|
|
|
|
17/11/99 JC
|
|
- im_histplot() failed for all 0's histogram
|
|
- new profile_image dialog
|
|
- man pages for im_sRGB2XYZ/im_XYZ2sRGB were broken
|
|
- new colourize image dialog
|
|
- new shrink image image dialog
|
|
- new expand image image dialog
|
|
- better doc Makefiles
|
|
|
|
16/11/99 JC
|
|
- more menu reorganising
|
|
- new image_to_mask/mask_to_image buttons
|
|
- new match_two_images dialog
|
|
- new measure_colour_chart dialog
|
|
|
|
15/11/99 JC
|
|
- new custom LABQ sharpen in Image menu
|
|
- configure support for SGI video (thanks Ruven)
|
|
- menu fiddling in ip
|
|
- new "resize canvas" menu item
|
|
- im_insert_noexpand() added, no docs tho'
|
|
|
|
11/11/99 JC
|
|
- new ip menu item: Image=>Adjust white/black/saturation of LabQ
|
|
- fixed bug in decompose complex number
|
|
- browse-icons now ignores errors
|
|
- better error msg for "12 12" etc cases
|
|
|
|
10/11/99 JC
|
|
- open hi-res gives proper error msg if no file found
|
|
- made file-select boxes a bit more compact and clearer
|
|
- updated configure.in for vips-examples-7.6
|
|
|
|
9/11/99 JC
|
|
- new column start point moved
|
|
- vdump now defaults to subsample 1, portrait
|
|
- navigation boxes were broken
|
|
- no longer shrink-to-fit if loading as high res
|
|
- better positioning of zoom windows
|
|
- removed some old cruft
|
|
|
|
8/11/99 JC
|
|
- ooops, im_remainder() got lost somehow
|
|
- refguide converted to latex and updated
|
|
- cppguide updated
|
|
|
|
5/11/99 JC
|
|
- libguide converted to latex and updated
|
|
|
|
4/11/99 JC
|
|
- ip guide now latex2htmls cleanly ... still needs updating tho'
|
|
- cpp/app guide latex2html redone
|
|
|
|
2/11/99 JC
|
|
- configure no longer adds -32 to IRIX builds for you
|
|
- some more stuff in README
|
|
- simple DEBUGM malloc tracking, made libsrc/iofuncs/memory.c
|
|
- changed im_malloc() to return void *
|
|
- removed duplicate im_malloc() proto from util.h
|
|
- changed all malloc/free to go through im_malloc()/im_free()
|
|
|
|
23/10/99 JC
|
|
- double-click on error image now pops a load browser and an error dialog
|
|
- add-new-column no longer scrolls to right edge of workspace
|
|
- better scroll-to-bottom on item add
|
|
- load ws twice does not cause 'already open' errors
|
|
- memorise directory button in fsb
|
|
|
|
18/10/99 JC
|
|
- new FIND_TIFF/FIND_MOTIF macros for acinclude.m4
|
|
- new ./configure switches, see ./configure --help
|
|
- enabled static libs
|
|
|
|
8/10/99
|
|
- broke action_proc_bop() into smaller functions, stops bad code gen on
|
|
gcc2.95.1 (and others, prolly)
|
|
- restored old Makefiles in doc/src/ipguide
|
|
- vips7.6 script renamed as vips-7.6
|
|
|
|
5/10/99
|
|
- replace image was broken
|
|
- some menu reorganisation
|
|
- 'reload all menus' button
|
|
|
|
4/10/99
|
|
- computed regions in ip were broken
|
|
- updated system.iprc defaults
|
|
- new menu item: adjust white/black points
|
|
|
|
2/10/99
|
|
- browse icons was broken
|
|
- greyscale 16-bit tiled tiff was broken
|
|
- extra mutex locks for TIFF*() in im_tiff2vips()
|
|
|
|
1/10/99
|
|
- some automake probs fixed
|
|
- squished two ip bugs
|
|
|
|
30/9/99
|
|
- fixed problem with pthreads, now works on suse6.2 as well
|
|
- new API stuff for threaded evaluation with im_threadgroup_t
|
|
- new public interface provide platform independent threads/locks/semaphores
|
|
- no error box if you zoom out too far now
|
|
|
|
26/9/99
|
|
- lr/tb merge blend was not quite right ... should be smoother now
|
|
- histplot broken for float images
|
|
|
|
24/9/99
|
|
- better mono->labq converter
|
|
- more portable ispoweroftwo detect for freq filter stuff
|
|
|
|
23/9/99
|
|
- better graphics expose handling
|
|
|
|
17/9/99
|
|
- >/< stuff in ip was a bit mixed up
|
|
- ink preview fixed for mono images
|
|
- help popup fixed
|
|
|
|
15/9/99
|
|
- linedetect and sobel filters for ip, thnx Kirk
|
|
|
|
14/9/99
|
|
- Find_histogram was broken
|
|
- im_profile() man pages was broken
|
|
- ooops, ip had old set of macros
|
|
|
|
10/9/99
|
|
- im_and/im_or/im_eor now work for any integer type
|
|
|
|
Summer hols: (2nd half August '99)
|
|
- initial heap block larger to avoid start gcs
|
|
- def slicer fixed
|
|
- larger max heap
|
|
- toolkits with initial '_' hidden by default
|
|
- custom recomb
|
|
- dialog.def removed
|
|
- ... other menu fixes
|
|
- generate grid menu
|
|
- im_remainder() added
|
|
- new cursor change code, hglass rotates during comp!
|
|
- dialog.c handles cursor changes better
|
|
- rubber band in paintbox displays
|
|
- mag widget stays on right!
|
|
- undo/redo single pixel paint ops
|
|
- heap size control from prefs
|
|
- cancel for reductions as well as for image calc
|
|
- browse stuff reworked, no more .icon.v files
|
|
- save stops you overwriting open .v files
|
|
- better animate_countdown() handling
|
|
- better resize behaviour for bars added to images
|
|
- better code generation, bug fixed in state tracking
|
|
- auto recover from crash
|