-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathChangesVCL.txt
82 lines (66 loc) · 4.08 KB
/
ChangesVCL.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
2023-10-19
New resampling filters: Mitchell, Robidoux etc..
Simplified and corrected MakeGaussContributors in uScaleCommon.pas.
Tried to make Gamma-correction a little more precise.
Legacy-version still awaiting updates.
2023-10-10
Added options to properly handle the alpha-channel for unsharp-mask.
Gamma-correction can be turned on for the unsharp-mask, but can lead to imprecisions.
2023-10-3
More efficient code for unsharp-mask.
2023-10-2
New parallel unsharp-mask routine. See Sharpen.dproj in Demos\DemosVCL to explore its use. In ThreadsInThreads.dproj you can use it to optionally sharpen thumbs.
2023-8-12
Legacy demo: Fixed bug positioning the paintboxes when scrolled.
2023-8-10
Legacy demo: Bitmaps with alpha-channel now display with per pixel opacity. For this a routine "DrawAlphaBlended" has been added to uToolsLegacy.pas in the utilities folder.
2023-6-5
Added legacy version suitable for Delphi 2006 and up. Might work with lower versions by removing the ;inline directives, preferrably then inlining those routines by hand, because the performance hit would be substantial otherwise.
2023-5-13
Thumb size in ThreadsInThreads can be changed (small, medium, large).
2023-5-10
Moved code common to FMX and VCL into a new unit uScaleCommon. This unit needs to be added to the uses-clause together with uScale. Folders BitmapScaling and BitmapScalingFMX have been merged into one.
Utilities used can now be found in Utilities. There is a brandnew directory-explorer-tree, which is used in ThreadsInThreads. Please report, if there are issues with it.
2023-5-5
More functionality in demo DemoScale: Zoom-tool.
2023-5-3
Fixed a possible runtime error for the routine using tasks.
The tasks-routine is now threadsafe, see ThreadsInThreads for a test.
The thumbnail-display in ThreadsInThreads should now be DPI- and Style-aware.
2023-4-25
Speedup for AlphaCombineMode = amPremultiply. It's now almost as fast as before I
moved the 4 ProcessRow-procedures into one.
2023-4-24
Automatic initialization of the default threadpool would always create 64 threads. Fixed.
Threads will no longer be automatically created in Initialization. You can call
InitDefaultResamplingThreads to initialize them before you need them, or
they will be initialized in the first call of a parallel procedure, which
causes a delay. FinalizeDefaultResamplingThreads will free them. If you forget,
uScale frees them in Finalization.
Source bitmaps with alphaformat=afDefined are now handled correctly, and the
target will have the same alphaformat. The resampler works best though with
alphaformat=afIgnored. You should define the alphaformat only before display
to avoid imprecisions.
The unit uTools has routines to transfer a TPngImage or a TWICImage to TBitmap
without setting alphaformat=afDefined, which is what TBitmap.Assign alway does in
VCL.Graphics (and which is a waste of time for .jpg). A TWICImage is very convenient
for fast decoding of .jpg, .png or .tif. Alas TWICImage.Create is not threadsafe, so it
needs to be created in the main thread.
There is a new TAlphaCombineMode amTransparentColor which preserves the TransparentColor and
the regions of transparency upon resampling.
The ThreadsInThreads demo now makes thumbnails in 2 concurrent threads, that should be a good
crashtest for thread-safety.
Cleaned up the code in uScale, moving everything into implementation that is not needed in interface,
and added more comments. Also moved 4 almost identical routines into one, sacrificing a bit of performance.
2023-4-19
The routine using parallel threads can now be used in concurrent threads,
by assigning each calling thread its own resampling thread pool.
A simple thumbnail explorer has been added as a demo.
Hopefully fixed possible hang of the threads-in-threads demo
2023-4-15
Added Doc folder with .pdf explaining algorithm.
2023-4-13
Moved thread setup into a record, makes for some less toxic methods.
Demos allow you to explore changing the radius of the resampler.
Fixed possible error, if only one logical processor is present.
Fixed weights at the boundary of the target bitmap.