如何把图片转换为灰度图片?

灰度图像转换
本文介绍了一个使用Delphi实现的将彩色图像转换为灰度图像的方法。通过遍历图像的每个像素,提取红绿蓝三通道的平均值作为灰度值,并应用到新图像中。此过程还包含了进度条的更新来显示处理进度。
procedure TForm1.Button1Click(Sender: TObject);
var
  lo:tbitmap;
  i,j:integer;
  kl:longint;
  rr,gg,bb:byte;
  res:byte;
begin
  lo:=tbitmap.create;
  lo.Width:=image1.Width;
  lo.height:=image1.height;
  ProgressBar1.Max:=image1.Width+1;
  for i:=0 to image1.Width+1 do
  begin
    for j:=0 to image1.height+1 do
    begin
      kl:=ColorToRGB(image1.Canvas.Pixels[i,j]);
      rr:=byte(kl);
      gg:=byte(kl shr 8);
      bb:=byte(kl shr 8);
      res:=(rr+gg+bb) div 3;
      lo.Canvas.Pixels[i,j]:=rgb(res,res,res);
    end;
    ProgressBar1.Position:=i;
  end;//for do
  image1.Canvas.Draw(0,0,lo);
  lo.free;
end;

转载于:https://www.cnblogs.com/myamanda/articles/1542810.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值