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);
}
}
}
Si l'image est trop grande pour que le picturebox
puisse s'y adapter. Quel est le code pour que l'image tienne dans le picturebox
? Mon picturebox
est carré, si l'image est rectangulaire, comment la rogner et l'afficher dans la boîte à images comme this , la partie inférieure de l'image sera supprimée.
Tout d’abord, pour que toute image soit "redimensionnée" par une image, vous pouvez définir le paramètre PictureBox.SizeMode = PictureBoxSizeMode.StretchImage
Si vous souhaitez découper l’image au préalable (c.-à-d. Couper les côtés ou le haut et le bas), vous devez définir clairement le comportement souhaité (commencer en haut, remplir la hauteur de la pciturebox et rogner le reste ou commencer à en bas, remplissez la hauteur de la zone d’image en haut, etc.) et il devrait être relativement simple d’utiliser les propriétés Hauteur/Largeur de la zone d’image et de l’image pour découper l’image et obtenir l’effet recherché.
Utilisez les lignes de codes suivantes et vous trouverez la solution ...
pictureBox1.ImageLocation = @"C:\Users\Desktop\mypicture.jpg";
pictureBox1.SizeMode =PictureBoxSizeMode.StretchImage;
Examinez la propriété sizemode de picturebox.
pictureBox1.SizeMode =PictureBoxSizeMode.StretchImage;
Vous pouvez définir la propriété SizeMode
de picturebox sur PictureSizeMode.Zoom
, cela augmentera la taille des images plus petites ou diminuera la taille des images plus grandes pour remplir le PictureBox
Vous pouvez utiliser la propriété SizeMode du contrôle PictureBox et la définir sur Center. Cela fera correspondre le centre de votre image au centre de votre zone d'image.
pictureBox1.SizeMode = PictureBoxSizeMode.CenterImage;
J'espère que ça pourrait aider.
J'ai routine dans VB ..
mais vous devriez avoir 2 boites d'images .. 1 pour le cadre .. 1 pour l'image .. et faire garder le rapport de taille de l'image
PicFrame supposé est le cadre d'image et picImg est l'image
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
Je suis sûr que vous pouvez le faire en C # ....
Les options de PictureBox.SizeMode ne comportent pas de mode "Remplissage" ou "Couverture" qui serait comme un zoom sauf avec un recadrage pour vous assurer que vous remplissez la zone d'image. En CSS c'est l'option "couverture".
Ce code devrait permettre que:
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;
}
Vous pouvez essayer de modifier la propriété: SizeMode de PictureBox.
Vous pouvez également définir votre image en tant qu'image BackGroundImage de PictureBox et essayer de modifier le mode BackGroundImageLayout.