Delphi で画像範囲選択UIを作る!ClipRectControl の紹介
画像上に「選択範囲(クリップ矩形)」を直感的に操作できる Delphi 用カスタムコントロール ClipRectControl
を紹介します。
🎯 なにができるの?
ClipRectControl
は、以下のような機能を提供する視覚的な選択インターフェースです:
- ✅ 画像のズーム表示(マウスホイール対応)
- ✅ 拡大された画像上に赤枠で選択範囲を描画
- ✅ 四隅をドラッグしてアスペクト比固定のリサイズ
- ✅ 範囲の移動・スクロールも可能
- ✅ 背景の暗転処理で視認性抜群!
🖼️ 使用イメージ
赤枠が選択中の 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 をお願いします!