Ce programme parcours le dossier dans lequel il se trouve et redimensionne les images
L'utilisateur saisit le coefficient par lequel la taille de l'image sera divisé.
Le code est très commenté et se veut simpliste.
(Dans le zip : un batch pour compiler, la source, l'executable, deux images)
Source / Exemple :
using System;
using System.Windows.Forms; //Application
using System.IO; //Directory et Path
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
public class resize
{
public static void Main()
{
//Ce programme redimensionne toutes les images du dossier
//This program resize all pictures in the directory
//csc resize.cs and GO !
//Have fun ! // http://vince.monkeyz.eu
int coeff;
Console.Write("Diviser la taille par : ");
string res = Console.ReadLine();
try
{
coeff = int.Parse(res); //conversion en entier
}
catch
{
coeff = 2; //valeur par défaut
}
string tab_ext = ".jpg.jpeg.png.bmp.gif.tiff"; //Extensions authorisée
string[] files = Directory.GetFiles(Application.StartupPath); //Liste des fichiers du dossier
foreach (string file in files)
{ //file = 1 image
string ext = Path.GetExtension(file).ToLower();
if (tab_ext.Contains(ext)) //extension valide ?
Resize(file, coeff, ext);
else
Console.WriteLine(file + " : fichier invalide");
}
Console.Write("Done");
Console.ReadKey();
}
public static void Resize(string name, int coeff, string ext)
{
//Ouverture de l'ancienne image
FileStream fs = new FileStream(name, FileMode.Open, FileAccess.Read);
Bitmap old = (Bitmap)Bitmap.FromStream(fs);
fs.Close();
int destWidth = old.Width / coeff;
int destHeight = old.Height / coeff;
Bitmap img = new Bitmap(destWidth, destHeight, old.PixelFormat); //Nouvelle image, nouvelle largeur/hauter, ancien PixelFormat
using (Graphics g = Graphics.FromImage((Image)img))
{
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(old, 0, 0, destWidth, destHeight);
} //nota : g.Dispose();
string path = Application.StartupPath + "\\mini-" + Path.GetFileName(name); // save path (mini-...jpg)
ImageFormat imgfmt;
if (ext == ".bmp")
imgfmt = ImageFormat.Bmp;
else if (ext == ".gif")
imgfmt = ImageFormat.Gif;
else if (ext == ".png")
imgfmt = ImageFormat.Png;
else if (ext == ".tiff")
imgfmt = ImageFormat.Tiff;
else
imgfmt = ImageFormat.Jpeg;//Defaut
img.Save(path, imgfmt);
}
}
Conclusion :
En modifiant un petit peu le code, il est possible de changer la qualité, de convertir, définir une taille fixe,...
Un problème, une remarque,... n'hésitez pas à commenter
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.