易截截图软件、单文件、免安装、纯绿色、仅160KB

Delphi图像处理

    本文的线性亮度/对比度调整方法是在《改进的图像线性亮度调整方法》一文中线性亮度调整方法与《Delphi图像处理 -- Photoshop图像亮度/对比度调整》中的对比度调整方法基础上形成的,其原理和特点可参见这2篇文章:
    过程定义:
// 线性调整亮度,Value亮度值
procedure ImageLinearBrightness(Data: TImageData; Value: Integer);
// 调整亮度(线性)和对比度
procedure ImageLinearBrightnessAndContrast(Data: TImageData;
Bright, Contrast: Integer; Threshold: LongWord);
实现代码:
procedure ImageLinearbrightness(Data: TImageData; Value: Integer);
asm
push ebp
push esi
push edi
push ebx
test edx, edx // if (Value == 0) return
jz @end
mov ebp, edx
jl @@2
push eax
cmp ebp, 255 // if (Value > 0)
jle @@1 // {
mov ebp, 255 // if (Value > 255) Value = 255
@@1:
mov eax, 65536 // Value = 65536 / (256 - Value) - 256
mov ecx, 256
sub ecx, ebp
cdq
div ecx
sub eax, 256
mov ebp, eax // }
pop eax
@@2:
call SetDataReg32
cld
@yLoop:
push ecx
@xLoop:
push ecx
mov ecx, 3
@RGBLoop:
movzx eax, [edi] // rgb = rgb + rgb * value / 256
mov esi, eax
imul eax, ebp
sar eax, 8
add eax, esi
jns @@3
xor eax, eax
jmp @@4
@@3:
cmp eax, 255
jle @@4
mov eax, 255
@@4:
stosb
loop @RGBLoop
inc edi
pop ecx
loop @xLoop
pop ecx
add edi, ebx
dec edx
jnz @yLoop
@end:
pop ebx
pop edi
pop esi
pop ebp
end;
procedure ImageLinearBrightnessAndContrast(Data: TImageData;
Bright, Contrast: Integer; Threshold: LongWord);
begin
if (Bright <> 0) and (Contrast > 0) then
ImageLinearBrightness(Data, Bright);
ImageContrast(Data, Contrast, Threshold);
if (Bright <> 0) and (Contrast <= 0) then
ImageLinearBrightness(Data, Bright);
end;

&


相关文档:

delphi TListView的使用


ListView1.Items 为标准 Tlistitems类
ListView1.Items
(1)赋值
with ListView1.Items.Add do
begin
Caption:=caption; //添加第一项
SubItems.add(aaaaa); //添加后面数据
SubItems.add(1234);
SubItems.add(1234);
end; //一定要使用WITH结构.
(2)取值
listview1.Items.Item[i].Caption 取得某条数据标题
l ......

Delphi 给字符指针分配内存


文章来自:http://www.cnblogs.com/del/archive/2009/05/15/archive/2008/11/08/1329543.html
GetMem
AllocMem
ReallocMem
FreeMem
GetMemory
ReallocMemory
FreeMemory
New
Dispose
NewStr
DisposeStr
StrNew
StrAlloc
StrDispose
GlobalAllocPtr
GlobalFreePtr
WideStrAlloc
AnsiStrAlloc
StrDispos ......

悟透delphi 第二章 DELPHI与WIN32时空

第一章  DELPHI的原子世界
第二章  DELPHI与WIN32时空
第三章  多线程
第四章  接口
第五章  包
第六章  事件与消息
第七章  组织你的模块
第八章  探索数据库
第九章  多层体系结构
第十章  操作界面与操作逻辑
第十一章  面向对象数据库基础
第二章&n ......

悟透delphi 第五章 包

第一章  DELPHI的原子世界
第二章  DELPHI与WIN32时空
第三章  多线程
第四章  接口
第五章  包
第六章  事件与消息
第七章  组织你的模块
第八章  探索数据库
第九章  多层体系结构
第十章  操作界面与操作逻辑
第十一章  面向对象数据库基础
第五章&n ......

Delphi图像处理

    设置图像关键颜色,使图像的某种或某个范围的颜色成为透明色,是图片合成、动画显示中经常用的图像处理手段。下面是实现代码:
过程定义:
// 设置色键(透明范围)。colorLow 低色键值; colorHigh 高色键值
// 当像素A、R、G、B值同时大于等于colorLow和小于等于colorHigh时为透明色
procedu ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号