【图像处理高级编程】-颜色填充

这篇博客介绍了如何在DELPHI环境下进行图像处理,特别是颜色填充操作。通过核心源码展示了从鼠标点击开始的颜色填充算法,包括设置边界条件、扫描线算法以及处理边界像素的过程。此外,还包含了图像载入、颜色选择以及双缓冲等辅助功能。
摘要由CSDN通过智能技术生成

文章目录

颜色填充

提示:这里可以添加技术概要
请添加图片描述

核心源码

var
Form1: TForm1;
FRendering: boolean;
org, next1: TPoint;
mycolor: byte;
implementation

{$R *.DFM}

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
pa: pbytearray;
oc: byte;
// n: TPixelFormat;
mybmp: tbitmap;
begin
if CheckBox1.Checked then
begin
mybmp := tbitmap.Create;
mybmp.Width := image1.Picture.Bitmap.Width;
mybmp.Height := image1.Picture.Bitmap.Height;
mybmp.Assign(image1.Picture.Bitmap);
mybmp.PixelFormat := pf8bit;

     pa := mybmp.ScanLine[y];
     oc := pa[x];
     FillColors(mybmp, image1.picture.bitmap.Width,
        image1.picture.bitmap.Height,
        X, Y, oc, mycolor);
     image1.Picture.Bitmap.Assign(mybmp);
     mybmp.free;
     frendering := false;
  end

else
begin
FRendering := true;
org := Point(X, Y);
next1 := Point(X, Y);
end;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
points: array[1…4] of TPOINT;
// p: pchar;
begin
if FRendering then
begin
next1 := Point(X, Y);
points[1] := org;
points[2] := next1;
points[3] := Point(nex

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大龙软件研发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值