Вставить изображение в 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
квадрат, если изображение прямоугольно, как его обрезать, и покажите его в окне изображения, например , нижняя часть изображения будет удалена.
Ответы
Ответ 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
Ответ 6
Быстрый поиск по вопросам stackoverflow я получил следующие результаты:
Обрезать изображение в С#
Изменить размер изображения на С# с соотношением сторон и обрезать центральное изображение, чтобы не было пробелов
Я верю, что это поможет
Ответ 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;
}