web-dev-qa-db-ja.com

画像ボックスに収まる大きな画像

ご覧のとおり、最初の画像は(1024 * 768)のサイズで、画像ボックスに正しく表示されます。2番目の場合、画像サイズは(1600 * 900)で、画像ボックスの半分に表示されます。残りが欠落しているので、いいえ、サイズが何であれ、画像ボックスのサイズよりも大きい場合でも、画像ボックスでその画像をモミにしたいのですが、その画像を拡大縮小する必要があります。どうすればよいですか?そしてもう1つ、ライトボックス効果で見られるように、画像が読み込まれたときに自動的に画像ボックスのサイズを変更する必要があります。 http://www.lokeshdhakar.com/projects/lightbox2/ -------->例。

どんな助けでも大歓迎です!

これが私が得ているものです。

enter image description here

enter image description here

9
user676589

WinFormsアプリの場合は、SizeModePictureBoxプロパティをPictureBoxSizeMode.Zoomに設定できます。これにより、フレーム全体に表示される小さい画像のサイズが大きくなるため、最初に画像を測定して、いずれかのエッジが長すぎるかどうかを確認してから、SizeModePictureBoxSizeMode.ZoomまたはPictureBoxSizeMode.Normalに設定することをお勧めします。 。

10
Fredrik Mörk

私はこれが回答済みとマークされていることを知っていますが、私は自分のアプリの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

エンドサブ

3
user1932998

画像を任意のサイズのPictureBoxに合わせる最も簡単な2つの方法は次のとおりです。

-画像を背景画像として設定するにはOR-画像ボックス画像として設定するには、sizemodeをStretchImageに設定します

1.背景画像

-PictureBoxのBackgroundImageプロパティを使用します

        picturebox.BackgroundImage = Image.FromStream(New IO.MemoryStream(CType(data, Byte())))

-次に、BackgroundImageLayoutをstretchに設定します。

        picturebox.BackgroundImageLayout = ImageLayout.Stretch
  1. 画像-PictureBoxのImageプロパティを使用します

    picturebox.Image = Image.FromStream(New IO.MemoryStream(CType(data, Byte())))
    

-次に、そのsizeModeをStretchImageに設定します。

    picturebox.SizeMode = PictureBoxSizeMode.StretchImage

これにより、画像/画像/キャンバスストローク(バイト配列に変換)が画像ボックスの高さと幅に応じてフィットします

お役に立てれば :)

1
Myk Agustin