File: NEWS

package info (click to toggle)
vips 8.7.4-1
  • links: PTS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 32,524 kB
  • sloc: ansic: 110,470; cpp: 57,147; python: 6,038; sh: 5,000; xml: 4,047; makefile: 1,130; perl: 40
file content (232 lines) | stat: -rw-r--r-- 9,331 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
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