| 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 |