233 lines
9.1 KiB
Plaintext
233 lines
9.1 KiB
Plaintext
VIPS changed from 7.10 to 7.12 (not exhaustive, see ChangeLog for details)
|
|
|
|
Non-backwards compatible changes
|
|
================================
|
|
|
|
- IMAGE->Hist is deprecated, use im_history_get() instead
|
|
- im_append_Hist() removed
|
|
- IMAGE->Bbits is deprecated (now ignored)
|
|
- im_region_local() replaced by im_region_buffer()
|
|
|
|
VIPS enhancements
|
|
=================
|
|
|
|
- new backwards and forwards compatible VIPS file format: it has a new
|
|
metadata system that efficiently shares and propogates ICC profiles,
|
|
EXIF data, etc. & whatever
|
|
- speed ups: new pixel buffer cache saves and reuses computations, uses liboil
|
|
where possible for a small speedup
|
|
- SMP scaling: simplified lock system improves SMP scaling, double-buffered
|
|
image writes overlap computation
|
|
- lower mem use: new mmap window cache shares file mappings, history buffers
|
|
share and reuse image history metadata
|
|
- built-in support for new image formats: OpenEXR, Analyze7, CSV
|
|
- RGB16 and GREY16 image hints
|
|
- uses GOption for much better command-line argument handling
|
|
- better C++ binding: namespaces, VError derives from std::exception, image
|
|
and number vector constants
|
|
- python binding
|
|
- gcc sentinel attributes added
|
|
- added GValue as an arg type
|
|
- added im_benchmark() and friends for testing
|
|
- new functions:
|
|
im_analyze2vips(), im_benchmark*(), im_buildlut(),
|
|
im_concurrency_get/set(), im_contrast_surface(),
|
|
im_contrast_surface_raw(), im_copy_from(), im_copy_morph(),
|
|
im_cp_desc_array(), im_cp_descv(), im_extract_areabands(),
|
|
im_flood_blob_copy(), im_get_option_group(), im_grid(),
|
|
im_header_exists(), im_header_map(), im_history_get(),
|
|
im_invalidate(), im_isscalar(), im_lineset(), im_linreg(),
|
|
im_meta*(), im_msb(), im_norm_dmask(), im_project(),
|
|
im_raw2vips(), IM_REGION_ADDR_TOPLEFT(), im_tile_cache(),
|
|
im_video_test()
|
|
|
|
|
|
VIPS changed from 7.8 to 7.10 (not exhaustive, see ChangeLog for details)
|
|
|
|
Non-backwards compatible changes
|
|
================================
|
|
|
|
- no longer generates vips-config script, instead it makes .pc files for
|
|
pkg-config ... replace any "vips-config" with "pkg-config vips-7.10"
|
|
- origin hint semantics changed ... it now records the position in the output
|
|
image of the origin of the input image
|
|
- all float to int casts on pixel values are now floor() rather than rint(),
|
|
for consistency with C casting semantics
|
|
|
|
VIPS enhancements
|
|
=================
|
|
|
|
- nip reworked for gtk+-2.4, now called nip2
|
|
- now based on glib, so VIPS no longer has it's own thread, plugin and data
|
|
structure libraries
|
|
- i18n support, although not quite complete yet
|
|
- new error message API to make i18n possible (compatibility macros mean the
|
|
old API still works)
|
|
- new 'start up VIPS' call, im_init_world(), sets up i18n and threads
|
|
(optional to call it, but i18n won't fully work unless you do)
|
|
- C programs now just need "#include <vips/vips.h>", no other includes
|
|
required
|
|
- wraps the Pango font rendering library, see im_text()
|
|
- new function flag: NOCACHE ... means the result of the call should not be
|
|
cached, useful for video grab functions and paintbox functions
|
|
- im_embed() now supports a wider range of embedding styles, including a fast
|
|
edge stretch
|
|
- all area operations use the new embed style to expand their input rather
|
|
than their output, so there are no more black borders on filtered images
|
|
- other new functions: im_render(), im_cache(), im_extract_bands(),
|
|
im_copy_swap(), im_rint(), im_make_xy(), im_init_world(), im_error(),
|
|
im_warn(), im_diag(), im_rank_image(), im_replicate()
|
|
- many fixes and improvements to old funcs
|
|
- configure and portability improvements
|
|
|
|
Bug fixes
|
|
=========
|
|
|
|
- all serious bug fixes got back-ported to 7.8, I think
|
|
|
|
|
|
VIPS changes from 7.6 to 7.8 (again, not exhaustive, see ChangeLog for details)
|
|
|
|
Non-backwards compatible changes
|
|
================================
|
|
|
|
- output format options specified in filenames: new prototypes for load and
|
|
save tiff and jpeg
|
|
- C++ API name changes ... error => VError
|
|
- include path change
|
|
- C includes <vips/vips.h>
|
|
- C++ includes <vips/vipscpp.h>
|
|
- im_extract*() numbers bands from zero, not from 1 ... also other funcs which
|
|
refer to bands (eg. im_lrmosaic() etc.)
|
|
- mosaic funcs have extra max blend width parameter
|
|
|
|
VIPS enhancements
|
|
=================
|
|
|
|
- rewritten and much fancier ip (see separate docs), now called nip ... old ip
|
|
(slightly fixed) still there
|
|
- mmap windows remove 2GB image size limit
|
|
- images have an origin hint field
|
|
- icc transforms supported via wrapping of Little CMS
|
|
- much, much faster Fourier transforms via wrapping of libfwfft
|
|
- ppm/pgm/pbm read/write
|
|
- C++ API enhancements: new constructors, more operator equivalences
|
|
- new colourspace: Yxy
|
|
- support for D50 colour temperature images
|
|
- new functions: im_image(), im_system(), im_version*(), im_blend(),
|
|
im_copy_set(), im_flood_blob(), im_icc_*(), im_open_local_array(),
|
|
im_header_*(), im_sign(), im_ceil(), im_floor(), im_remainderconst*(),
|
|
im_print(), im_guess_prefix(), im_remosaic(), im_invertlut(), Yxy funcs,
|
|
color temperature funcs, im_clip2fmt(), im_blend(), im_lab_morph(),
|
|
im_histnorm(), im_histcum(), im_video_v4l(), im_LabS2Lab(), im_Lab2LabS()
|
|
- new type: IMAGEVEC
|
|
- header is much faster
|
|
- ip/nip split to separate packages
|
|
- better vips2dj
|
|
- better cygwin support, mingw support too
|
|
- Mac OS X and Windows build support
|
|
- new set of sensible #define names, old names can be turned off with
|
|
-DIM_NO_VIPS7_COMPAT
|
|
- many configure improvements
|
|
|
|
Bug fixes
|
|
=========
|
|
|
|
- speed ups
|
|
- fixes to implicit image format conversions
|
|
- im_zoom() spots integer overflow
|
|
- im_LabS2LabQ() rounding on a/b slightly broken for a/b == 0
|
|
- fixes to refcounting in C++ API
|
|
- mask casts in C++ were broken
|
|
|
|
|
|
|
|
|
|
VIPS Changes for 7.4 to 7.6
|
|
|
|
Non-backwards compatible changes
|
|
================================
|
|
|
|
- im_histplot() has new (and better) rules
|
|
- im_andconst(), im_orconst() and im_eorconst() now take a
|
|
double, not an unsigned char, as their constant argument type
|
|
- im_global_balance_float() renamed as im_global_balancef() to be
|
|
more consistent with other functions
|
|
- im_global_balance_search() removed ... you can do this efficiently
|
|
with an ip macro now
|
|
- new parameter "gamma" to im_global_balance() and
|
|
im_global_balancef() ... sets the gamma for the input device with
|
|
which the images were captured, set to 1.0 for old behaviour
|
|
- im_malloc() now returns void *, not char *
|
|
|
|
Bug fixes
|
|
=========
|
|
|
|
- tiny memory leak in im_list_remove() fixed
|
|
- oops, the value for sRGB in the header was wrong, now 22
|
|
- missing function descriptor for im_rank_raw()
|
|
- im_dECMC_fromLab() was broken
|
|
- im_erode() and im_dilate() output incorrect error messages
|
|
if mask elements were not one of 0, 128, 255
|
|
- im_rotate_*mask*() functions were not preserving scale and offset
|
|
values
|
|
|
|
Package enhancements
|
|
====================
|
|
|
|
The whole thing is now GPL, with GNU configure
|
|
|
|
ip changes
|
|
==========
|
|
|
|
- better display control bar
|
|
- matrix operations now appear in the workspace
|
|
- new UI elements: input options and toggles
|
|
- better LUT optimisation --- arithmetic operations on UCHAR images should be
|
|
much faster
|
|
- new macro language --- same as old one, but faster and much more powerful
|
|
- all standard menus rewritten in new macro language, much nicer!
|
|
- batch operations with Group/Ungroup
|
|
- now uses GDK for drawing in image windows, much better colour handling on
|
|
8/16-bit graphics cards
|
|
- image repaint is now threaded for an about-linear speedup as you add
|
|
more CPUs
|
|
- many interface improvements and polishes
|
|
|
|
VIPS enhancements
|
|
=================
|
|
|
|
- VIPS now uses POSIX threads (7.4 used Solaris threads) and has been rejigged
|
|
to provide a nice threading API to functions which call the library
|
|
- im_open() now knows about LSB- and MSB- first VIPS images, and
|
|
silently converts them to native order ... it also now ignores case when
|
|
deciding what format to write
|
|
- new parameter type IM_INPUT_REALVEC, a vector of doubles
|
|
- new set of functions with vector constants: im_lintra_vec(),
|
|
im_powtra_vec(), im_expntra_vec(), all relational
|
|
(im_equal_vec(), im_notequal_vec(), etc.), all boolean
|
|
(im_and_vec() etc.)
|
|
- new flag for function descriptors: "IM_FN_PTOP" set for point-to-point
|
|
functions ... makes ip use LUTs for operation
|
|
- im_tiff2vips() now reads and writes 16-bit images, and knows about zip
|
|
(deflate) compression
|
|
- convenience functions im_extract_band() extracts a band from an image;
|
|
im_extract_area() extracts an area
|
|
- im_list_member() tests for list contains object
|
|
- new functions im_write_*mask_name(), im_create_*maskv()
|
|
_ new functions im_remainder() and im_profile()
|
|
- fourier filtering, forward transform, reverse transform, make power spectrum
|
|
all free memory more quickly, making them suitable for very large images
|
|
- new functions im_isMSBfirst() and im_amiMSBfirst() test images
|
|
and this processor for MSB first byte order
|
|
- im_malloc() now prints low-on-memory warnings to stderr with
|
|
im_warning() for easier bug catching
|
|
- D65_X0 updated for latest recommedations, D60, D93,
|
|
D55, D50, A, B, C added
|
|
- minor fixes to the C++ interface to bring it in line with the newer ANSI
|
|
standards
|
|
- more and more comprehensive prototypes in "proto.h" to aid C++ (use of
|
|
"const" etc.)
|
|
- im_and*(), im_or*() and im_eor*() can now work on any
|
|
integer image
|