0% ont trouvé ce document utile (0 vote)
5 vues5 pages

Conversion d'images avec GDI+ en .NET

Le document présente une introduction au framework .Net, en se concentrant sur l'espace de nommage System.Drawing et son utilisation pour le GDI+. Il décrit la création d'un programme, ImgConverter, permettant de convertir des fichiers graphiques entre différents formats tels que BMP, JPEG, TIFF, GIF et PNG. Le document fournit également des exemples de code pour la sélection de fichiers et la conversion d'images.

Transféré par

talla
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOC, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues5 pages

Conversion d'images avec GDI+ en .NET

Le document présente une introduction au framework .Net, en se concentrant sur l'espace de nommage System.Drawing et son utilisation pour le GDI+. Il décrit la création d'un programme, ImgConverter, permettant de convertir des fichiers graphiques entre différents formats tels que BMP, JPEG, TIFF, GIF et PNG. Le document fournit également des exemples de code pour la sélection de fichiers et la conversion d'images.

Transféré par

talla
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOC, PDF, TXT ou lisez en ligne sur Scribd

GDI+ : aperçu d’une

fonctionnalité…

Document
1, avenue de l’Europe
Auteur David Catuhe
Email [Link]@[Link]
Campus 1 – Bâtiment F Web [Link]
Version 1.0
Nombre de pages 5
31400 Toulouse Date 11/02/2002

Tél. 05 61 75 13 13

Fax 05 61 75 47 97

Web [Link]
2/5
SQL Server 2000 – Episode 2 : XML

1, avenue de l’Europe, Campus 1 – Bâtiment F  31400 Toulouse  Tél. 05 61 75 13 13  Fax 05 61 75 47 97


3/5
SQL Server 2000 – Episode 2 : XML

1 Introduction
Nous allons aujourd’hui nous pencher sur un des nombreux espaces de nommage
du framework .Net : le [Link].

Cet espace et ses sous-espaces ont pour rôle de fournir des classes puissantes et
simples pour encapsuler le GDI+. Ce dernier n’est autre qu’une API riche pour
dessiner et gérer tout ce qui a trait à l’image sous Windows.

Dans ce cadre, nous allons mettre en place un programme qui va nous permettre
de convertir à la volée des fichiers d’un format graphique vers un autre.

Le code source de cet outil est téléchargeable ici :


[Link]

2 ImgConverter
L’interface graphique se présente de la manière suivante :

Nous allons donc découper notre travail en trois étapes :


1. Remplir la liste des formats de sortie
2. Sélectionner les fichiers à convertir
3. Mettre en place la conversion

Pour ce faire, nous allons utiliser les deux espaces de nommages suivants :
 [Link] : Permet l’accès aux fonctionnalités de base du GDI+.

1, avenue de l’Europe, Campus 1 – Bâtiment F  31400 Toulouse  Tél. 05 61 75 13 13  Fax 05 61 75 47 97


4/5
SQL Server 2000 – Episode 2 : XML

 [Link] : Permet l’accès aux classes de manipulation des


images.

Pour notre exemple, nous allons prendre en compte 5 formats : le BMP, le JPEG, le
TIFF, le GIF et le PNG. Ces formats sont directement gérés par le GDI+ via des
décodeurs et des encodeurs présents sur le système. Dans le cadre d’un format non
géré, nous pourrions mettre en œuvre nos propres codeurs et décodeurs via le
concept d’héritage.

Le remplissage de la combo de format de sortie s’effectue ainsi :

private void Form1_Load(object sender, [Link] e)


{
// On associe le format à la combobox
[Link]("BMP", [Link]);
[Link]("JPG", [Link]);
[Link]("GIF", [Link]);
[Link]("TIF", [Link]);
[Link]("PNG", [Link]);

// On ajoute les entrées dans la combo


[Link]("BMP");
[Link]("JPG");
[Link]("GIF");
[Link]("TIF");
[Link]("PNG");
}

La variable formatConversion est une table de hachage qui nous permettra de


récupérer le bon encodeur selon la chaîne de caractères présente dans la combo.
En effet, une table de hachage (Hashtable) permet d’associer une clé à un objet et
donc une chaîne de caractères à un format de codage. Le format de codage est une
propriété statique de la classe ImageFormat.

La sélection des fichiers à convertir va se faire via la classe OpenFileDialog qui nous
donne accès à la boite de dialogue standard de sélection de fichier :

private void cmdChoisir_Click(object sender, [Link] e)


{
// Ouverture d'une fenêtre de dialogue afin de choisir les fichiers
OpenFileDialog frm = new OpenFileDialog();

// Possibilité de multisélection
[Link] = true;

// Notre filtre
[Link] = "Fichiers Images(*.BMP;*.JPG;*.GIF;*.PNG;*.TIF)|
*.BMP;*.JPG;*.GIF;*.PNG;*.TIF|Tous (*.*)|*.*";

// Affichage
if ([Link]() == [Link])
{
// On remplit la liste
[Link]();
foreach (string fichier in [Link])
[Link](fichier);
}
}

1, avenue de l’Europe, Campus 1 – Bâtiment F  31400 Toulouse  Tél. 05 61 75 13 13  Fax 05 61 75 47 97


5/5
SQL Server 2000 – Episode 2 : XML

Finalement, il ne nous reste plus qu’à parcourir la liste de nos fichiers et à faire
appel à la classe Image. Cette dernière possède toutes les bonnes méthodes pour
charger où sauvegarder des images.

private void cmdConvertir_Click(object sender, [Link] e)


{
// On positionne la souris en attente
Cursor = [Link];
try
{
string format = [Link]();
foreach (string fichier in [Link])
{
string extension = [Link]([Link] - 3, 3);
if (extension != format)
{
// On crée le nouveau nom de fichier
string nouveauFichier = [Link](0,
[Link] - 3) + format;

// On crée une image GDI+


Image img = [Link](fichier);

// On sauvegarde selon le bon format


[Link](nouveauFichier,
(ImageFormat)formatConversion[format]);
}
}
// Tout s'est bien passé...
[Link]();
[Link]("Conversion réussie avec succés.");
}
catch
{
// En cas d'erreur, on affiche un message à l'utilisateur
[Link]("Erreur lors de la conversion");
}

Cursor = [Link];
}

Encore une fois, le fonctionnement se trouve être on ne peut plus simple grâce à
l’encapsulation faite par les classes de base du Framework .Net.

Il faut également souligner que le [Link] possède énormément de


fonctionnalités en ce qui concerne le graphisme 2D et que nous n’avons ici fait
qu’effleurer une partie microscopique.

1, avenue de l’Europe, Campus 1 – Bâtiment F  31400 Toulouse  Tél. 05 61 75 13 13  Fax 05 61 75 47 97

Vous aimerez peut-être aussi