1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
Remplissage de la picturebox
_pb.BackgroundImage = this.picture.Thumbnail( fic, _pb.Width, _pb.Height );
/// <summary>
/// Génère un apercu pour une image
/// </summary>
/// <param name="fichier">Chemin du fichier image</param>
/// <param name="width">largeur maxi de la vignette</param>
/// <param name="height">hauteur de la vignette</param>
/// <returns>image de la vignette</returns>
public Image Thumbnail( string fichier, int width, int height )
{
Image original = null;
Bitmap tn = null;
Graphics g = null;
try
{
// Chargement du fichier original
original = Image.FromFile(fichier);
// Calcul des dimensions
decimal diff = 0;
if (width < height)
{
diff = ((decimal)width / (decimal)original.Width);
height = (diff > 0 ? (int)(original.Height * diff) : original.Height);
}
else
{
diff = ((decimal)height / (decimal)original.Height);
width = (diff > 0 ? (int)(original.Width * diff) : original.Width);
} // Fin de : if (width < height)
// Création d'un nouveau bitmap
tn = new Bitmap(width, height);
g = Graphics.FromImage( tn );
g.InterpolationMode = InterpolationMode.HighQualityBilinear;
g.DrawImage(original, new Rectangle(0, 0, tn.Width, tn.Height), 0, 0, original.Width, original.Height, GraphicsUnit.Pixel);
}
catch { }
finally
{
// Libération des ressources
if( original != null )original.Dispose();
original = null;
if (g != null) g.Dispose();
g = null;
}
return (Image)tn;
} // Fin de : Thumbnail |
Partager