Подтвердить что ты не робот

Вставить изображение в 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 квадрат, если изображение прямоугольно, как его обрезать, и покажите его в окне изображения, например , нижняя часть изображения будет удалена.

4b9b3361

Ответ 1

Во-первых, для того, чтобы какое-либо изображение "изменяло размер", чтобы соответствовать изображению, вы можете установить PictureBox.SizeMode = PictureBoxSizeMode.StretchImage

Если вы хотите сделать обрезку изображения заранее (то есть отрезать стороны или сверху и снизу), то вам нужно четко определить, какое поведение вы хотите (начинайте сверху, заполняйте высоту вешалки и обрезайте остальные, или начинать снизу, заполнять высоту окна с картинками вверху и т.д.), и довольно просто использовать свойства Height/Width как для изображения, так и для изображения, чтобы закрепить изображение и получить эффект, который вы ищете для.

Ответ 2

Используйте следующие строки кодов, и вы найдете решение...

pictureBox1.ImageLocation = @"C:\Users\Desktop\mypicture.jpg";
pictureBox1.SizeMode =PictureBoxSizeMode.StretchImage;

Ответ 3

Посмотрите на свойство sizemode в окне рисунка.

pictureBox1.SizeMode =PictureBoxSizeMode.StretchImage;

Ответ 4

Имам Махди Адж SizeMode Change in properties

Вы можете использовать раздел свойств

Ответ 5

Вы можете установить для свойства imagebox SizeMode значение PictureSizeMode.Zoom, это увеличит размер меньших изображений или уменьшит размер больших изображений, чтобы заполнить PictureBox

Ответ 7

Вы можете использовать свойство SizeMode элемента управления PictureBox и установить его в центр. Это будет соответствовать центру вашего изображения в центре вашего окна изображения.

pictureBox1.SizeMode = PictureBoxSizeMode.CenterImage;

Надеюсь, что это поможет.

Ответ 8

Вы можете попробовать изменить свойство: SizeMode для PictureBox.

Вы также можете установить свое изображение как BackGroundImage в PictureBox и попробовать изменить BackGroundImageLayout в правильном режиме.

Ответ 9

У меня есть рутина в 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

Я уверен, вы можете сделать это как С#....

Ответ 10

В параметрах PictureBox.SizeMode отсутствует режим "заливки" или "обложки", который будет похож на увеличение, за исключением обрезки, чтобы убедиться, что вы заполняете графическое поле. В CSS это вариант "обложки".

Этот код должен включить что:

static public void fillPictureBox(PictureBox pbox, Bitmap bmp)
{
    pbox.SizeMode = PictureBoxSizeMode.Normal;
    bool source_is_wider = (float)bmp.Width / bmp.Height > (float)pbox.Width / pbox.Height;

    Bitmap resized = new Bitmap(pbox.Width, pbox.Height);
    Graphics g = Graphics.FromImage(resized);        
    Rectangle dest_rect = new Rectangle(0, 0, pbox.Width, pbox.Height);
    Rectangle src_rect;

    if (source_is_wider)
    {
        float size_ratio = (float)pbox.Height / bmp.Height;
        int sample_width = (int)(pbox.Width / size_ratio);
        src_rect = new Rectangle((bmp.Width - sample_width) / 2, 0, sample_width, bmp.Height);
    }
    else
    {
        float size_ratio = (float)pbox.Width / bmp.Width;
        int sample_height = (int)(pbox.Height / size_ratio);
        src_rect = new Rectangle(0, (bmp.Height - sample_height) / 2, bmp.Width, sample_height);
    }

    g.DrawImage(bmp, dest_rect, src_rect, GraphicsUnit.Pixel);
    g.Dispose();

    pbox.Image = resized;
}