 |
Opérations sur les Bitmaps: Redimensionner une Bitmap |
|
|
|
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:

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();
}
}
}

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