1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Delphi で画像範囲選択UIを作る!ClipRectControl の紹介

Last updated at Posted at 2025-07-29

Delphi で画像範囲選択UIを作る!ClipRectControl の紹介

画像上に「選択範囲(クリップ矩形)」を直感的に操作できる Delphi 用カスタムコントロール ClipRectControl を紹介します。


🎯 なにができるの?

ClipRectControl は、以下のような機能を提供する視覚的な選択インターフェースです:

  • ✅ 画像のズーム表示(マウスホイール対応)
  • ✅ 拡大された画像上に赤枠で選択範囲を描画
  • ✅ 四隅をドラッグしてアスペクト比固定のリサイズ
  • ✅ 範囲の移動・スクロールも可能
  • ✅ 背景の暗転処理で視認性抜群!

🖼️ 使用イメージ

image.png

赤枠が選択中の ClipRect。画像の一部を切り出したり、トリミングしたい場面に最適です。


🔧 導入方法

GitHub からクローンして Delphi プロジェクトに追加するだけ!

または下記GitHubよりDL

git clone https://github.com/vramwiz/ClipRectControl.git

ClipRectControl.pas をプロジェクトに追加してください。


🚀 サンプルコード

// フォーム上に TClipRectControl を配置したと仮定
ClipControl.LoadBitmap(MyBitmap, 768, 512);
// 768x512 のアスペクト比で初期ClipRectが配置される

現在の選択範囲を取得:

var R: TRect;
R := ClipControl.ClipRect;

⚙ 主なプロパティ

プロパティ名 内容
ClipRect 選択範囲(画像座標)
ClipWidth アスペクト比用:論理的横幅
ClipHeight アスペクト比用:論理的縦幅
ClipVisible 枠を表示するかどうか
ClipBorderPen 枠の色・幅・線種を設定できる
EdgeSize リサイズ判定範囲(ピクセル)
ZoomStep ホイール操作での倍率変化量
ZoomMax 最大ズーム倍率

問題点

ズームインアウトでの表示位置計算がまだ甘いので調整していきます。

🧑‍💻 作者・ライセンス

  • GitHub: ClipRectControl
  • ライセンス: MIT(予定/任意に指定可能)

💬 まとめ

Delphi で「画像選択UI」を作りたいなら、ClipRectControl を使えば一気に完成度が上がります。
自作ツール、写真加工、トリミング支援など、幅広い用途に活用してください!

お気に召したら GitHub に ⭐️ Star をお願いします!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?