Home

Opérations sur les Bitmaps: Redimensionner une Bitmap

 

Description

Ajuster une image consiste à changer ses dimensions. Bien que qu'il existe plusieurs algorithmes complexes que vous pouvez utiliser pour accomplir cette opération, la classe Bitmap fournit une technique plus facile que vous pouvez utiliser.

Pour vous assister avec le redimensionnement d'une image, la classe Bitmap fournit le constructeur suivant:

public Bitmap(Image originale, int largeur, int hauteur);

L'argument originale est une Image, tel qu'un objet de type Bitmap, dont vous voulez changer les dimensions. Les arguments largeur et hauteur représentent la nouvelle dimension que vous voulez applique à l'image. Après que ce constructeur ait été utilisé, vous obtenez une bitmap avec les nouvelles dimensions. Voici un exemple qui l'utiliser:

Picture Normal Size

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace OperationsBitmaps
{
    public partial class Exercice : Form
    {
        Bitmap bmpImage;

        public Exercice()
        {
            InitializeComponent();
        }

        private void Exercice_Load(object sender, EventArgs e)
        {
            bmpImage = new Bitmap(10, 10);
        }

        private void Exercice_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.DrawImage(bmpImage, 150, 12);
        }

        private void btnOuvriezPhoto_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlgOuvrir = new OpenFileDialog();

            if (dlgOuvrir.ShowDialog() == DialogResult.OK)
            {
                String strFichier = dlgOuvrir.FileName;
                bmpImage = new Bitmap(strFichier);
                int width = bmpImage.Width;
                int height = bmpImage.Height;

                txtLargeur.Text = width.ToString();
                txtHauteur.Text = height.ToString();

                Invalidate();
            }
        }

        private void btnRedimensionner_Click(object sender, EventArgs e)
        {
            int largeur = 0,
                hauteur = 0;

            try
            {
                largeur = int.Parse(txtLargeur.Text);
            }
            catch (FormatException)
            {
                MessageBox.Show("La valeur que vous avez écrite pour " +
                                "la largeur n'est pas valid.");
            }

            try
            {
                hauteur = int.Parse(txtHauteur.Text);
            }
            catch (FormatException)
            {
                MessageBox.Show("La valeur que vous avez écrite pour " +
                                "la hauteur n'est pas valid.");
            }

            Bitmap bmpNew = new Bitmap(bmpImage, largeur, hauteur);
            bmpImage = bmpNew;
            Invalidate();
        }
    }
}

Picture Resized

You pouvez aussi spécifier la largeur et la hauteur, comme un seul objet, pour les dimensions. Pour le faire, vous pouvez utiliser le constructeur suivant:

public Bitmap(Image originale, Size NouvelleTaille);

Comme vous pouvez le voir, le redimensionnement pourrait produire une sorte de distorsion. Une alternative serait de garder les proportions des dimensions pendant que vous changez l'une des valeurs.

 
 
 
 

Accueil Copyright © 2009, yevol.com