Delphi实现图像反色实例4种方法


本文整理自网络,侵删。

 Delphi实现图像反色实例4种方法
procedure TForm1.Button1Click(Sender: TObject);
var
MyDC: HDC;
begin
MyDC := GetDC(Form1.Handle);
if not PatBlt(MyDC,
Image1.Left,
Image1.Top,
Image1.Left + Image1.Width,
Image1.Top + Image1.Height,
DSTINVERT) then
ShowMessage('ERROR :~(');
end;


procedure TForm1.Button2Click(Sender: TObject);
var
BMP: TBitmap;
begin
Bmp := TBitmap.Create;
try
Bmp.Width := Image1.Picture.Bitmap.Width;
Bmp.Height := Image1.Picture.Bitmap.Height;
Bitblt(Bmp.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, Image1.Picture.Bitmap.Canvas.Handle, 0, 0, NOTSRCCOPY);
Image2.Picture.Bitmap.Assign(Bmp);
finally
Bmp.Free;
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
invertrect(image2.Canvas.Handle, image1.ClientRect);
image2.Repaint;

end;

procedure TForm1.Button5Click(Sender: TObject);
var
p: PByteArray;
x, y: Integer;
Bmp: TBitmap;
begin
Bmp := TBitmap.Create;
Bmp.Assign(Image1.Picture.Bitmap);
Bmp.PixelFormat := pf24Bit;
for y := 0 to Bmp.Height - 1 do
begin
p := Bmp.scanline[y];
for x := 0 to Bmp.Width - 1 do
begin
begin
p[x * 3] := not p[x * 3];
p[x * 3 + 1] := not p[x * 3 + 1];
p[x * 3 + 2] := not p[x * 3 + 2];
end
end;
end;
Image2.Picture.Bitmap.Assign(Bmp);
Bmp.Free;
end;

相关阅读 >>

Delphi checkbox 透明

Delphi 无类型文件读写

Delphi 正则判断是否包含数字

Delphi 判断正在运行的设备是iphone还是ipad

Delphi 获取屏幕缩放比例

Delphi android 程序名称在哪里设置?

Delphi如何在资源管理器中定位文件

Delphi 创建一个大小不可改变的窗体,通用模板

Delphi用多媒体库 bass.dll 播放 mp3 - 打开、播放、暂停、停止

Delphi 绘制精美的签名图片

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...