掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
RGBで色指定の方法とPlygonなどのAPI使用方法 (ID:10272)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
私も、描画メソッド関係は、最初のうち不慣れでした。 デルフィのヘルプもコード例が少なく不親切に思います。 しかし、やはり画像ですので、ヘルプを見て、 1つのメソッドをいろいろな条件で試し、実際に描かれた図形を見ることが早道だと思います。 Delphi の 描画メソッドでの色指定は、おおむね TColor型です。 RGB値で指定したい場合は、次のように型変換をします。 合わせて Polygon のコード例とします。 procedure TForm1.Button1Click(Sender: TObject); var Color: TColor; begin Canvas.Brush.Color := TColor($FF0000); Canvas.Polygon([Point(10, 10), Point(30, 10), Point(50, 30), Point(20, 50)]); end; しかし、場合によっては RGB値での指定が必要なときもあります。 その場合は、逆に TColor型 を RGB値に変換します。 下記例は、処理速度が非常に遅いので、通常は ScanLine を使用しますが、 TToolButton 用のBitmap作成ソフトなどでは、この方が簡便です。 procedure TForm1.Button3Click(Sender: TObject); var Bmp: TBitmap; PixelRGB: LongInt; x: Integer; begin Bmp := TBitmap.Create; Bmp.Width := 20; Bmp.Height := 20; Bmp.PixelFormat := pf24bit; // TBitmap作成 try PixelRGB := ColorToRGB(clRed); for x := 6 to 15 do Bmp.Canvas.Pixels[x, 10] := PixelRGB; Image2.Picture.Bitmap := Bmp; finally Bmp.Free; end; end; FloodFill() のコード例もつけておきます。 procedure TForm1.Button2Click(Sender: TObject); var Bmp: TBitmap; Color: TColor; begin Bmp := TBitmap.Create; Bmp.Width := 20; Bmp.Height := 20; Bmp.PixelFormat := pf24bit; // TBitmap作成 try Bmp.Canvas.Brush.Color := clBlue; Bmp.Canvas.FrameRect(Rect(4, 4, 16, 16)); Image1.Picture.Bitmap := Bmp; Showmessage('白地に青で矩形を描いた'); Color := Bmp.Canvas.Pixels[10, 10]; // [10, 10]座標の色を得る Bmp.Canvas.Brush.Color := clRed; // fsSurface を fsBorder に変えるとどうなるか // Brush.Color を clBlue, Color に変えるとどうなるか // 実際に試してみると更によく解ります。 Bmp.Canvas.FloodFill(10, 10, Color, fsSurface); Image1.Picture.Bitmap := Bmp; finally Bmp.Free; end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.