delphi - 获取图像的平均颜色

标签 delphi

我正在尝试获取图像的平均颜色。我尝试了各种方法,现在使用以下代码,但无法得到正确的结果。

谁能解释一下我的代码有什么问题吗?

  //load bitmap to curimg
  img1.Picture.Bitmap := curimg ; //testing the previous line

  //My image is always greater than 25x25 but I only need a 25x25 box

  for I := 0  to 25 do
  begin
    for y := 0  to 25 do
    begin
      r := r + GetRValue(curimg.Canvas.Pixels[y, I]);
      g := g + GetGValue(curimg.Canvas.Pixels[y, I]);
      b := b + GetBValue(curimg.Canvas.Pixels[y, I]);
    end;
  end;
  r := r div (25 * 25);
  g := g div (25 * 25);
  b := b div (25 * 25);
  rgbk := RGB(r, g, b);
  Result = rgbk;
end;

img1TImageBox 类型的 image1 在我的表单上。

最佳答案

局部变量r,g,b:整数应首先初始化为零。

关于delphi - 获取图像的平均颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7722281/

相关文章:

database - 如何使用数据库数据(VCL)快速填充组合框

delphi - 获取一年中的一周

sql-server - 如何检索在Delphi ADO中插入时生成的uniqueidentifier的值?

delphi - 如何通过 FireDac (Delphi) 从 FireBird 数据库流式传输使用 zlib 压缩的图像

performance - 如何提高delphi应用程序的启动速度?

delphi - 在 Delphi 中读取/解析/修改 MS Word 文档,无需 Word Automation

delphi - Delphi 2009之前如何处理UTF-8和ANSI转换?

delphi - TActionMainMenuBar 菜单中的 RadioItems

delphi - 你们的 Delphi 应用程序提供哪些类型的 API?

windows - 添加并获取CHM文件版本