2013-05-29 2 views
27
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? My picturebox квадрат, если изображение прямоугольное, как ему обрезать и показать его в картинке, как this, нижняя часть изображения будет удалена.Fit Image в PictureBox

ответ

54

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

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

+0

Для тех, кто сталкивается с этим в будущем, ЭТО - правильный ответ на установку негабаритного изображения в ящик для изображений. Использование CenterImage вместо StretchImage будет только центрировать изображение в окне изображения. Если он слишком большой, он все равно не подойдет. – CODe

+2

он имел в виду imageBox.SizeMode = PictureBoxSizeMode.StretchImage; – cmario

+0

^^ Правильно, спасибо, что указали это, я отредактировал ответ. –

0

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

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

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# ....

0

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

pictureBox1.SizeMode = PictureBoxSizeMode.CenterImage; 

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

16

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

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

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

0

Имам Махди а^ SizeMode Change in properties

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