forked from AngusJohnson/Image32
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog.txt
363 lines (320 loc) · 11.2 KB
/
ChangeLog.txt
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
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
Image32 - 2D graphics library for Delphi Pascal
Latest version: 4.3
Released: 27 September 2022
Copyright © 2019-2022 Angus Johnson
Freeware released under Boost Software License
https://www.boost.org/LICENSE_1_0.txt
Documentation : http://www.angusj.com/delphi/image32/Docs/
Download : https://sourceforge.net/projects/image32/files/
Recent changes:
Version 4.3
Numerous minor bugfixes
Version 4.11
Fixed compatibility issues with older versions of Delphi.
Updated Img32.Clipper to latest version of Clipper
Version 4.1
Img32.Vector
Fixed bug in Grow function (affecting line drawing)
Version 4.0
Img32.Layers
This unit has had another major overhaul primarily to add layer
persistence (save layer objects in the file system).
Added TLayer32.MakeRelative and TLayer32.MakeAbsolute methods
Added TLayer32.OuterMargin property (accommodates shadow effects)
Added TLayer32.OuterBounds property
Added TLayer32.InnerRect property
Renamed TLayer32.Bounds property to InnerBounds
Img32.Vector
Significantly improved Grow algorithm
Img32.Text
Renamed GetTextGlyphs to GetTextOutline
Renamed TGlyphCache to TFontCache
Img32.Extra
Added DrawShadowRect procedure
Added TileImage procedure
Sample Applications
Experimental CtrlDemo
Requires Delphi 2010 or newer
Version 3.4.1
Img32.Extra
Bugfix HatchBackground function -
failed to redraw when the image wasn't clear
DrawEdgePath renamed to DrawEdge (now overloaded)
Img32.Layers
Bugfix TLayer32 -
failed to hide layer when Visible set to false
TLayeredImage32
default BackgroundColor changed to clBtnFace
Version 3.4
Img32.SVG.Core
Split into 2 units Img32.SVG.Core & Img32.SVG.Path
Major class redesign to facilitate SVG editing
Img32.SVG.PathDesign
New unit to aid GUI editing of SVG paths
Sample Applications
New SVGPathDesign application
Img32.Layers
Minor bugfix to TLayer32.Move method
Version 3.3.03
Img32.Panels
Added TImage32Panel.CopyToImage method that accommodates repainting
small rectangular regions (to significantly improve performance.)
TImage32Panel's published property AllowScroll has been split into
two published properties - AllowKeyScroll & AllowScrnScroll
**Because of this Image32's runtime and designtime packages
(Img32_Library.dpk & Img32_VCL_Dsgn.dpk) should be reinstalled.**
Img32
Minor bugfix in BlendToAlpha function.
Version 3.3
Img32.Layers
Minor bugfixes and performance tweaks
Img32.Extra
Added DrawEdge and DrawEdgePath functions
Img32
dpiAwareI & dpiAwareD renamed to dpiAware1 & dpiAwareOne
Img32.SmoothPath
This unit has been removed as it will be replaced later
with another unit that will aid designing SVG Paths
Updated Layers301 example again
Version 3.2.1
Img32
Renamed TImage32.BlockUpdate to BlockNotify
Renamed TImage32.UnblockUpdate to UnblockNotify
Img32.Layers
Fixed minor bugs preventing Delphi 7 compile
Updated Layers301 example
Version 3.2
Img32.Layers
* This unit has again been rewritten where all layers
can now contain other layers (in a tree like structure
under TLayeredImage32's Root layer).
* The TGroupLayer32 remains but is intended only as a
fully transparent container for other layers rather than
being a fully or even partially opaque surface to other layers.
* TLayer32 Bounds are now relative to their Parent such
that moving a layer will automatically move all contained
children.
* The Layers301 sample application demonstrates new features.
Img32.FMX
The DpiAwareFMX function replaced by the DpiAware function
Version 3.1
Img32
renamed TRectD.Normalize to TRectD.NormalizeRect
to emulate Delphi's TRectF method naming
Img32.Vector
renamed TSizeD's sx and sy fields to cx and cy respectively
again to emulate Delphi's TSize field naming
add RectsOverlap function
add a UnionRect function that replaces the same function
in Delphi's Types unit. (The function in the Types unit
incorrectly unions empty rects which was causing problems)
Img32.Extra
fixed incorrect rotation angle in Draw3D function
Img32.Layers
added TLayer32.Move method
changed TLayer32 Tag property to UserData property
Added TGroupLayer32.ClipPath property
Fixed drawing bug with deeply nested group layers
Samples
Added Layers301 to demonstrate clipped and nested group layers
Version 3.0
The Library's unit structure has changed significantly.
(Please see the accompanying install instructions and
the accompanying upgrade utility.)
Version 2.26
Image32_SVG_Reader
minor bugfixes
Image32_Ttf
Added TFontManager class
Added FontManager function
Version 2.25
Image32_SVG
New unit added
for simple loading of SVG images into TImage32
Image32_SVG_Reader
Fixed a significant bug (related to DecimalSeparator)
Added text encoding detection
Version 2.24
Image32_SVG_Reader
New unit added
Image32_SVG_Writer
New unit added
Image32_Vector
DefaultMiterLimit changed to 4 (same as SVG specification)
Removed deprecated esClosed from TEndStyle
(use esPolygon instead)
Improved RoundRect function
Image32_Transform
Changed MatrixSkew parameters
Image32Panels
Renamed CenterImagePoint function to RecenterImageAt
Image32_SmoothPath
SmoothToBezier function moved to Image32_Extra
Image32_Resamplers
Added BoxDownSampling function
Image32_Draw
Added TGradientFillStyle parameter to
TSvgRadialGradientRenderer.SetParameters
Minor bugfix in gradient rendering
Image32_Extra
Modified Erase procedure
Added EraseInverted procedure
Replaced buggy BoxBlur function with
new FastGaussianBlur function
Examples
Added SVG & SVG2 example apps.
Numerous minor bugfixes
Version 2.23 :)
Version 2.22
Image32_Resamplers
Fixed minor bug in BilinearResampler
Fixed minor transparency bug in BicubicResampler
Image32_Transform
Minor updates to SplineHorzTransform and
SplineVertTransform functions
Image32Panels
Minor update
Image32
RegisterResampler function parameters changed
GetResamplerList procedure added
Image32_Vector
Added GetDistances and GetCumulativeDistances functions
Version 2.21
Image32_Resamplers
Fixed bug in BicubicResampler
Image32_Transform
Tidied up Spline transform algorithms
Version 2.20
Image32_Resamplers
New library unit added containing 3 resampler functions
NearestResampler - draft quality, fast
BilinearResampler - high quality , average speed (default)
BicubicResampler - best quality , slow
Image32
DefaultResampler variable added
RegisterResampler function added
TImage32.AntiAliased property removed and replaced with a new
Resampler property (defaults to DefaultResampler)
Image32_Layers
TLayeredImage32.AntiAliased property removed and replaced
with a new Resampler property
Fixed broken layer opacity and other minor bugs
CreateRotatingButtonGroup parameters changed
Image32_Transform
Transform functions will now use the resampler associated
with the image being transformed
Image32_Ttf
TGlyphCache.GetTextGlyphs function result changed
TGlyphCache.GetAngledTextGlyphs function result changed
Image32_Vector
JoinPath procedure renamed AppendPath
Image32Panels
Implemented WM_MOUSEHWHEEL for horizontal scrolling
Version 2.19
Image32_Layers
Added AntiAliased property to TLayeredImage32
Renamed TGroupLayer32.OnMerge property to OnBeforeMerge
Added TGroupLayer32.OnAfterMerge property
Added THitTestLayer32.ClearHitTesting method
Minor tidy up.
Image32_Transform
Transforms can now have antialiasing disabled
Added AffineTransformImageRaw procedure
Image32_Extra
Added ResizeAndCenterImgForRotation procedure
Added Image32Panels
which contains a TImage32 enhanced TPanel component
Version 2.18
Image32_Layers
Refactored and improved TRotateLayer32
Improved TRotatingGroupLayer32
Examples
Updated Layers201 example app.
Other minor tweaks.
Version 2.17
Image32
Significantly sped up TImage32.CopyToDc
Image32_Layers
Bugfix TLayeredImage32.BackgroundColor
Image32_Ttf
Changed TGlyphCache.GetTextGlyphs function
Image32_Vector
Minor bugfix in Grow function
Other minor tweaks.
Version 2.16a
Fixed broken SmoothPaths Demo.
Otherwise, a few minor tweaks.
Version 2.16
Image32
TImage32.Antialias property is applied
more consistently with transforms
TImage32.Skew parameters modified
Bugfixes related to rotation direction
Significant code tidy.
Version 2.15
Image32_Layers
Further revisions
Other minor updates
Version 2.14
Image32_Layers
Bugfix.
Version 2.13
Image32_Layers
Bugfix - invisible layers were 'clickable'
Image32_SmoothPath
Bugfix and significant code tidy
Version 2.12
Image32
Added ClockwiseRotationIsAnglePositive global variable.
IMPORTANT: This variable defaults to true, which reverses
the previous direction of rotation. The default direction
now copies that of other Delphi graphics libraries.
Image32_Extra
Added SymmetricCropTransparent procedure
VCL_Image32 Package
Fixed broken link to deleted Image32_Text unit.
Version 2.11
Image32_Layers
Minor updates to TRasterLayer32 and TVectorLayer32
Documentation
A number of minor corrections.
Version 2.1
Image32_Layers
Bugfix to TLayeredImage32 - partial merging was broken
Major updates to TRasterLayer32 and TVectorLayer32
Image32_Vector
Moved all Matrix functions to Image32_Transform
Moved SmoothToBezier function to Image32_SmoothPath
Moved RamerDouglasPeucker function to Image32_Extra
Sample Applications
Updated Layers101 and Layers201
Version 2.02
Minor updates to several Example applications.
Version 2.01
Fixed a significant bug in Image32_Ttf.
Version 2.0
This is a major update. There are many changes (mainly
to the Image32_Layers unit), and some of these changes
are very likely to break your existing code. Sorry.
The Image32_Layers unit has been completely rewritten.
The old unit was poorly written and cumbersome to use.
The most significant change in the new layers unit is the
use of nested groups of layers that form a tree structure
under TLayeredImage32.Root. This structure provides several
advantages over the old flat layer structure. These include
faster merges, and much simpler control over layer groups.
Hit-testing has also been dramatically improved, being
both much simpler to setup, and faster at detecting the
correct layer.
The Image32_Text unit that was deprecated has been removed.
The Image32_Ttf unit provides all the functionality of the
old Image32_Text unit but, unlike its predecessor, supports
cross-platform development.
Other units have had attention with minor bug fixes and
assorted embellishments, including a significant code tidy
of the esoteric Image32_SmoothPath unit.
The sample applications have also had significant revision.
Some overly complicated apps have been removed, while others
have been rewritten and simplified.
The documentation has also been updated to address most if
not all these changes.