65
using (SqlConnection myDatabaseConnection = new SqlConnection(myConnectionString.ConnectionString))
{
    myDatabaseConnection.Open();
    using (SqlCommand SqlCommand = new SqlCommand("Select Photo from Employee where EmpID LIKE '%' + @EmpID + '%' ", myDatabaseConnection))
    {
        SqlCommand.Parameters.AddWithValue("@EmpID", textBox1.Text);
        var DS = new DataSet();
        var adapter = new SqlDataAdapter(SqlCommand);
        adapter.Fill(DS, "Images");

        var imagesTable = DS.Tables["Images"];
        var imagesRows = imagesTable.Rows;
        var count = imagesRows.Count;

        if (count <= 0) return;

        var imageColumnValue =
            imagesRows[count - 1]["Image"];
        if (imageColumnValue == DBNull.Value)
            return;

        var data = (Byte[])imageColumnValue;
        using (var stream = new MemoryStream(data))
        {
            pictureBox1.Image = Image.FromStream(stream);
        }

    }
}

画像が大きすぎpictureboxて収まらない場合。画像を に収まるようにするコードは何pictureboxですか?

pictureboxの画像は正方形です。画像が長方形の場合、このようにトリミングしてピクチャボックスに表示する方法は、画像の下部が削除されます。

4

10 に答える 10

112

まず、ピクチャボックスに合わせて画像を「サイズ変更」するには、PictureBox.SizeMode = PictureBoxSizeMode.StretchImage

事前に画像のクリッピングを行いたい場合 (つまり、側面または上部と下部を切り取る)、必要な動作を明確に定義する必要があります (上部から開始する、写真ボックスの高さを埋めて残りをトリミングする、または画像ボックスと画像の両方の Height / Width プロパティを使用して画像をクリップし、探している効果を得るのはかなり簡単です。

于 2013-05-29T19:21:37.757 に答える
24

次のコード行を使用すると、解決策が見つかります...

pictureBox1.ImageLocation = @"C:\Users\Desktop\mypicture.jpg";
pictureBox1.SizeMode =PictureBoxSizeMode.StretchImage;
于 2013-11-17T02:11:08.633 に答える
13

イマーム・マフディ aj SizeMode プロパティの変更

プロパティセクションを使用できます

于 2018-02-19T15:34:32.363 に答える
0

次の変更を試みることができます。 PictureBox の SizeMode プロパティ。

画像を PictureBox の BackGroundImage として設定し、BackGroundImageLayout を正しいモードに変更することもできます。

于 2013-05-29T19:22:38.710 に答える
0

私はVBでルーチンを持っています..

しかし、2つのピクチャボックスが必要です..フレーム用に1つ..画像用に1つ..そして、画像のサイズ比を維持します

picFrame が画像フレームで、picImg が画像であると仮定します。

Sub InsertPicture(ByVal oImg As Image)
    Dim oFoto As Image
    Dim x, y As Integer

    oFoto = oImg
    picImg.Visible = False
    picImg.Width = picFrame.Width - 2
    picImg.Height = picFrame.Height - 2
    picImg.Location = New Point(1, 1)
    SetPicture(picPreview, oFoto)
    x = (picImg.Width - picFrame.Width) / 2
    y = (picImg.Height - picFrame.Height) / 2
    picImg.Location = New Point(x, y)
    picImg.Visible = True

End Sub

きっとC#で作れますよね……。

于 2013-05-29T23:45:25.173 に答える