Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

ClipRectControl

画像のクリッピング範囲を表示編集可能なカスタムコントロール

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

ClipRectControl

ClipRectControl は、Delphi 用のカスタムコントロールで、画像上に固定アスペクト比のクリップ矩形(選択範囲)を表示・操作できます。

🔧 主な機能

  • ビットマップ画像のズーム表示(スクロール対応)
  • アスペクト比固定のクリップ矩形の描画
  • クリップ範囲の移動および四隅からのリサイズ
  • マウスホイールによるズームイン・ズームアウト
  • 画面外に出ないよう自動補正
  • マウスカーソルの自動切り替えによる直感的操作
  • 背景の暗転処理による選択範囲の視認性向上

🧩 使用方法

  1. コントロールをフォームに配置するか、動的に生成します。
  2. LoadBitmap メソッドで元画像とアスペクト比を設定します。
  3. ClipRect プロパティで現在の選択範囲を取得・設定できます。
pascal
ClipControl.LoadBitmap(MyBitmap, 768, 512); // 横768:縦512のアスペクト比

⚙ 公開プロパティ一覧

プロパティ 説明
ClipRect 選択中のクリップ矩形(画像座標系)
ClipWidth 論理的なクリップ横幅(アスペクト比用)
ClipHeight 論理的なクリップ縦幅
ClipVisible クリップ枠を表示するかどうか
ClipBorderPen 枠線の色・幅・スタイルを設定するペン
EdgeSize 角・端のドラッグ判定範囲(ピクセル)
ZoomStep ホイール操作でのズーム倍率ステップ
ZoomMax 最大ズーム倍率

📦 実装上の特徴

  • TScrollBox + TPaintBox の組み合わせにより画像スクロール対応
  • 拡大表示用に FViewBitmap を使って再描画を最適化
  • マウスホイール処理や描画処理はすべて内部で完結

📝 ライセンス・作者

  • 作成者: (VRAMの魔術師)
  • ライセンス: MIT など任意で指定可能