两张图片:一个bmp,一个Mask的绘制方法

本文介绍如何利用PS蒙板和代码技术实现图像融合,详细解释了图像像素映射、颜色通道处理及代码实现过程,适用于图像处理与计算机视觉领域的专业人士。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可以用ps蒙板来实现,用代码也可以:


unit Unit1;


interface


uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, PngImage;



type

TForm1 = class(TForm)

ImageBmp: TImage;

ImageBmpMask: TImage;

procedure FormPaint(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormDestroy(Sender: TObject);

private

FBuffPng: TPNGObject;

public

{ Public declarations }

end;


var

Form1: TForm1;


implementation


{$R *.dfm}



procedure TForm1.FormCreate(Sender: TObject);

var

I, J: Integer;

LSourceAlphaAry: pByteArray;

begin

FBuffPng := TPNGObject.Create;

SetPngSize(ImageBmp.Width, ImageBmp.Height, FBuffPng);


for J := 0 to FBuffPng.Height - 1 do

begin

LSourceAlphaAry := FBuffPng.AlphaScanline[J];

if Assigned(LSourceAlphaAry) then

begin

for I := 0 to FBuffPng.Width - 1 do

begin

FBuffPng.Pixels[I, J] := ImageBmp.Canvas.Pixels[I, J];

LSourceAlphaAry[I] := (ImageBmpMask.Canvas.Pixels[I, J] and $FF);

end;

end;

end;

end;


procedure TForm1.FormDestroy(Sender: TObject);

begin

FreeAndNil(FBuffPng);

end;


procedure TForm1.FormPaint(Sender: TObject);

begin

Canvas.Draw(0, 0, FBuffPng);

end;


end.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值