Fit Image у PictureBox

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);
        DataSet DS = new DataSet();
        SqlDataAdapter 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 квадрат, калі малюнак мае прастакутную форму, як да яго абрэзаць і паказаць яго ў PictureBox, як гэта , ніжняя частка малюнка будзе выдаленая.

35

8 адказы

First off, in order to have any image "resize" to fit a picturebox, you can set the PictureBox.SizeMode = PictureBoxSizeMode.StretchImage

Калі вы хочаце зрабіць адсячэнне малюнка загадзя (г.зн. адрэзаны боку або зверху і знізу), то вам неабходна дакладна вызначыць, якое паводзіны вы хочаце (пачатак у верхняй частцы, запоўніць вышыню pciturebox і абрэзаць рэшту, або пачаць з дно, запоўніць вышыню PictureBox да вяршыні, і г.д.), і яна павінна быць дастаткова просты, каб выкарыстоўваць вышыню/шырыню ўласцівасці як PictureBox і малюнак, каб абрэзаць малюнак і атрымаць эфект, які вы шукаеце.

65
дададзена
Для тых, хто ідзе праз гэта ў будучыні, гэта правільны адказ для ўстаноўкі негабарытных малюнкаў у PictureBox. Выкарыстанне CenterImage замест StretchImage сканцэнтруецца толькі малюнак у PictureBox. Калі ён занадта вялікі, ён усё роўна не будзе адпавядаць.
дададзена аўтар CODe, крыніца
^^ правільна, дзякуй за ўказанне на гэта, я рэдагаваў адказ.
дададзена аўтар David C, крыніца
ён меў на ўвазе imageBox.SizeMode = PictureBoxSizeMode.StretchImage;
дададзена аўтар cmario, крыніца

Выкарыстоўвайце наступныя радкі кодаў, і вы знойдзеце рашэнне ...

pictureBox1.ImageLocation = @"C:\Users\Desktop\mypicture.jpg";
pictureBox1.SizeMode =PictureBoxSizeMode.StretchImage;
17
дададзена

Паглядзіце на SizeMode ўласцівасць PictureBox.

pictureBox1.SizeMode =PictureBoxSizeMode.StretchImage;
4
дададзена

Вы можаце ўсталяваць PictureBox ў SizeMode <�код /> ўласцівасць PictureSizeMode.Zoom , гэта прывядзе да павелічэння памеру малюнка меншага памеру або паменшыць памер вялікіх малюнкаў для запаўнення PictureBox

3
дададзена

Imam Mahdi aj SizeMode Change in properties

Вы можаце выкарыстоўваць раздзел уласцівасцяў

1
дададзена

Вы можаце паспрабаваць змяніць: SizeMode ўласцівасць PictureBox.

Акрамя таго, можна ўсталяваць малюнак у якасці BackgroundImage ў PictureBox і паспрабаваць змяніць BackgroundImageLayout на правільны рэжым.

0
дададзена

I have routine in VB ..

але вы павінны мець 2 PictureBoxes .. 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# ....

0
дададзена

Вы можаце выкарыстоўваць ўласцівасць SizeMode Кантрольна PictureBox і ўсталяваць яго ў цэнтр. Гэта будзе адпавядаць цэнтру вашага выявы ў цэнтры вашага малюнка скрынкі.

pictureBox1.SizeMode = PictureBoxSizeMode.CenterImage;

Спадзяюся, што гэта можа дапамагчы.

0
дададзена