この記事では、Paint イベントの変換を使用してマウスの位置から画像をズーム (スケール) する問題について説明します。ビットマップの原点をマウスの位置に変換した後、画像が拡大縮小され、その原点が逆に変換されます。ただし、マウス位置の変換中に画像が「ジャンプ」し、再配置された原点から拡大縮小できません。
この問題を解決するには、次の戦略を実装します。
視覚的なデモンストレーションのために、サンプル コードはカスタム PictureBoxEx コントロールに 4 つのズーム モードを実装しています。
回答で提供されているコードは、PictureBox から継承し、カスタマイズされた機能を含む PictureBoxEx カスタム コントロールを導入しています。また、初期化中にフォームに追加されたカスタム コントロールを表す Canvas 変数も含まれます。 ZoomMode 列挙型は、さまざまなズーム モードを定義するために使用されます。
マウス イベントとトラック バーのイベント ハンドラー、およびコア ペイント ロジックは、選択されたズーム モードに基づいてズームと回転の操作を処理します。
実行する前に、imagePath 文字列を画像ファイルの実際のパスに変更することを忘れないでください。 code.
このアプローチは、マウスの位置から画像をズームおよび移動するためのより効率的かつ安定した方法を提供します。これにより、複雑な変換を処理するときに予期しない視覚的なアーティファクトやパフォーマンスの問題が発生する可能性が軽減されます。
以上がC# でマウスの位置から画像を正しくズームおよび変換する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。