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
相关文档:
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://bigpower.blog.51cto.com/209892/90287
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCt ......
网上搜集资料 参考写的代码 实现控件的动态创建 完整代码如下:
(实现界面)
-------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls;
type
TControlClass =class ......
文章来自: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的原子世界
第二章 DELPHI与WIN32时空
第三章 多线程
第四章 接口
第五章 包
第六章 事件与消息
第七章 组织你的模块
第八章 探索数据库
第九章& ......
第一章 DELPHI的原子世界
第二章 DELPHI与WIN32时空
第三章 多线程
第四章 接口
第五章 包
第六章 事件与消息
第七章 组织你的模块
第八章 探索数据库
第九章 多层体系结构
第十章 操作界面与操作逻辑
第十一章 面向对象数据库基础
第五章&n ......