web-dev-qa-db-ja.com

C#で画像をズームインおよびズームアウトする方法

画像にズームを実装したい。 PictureBox のサイズを変更したくありませんが、画像自体は変更します。

どうすればよいですか?

17
Mehmet Ince

1つの解決策は次のとおりです。

  1. 目的のサイズの新しい画像を作成します(たとえば、元の画像サイズの200%または50%)。
  2. Graphics.DrawImage(Image、Rectangle); を使用して元の画像を新しい画像に描画します。これは、指定された画像を新しい画像の指定された位置に、指定されたサイズで描画します。
  3. 新しい画像をPictureBoxのソースとして設定します

もう1つの方法は、そのような新しいビットマップインスタンスを単純に作成することです。

Size newSize = new Size((int)(originalBitmap.Width * zoomFactor), (int)(originalBitmap.Height * zoomFactor));
Bitmap bmp = new Bitmap(originalBitmap, newSize);
29

私はこれを達成するためにウェブブラウザを使用しました。

//loads the image
myWebBrowser.Navigate(@"C:\myimage.png");

そこから、SendKeysを使用してズームインおよびズームアウトしました

myWebBrowser.Select(); //Selects browser.
SendKeys.Send("^{+}"); //Sends the control + key combo, causing the browser to zoom in. Replace the "+" with a "-" to zoom out.

少し奇妙な方法ですが、私にとってはとてもうまくいきました。これがお役に立てば幸いです。

0
user11122432