ご覧のとおり、最初の画像は(1024 * 768)のサイズで、画像ボックスに正しく表示されます。2番目の場合、画像サイズは(1600 * 900)で、画像ボックスの半分に表示されます。残りが欠落しているので、いいえ、サイズが何であれ、画像ボックスのサイズよりも大きい場合でも、画像ボックスでその画像をモミにしたいのですが、その画像を拡大縮小する必要があります。どうすればよいですか?そしてもう1つ、ライトボックス効果で見られるように、画像が読み込まれたときに自動的に画像ボックスのサイズを変更する必要があります。 http://www.lokeshdhakar.com/projects/lightbox2/ -------->例。
どんな助けでも大歓迎です!
これが私が得ているものです。
WinFormsアプリの場合は、SizeMode
のPictureBox
プロパティをPictureBoxSizeMode.Zoom
に設定できます。これにより、フレーム全体に表示される小さい画像のサイズが大きくなるため、最初に画像を測定して、いずれかのエッジが長すぎるかどうかを確認してから、SizeMode
をPictureBoxSizeMode.Zoom
またはPictureBoxSizeMode.Normal
に設定することをお勧めします。 。
私はこれが回答済みとマークされていることを知っていますが、私は自分のアプリの1つのためにこれを書きました。それが誰かを助けることを願っています。
Private Sub ScaleImage(ByVal p As PictureBox, ByRef i As Bitmap)
If i.Height > p.Height Then
Dim diff As Integer = i.Height - p.Height
Dim Resized As Bitmap = New Bitmap(i, New Size(i.Width - diff, i.Height - diff))
i = Resized
End If
If i.Width > p.Width Then
Dim diff As Integer = i.Width - p.Width
Dim Resized As Bitmap = New Bitmap(i, New Size(i.Width - diff, i.Height - diff))
i = Resized
End If
エンドサブ
画像を任意のサイズのPictureBoxに合わせる最も簡単な2つの方法は次のとおりです。
-画像を背景画像として設定するにはOR-画像ボックス画像として設定するには、sizemodeをStretchImageに設定します
1.背景画像
-PictureBoxのBackgroundImageプロパティを使用します
picturebox.BackgroundImage = Image.FromStream(New IO.MemoryStream(CType(data, Byte())))
-次に、BackgroundImageLayoutをstretchに設定します。
picturebox.BackgroundImageLayout = ImageLayout.Stretch
画像-PictureBoxのImageプロパティを使用します
picturebox.Image = Image.FromStream(New IO.MemoryStream(CType(data, Byte())))
-次に、そのsizeModeをStretchImageに設定します。
picturebox.SizeMode = PictureBoxSizeMode.StretchImage
これにより、画像/画像/キャンバスストローク(バイト配列に変換)が画像ボックスの高さと幅に応じてフィットします
お役に立てれば :)