c# - visual - windows form picturebox set image




Adatta immagine a PictureBox (6)

È possibile impostare la proprietà SizeMode di SizeMode su PictureSizeMode.Zoom , questo aumenterà le dimensioni delle immagini più piccole o diminuirà le dimensioni delle immagini più grandi per riempire la 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);
        }

    }
}

Se l'immagine è troppo grande per adattarla alla picturebox . Qual è il codice per rendere l'immagine adatta alla picturebox ? La mia picturebox è quadrata, se l'immagine è rettangolare come ritagliarla e mostrarla nella casella immagine come this , la parte inferiore dell'immagine verrà rimossa.


È possibile utilizzare la proprietà SizeMode del controllo PictureBox e impostarlo su Centro. Questo corrisponderà al centro dell'immagine al centro della tua casella di immagine.

pictureBox1.SizeMode = PictureBoxSizeMode.CenterImage;

Spero che possa aiutare.


Ho una routine in VB ..

ma dovresti avere 2 pictureboxes .. 1 per frame .. 1 per l'immagine .. e mantiene il rapporto delle dimensioni dell'immagine

Supposto picFrame è la cornice dell'immagine e picImg è l'immagine

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

Sono sicuro che puoi farlo come C # ....


Imam Mahdi aj

Puoi usare la sezione delle proprietà


Prima di tutto, per fare in modo che qualsiasi immagine "ridimensiona" per adattarsi a una picturebox, puoi impostare PictureBox.SizeMode = PictureBoxSizeMode.StretchImage

Se vuoi fare un ritaglio dell'immagine in anticipo (cioè tagliare i lati o in alto e in basso), devi definire chiaramente quale comportamento vuoi (iniziare in cima, riempire l'altezza della scatola dei pezzi e ritagliare il resto o iniziare da il fondo, riempire l'altezza della picturebox verso l'alto, ecc.) e dovrebbe essere abbastanza semplice usare le proprietà Height / Width sia della picturebox sia dell'immagine per ritagliare l'immagine e ottenere l'effetto che si sta cercando.


Usa le seguenti linee di codici e troverai la soluzione ...

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




picturebox