zoukankan      html  css  js  c++  java
  • 颜色选取 权当给 supperment 的回复吧, 你的要求要用到"种子算法", 我暂时还没算明白.

    本例效果图:


    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls;
    
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Image1: TImage;
        procedure FormCreate(Sender: TObject);
        procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
        procedure Button1Click(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    const
      TargetColor: TColor = clRed;
    var
      SeedColor: TColor;
      x1,y1: Integer;
      pic: TPicture;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Image1.AutoSize := True;
      Image1.Picture.LoadFromFile('c:\temp\test.bmp');
      x1 := Image1.Left;
      y1 := Image1.Top;
      pic := Image1.Picture;
      Button1.Caption := '恢复';
    end;
    
    procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    var
      w,h: Integer;
      ImgHdc: HDC;
    begin
      ImgHdc := Image1.Canvas.Handle;
      SeedColor := GetPixel(ImgHdc, X,Y);
    
      for w := 0 to Image1.Width-1 do
      for h := 0 to Image1.Height-1 do
        if GetPixel(ImgHdc, w,h)=SeedColor then
          SetPixelV(Canvas.Handle, x1+w, y1+h, TargetColor);
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Image1.Picture := pic;
    end;
    
    end.
    
  • 相关阅读:
    母牛的故事
    python 实现计算数独
    java程序计算数独游戏
    《深入理解Java虚拟机》笔记7
    安装red5 1.0.1版本Java_home不能用Java7
    计算流图中的循环集合
    《深入理解Java虚拟机》笔记5
    《深入理解Java虚拟机》笔记4
    n的阶乘-编程2.md
    爬楼梯问题-斐波那契序列的应用.md
  • 原文地址:https://www.cnblogs.com/del/p/1116587.html
Copyright © 2011-2022 走看看