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

Delphi图像处理

    本文是基于《GDI+在Delphi程序的应用 – Photoshop色相/饱和度/明度功能》一文的BASM实用性过程,有关实现原理可参见《GDI+ 在Delphi程序的应用 -- 图像饱和度调整》和《GDI+ 在Delphi程序的应用 -- 仿Photoshop的明度调整》,纯PAS实现代码和测试例子代码见《GDI+在Delphi程序的应用 – Photoshop色相/饱和度/明度功能》。
过程定义:
// 调整色相/饱和度/明度
procedure ImageHSBAdjustment(Data: TImageData; hValue, sValue, bValue: Integer);
实现代码:
procedure _SetBrightness(Data: TImageData; Value: Integer);
asm
push esi
push edi
push ebx
sar edx, 1 // Value /= 2
movd mm5, edx
punpcklwd mm5, mm5
punpcklwd mm5, mm5
pcmpeqb mm6, mm6
psrlw mm6, 8 // mm4 = 00 FF 00 FF 00 FF 00 FF
pxor mm7, mm7
push edx
call SetDataReg32
pop esi
@yLoop:
push ecx
@xLoop:
mov al, [edi + 3]
movd mm0, [edi]
punpcklbw mm0, mm7
movq mm1, mm0
test esi, esi
js @@1 // if (Value >= 0)
pxor mm0, mm6 // rgb = rgb + (255 - eax) * Value / 128
@@1:
pmullw mm0, mm5 // else
psraw mm0, 7 // rgb = rgb + eax * Value / 128
paddsw mm0, mm1
packuswb mm0, mm7
movd [edi], mm0
mov [edi + 3], al
add edi, 4
loop @xLoop
pop ecx
add edi, ebx
dec edx
jnz @yLoop
emms
pop ebx
pop edi
pop esi
end;
procedure _HueAndSaturation(Data: TImageData; hValue, sValue: Integer);
var
Width, Height, dstOffset: Integer;
S, delta: Integer;
hv, sv: Integer;
asm
push esi
push edi
push ebx
mov hv, edx
mov sv, ecx
call SetDataReg32
mov Width, ecx
mov Height, edx
mov dstOffset, ebx
cld
@yLoop:
push Width
@xLoop:
dec Width
js @@13
movzx ecx, [edi


相关文档:

delphi 全局变量的定义与初始化赋值

 delphi全局变量的定义与赋值主要有下面几种方法:
1.
全局变量的初始化
在最后结束的end.之前,增加initialization关键字,然后加入对全局变量的初始化,这样就可以初始化全局变量了.不论在interface还是在implementation部分的全部变量,都可以这么来初始化
//省略前面的interface, uses, type.
var
i: Integer; ......

Delphi图像处理

    图像旋转,是指按照给定的角度,计算出图像每个像素坐标点在新图像上的坐标位置,从而实现整个图像坐标变换的图像处理手段。其像素坐标的变换公式为:
    (1)、x' = x * cos(angle) + y * sin(andle)
            y' = ......

悟透delphi 第三章 多线程

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

悟透delphi 第四章 接口

第一章  DELPHI的原子世界
第二章  DELPHI与WIN32时空
第三章  多线程
第四章  接口
第五章  包
第六章  事件与消息
第七章  组织你的模块
第八章  探索数据库
第九章  多层体系结构
第十章  操作界面与操作逻辑
第十一章  面向对象数据库基础
第四章&n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号