有不少读者看了我的图像处理文章后,希望得到源代码,我很早就写了一份Delphi图像处理单元,但一直没有时间测试整理,这次元旦抽时间进行了简单的整理,发布在CSDN,有需要的读者可去下载。
BLOG中的Delphi图像处理文章的代码属简化代码,可作参考。
由于水平有限,代码中不可避免的存在错误,望进行指证。
Delphi图像处理代码下载地址:http://download.csdn.net/detail/maozefa/8323289
2015年1月27日修正:
ImageUtils.pas的LineBrightContrast函数实现代码:
function LineBrightContrast(var Dest: TImageData; const Source: TImageData;
Bright, Contrast: Integer; Threshold: Byte;
Callback: TImageAbort; CallbackData: Pointer): Boolean;
var
bTab, Table: TGrayTable;
begin
_CheckCopyArgbData(Dest, Source);
if Contrast = 0 then
Result := _Execute(Dest, Source, @_DoBrightness, [Bright], Callback, CallbackData)
else
begin
_GetLineBrightTable(Bright, bTab);
_GetContrastsTable(Contrast, Threshold, bTab, Table);
Result := _Execute(Dest, Source, @_DoTableReplace, [@Table], Callback, CallbackData);
end;
end;
改为:
function LineBrightContrast(var Dest: TImageData; const Source: TImageData;
Bright, Contrast: Integer; Threshold: Byte;
Callback: TImageAbort; CallbackData: Pointer): Boolean;
var
bTab, Table: TGrayTable;
begin
_CheckCopyArgbData(Dest, Source);
if (Bright <> 0) or (Contrast <> 0) then
begin
_GetLineBrightTable(Bright, bTab);
_GetContrastsTable(Contrast, Threshold, bTab, Table);
Result := _Execute(Dest, Source, @_DoTableReplace, [@Table], Callback, CallbackData);
end
else if Dest.Scan0 <> Source.Scan0 then
Result := _Execute(Dest, Source, @_DoCopyArgbData, [], Callback, CallbackData)
else Result := True;
end;