ImageHelper.cs
Description du code
ImageHelper.cs est un fichier du projet BrolDev.Ce fichier est situé dans /var/www/bin/sniplets/bibliobrol/broldev/src/.
Projet BrolDev : Librairie de composants réutilisables pour les applications BrolDev en CSharp.
Code source ou contenu du fichier
Code c# (ImageHelper.cs) (170 lignes)
using System; using System.Drawing; using System.IO; using System.Text; using System.Windows.Forms; using be.gaudry.observer; namespace be.gaudry.model.drawing { public class ImageHelper { public static bool isImg(string fileName) { fileName = fileName.ToUpper(); return ( fileName.EndsWith(".JPEG") || fileName.EndsWith(".JPG") || fileName.EndsWith(".GIF") || fileName.EndsWith(".TIFF") || fileName.EndsWith(".PNG") || fileName.EndsWith(".BMP") ); } /// <summary> /// Open a openfiledialog to select the image file /// to be diplayed in a PictureBox /// </summary> /// <param name="form">(Form</param> /// <param name="pictureBox"></param> public static void setImageLocation(Form form, PictureBox pictureBox) { openImgDialog.RestoreDirectory = true; openImgDialog.CheckFileExists = true; openImgDialog.Title = "Sélectionner une image..."; openImgDialog.Filter = "Images|*.jpeg;*.jpg;*.gif;*.png;*.bmp;*.tiff|Joint Photographic Experts Group (.jpeg, .jpg)|*.jpeg;*.jpg|Graphical Interchange Format (.gif)|*.gif|Portable Network Graphic (.png)|*.png|Bitmap (.bmp)|*.bmp|Tagged Image File Format (.tiff)|*.tiff"; openImgDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures); //Config.DataDirPath;//Application.StartupPath; if (openImgDialog.ShowDialog(form) == DialogResult.OK) { pictureBox.ImageLocation = openImgDialog.FileName; } openImgDialog.Dispose(); } /// <summary> /// Decorator of File.copy method /// </summary> /// <param name="oldPath">(String) Path of the old file</param> /// <param name="newPath">(String) Path of the new file</param> public static void copy(String oldPath, String newPath) { if (String.IsNullOrEmpty(oldPath)) StaticObservable.notify(new Notification(Notification.VERBOSE.error, "Copie d'image", "Impossible de copier le fichier (le chemin du fichier source est vide)")); if (String.IsNullOrEmpty(newPath)) StaticObservable.notify(new Notification(Notification.VERBOSE.error, "Copie d'image", "Impossible de copier le fichier (le chemin du fichier destination est vide)")); if (!oldPath.Equals(newPath)) { try { if (oldPath.Contains("http")) { webClient.DownloadFile(oldPath, newPath); } else { File.Copy(oldPath, newPath, true); } } catch (UnauthorizedAccessException uae) { StaticObservable.notify(new Notification(Notification.VERBOSE.error, "Copie d'image", "Modification de l'image (Accès interdit)", uae)); } catch (DirectoryNotFoundException dnfe) { StaticObservable.notify(new Notification(Notification.VERBOSE.error, "Copie d'image", "Modification de l'image (Chemin du répertoire non valide)", dnfe)); } catch (NotSupportedException nse) { StaticObservable.notify(new Notification(Notification.VERBOSE.error, "Copie d'image", "Modification de l'image (Opération non supportée)", nse)); } catch (Exception e) { } } } public static String getImgInfos(String imgPath) { if (File.Exists(imgPath)) { str.AppendFormat("\n\nTaille \t\t: {0}\n", Units.getLengthString(fi.Length)); str.AppendFormat("\nCréé le \t\t: {0}", fi.CreationTime.ToShortDateString()); str.AppendFormat("\nModifié le\t\t: {0}", fi.LastWriteTime.ToShortDateString()); str.AppendFormat("\nDernier accès le\t: {0}\n", fi.LastAccessTime.ToShortDateString()); str.AppendFormat("\nNom \t\t: {0}", fi.Name); str.AppendFormat("\nType \t\t: {0}\n", fi.Extension); str.AppendFormat("\nHauteur \t\t: {0} pixels", bmp.Height); str.AppendFormat("\nLargeur \t\t: {0} pixels", bmp.Width); } return str.ToString(); } /* public static Image getThumbnail(String path, int width, int height) { Image bmp = Image.FromFile(path); Double dif = Convert.ToDouble(Decimal.Divide(bmp.Width, bmp.Height)); width = Convert.ToInt32(Math.Ceiling(height * dif)); Bitmap tn = new Bitmap(width, height); Graphics g = Graphics.FromImage(tn); g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear; //experiment with this... g.DrawImage(bmp, new Rectangle(0, 0, tn.Width, tn.Height), 0, 0, bmp.Width, bmp.Height, GraphicsUnit.Pixel); g.Dispose(); bmp.Dispose(); return (Image)tn; } public static Image toThumbnailHighQuality(Image bmp, int width, int height) { Double dif = Convert.ToDouble(Decimal.Divide(bmp.Width, bmp.Height)); width = Convert.ToInt32(Math.Ceiling(height * dif)); Bitmap tn = new Bitmap(width, height); Graphics g = Graphics.FromImage(tn); g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear; g.DrawImage(bmp, new Rectangle(0, 0, tn.Width, tn.Height), 0, 0, bmp.Width, bmp.Height, GraphicsUnit.Pixel); g.Dispose(); bmp.Dispose(); return (Image)tn; }*/ public static Image getResized(Image image, int maxWidth, int maxHeight) { if (image.Width > maxWidth || image.Height > 16) { int newWidth = (image.Width > maxWidth) ? maxWidth : image.Width; int newHeight = image.Height * newWidth / image.Width; if (newHeight > maxHeight) { // Resize with height instead newWidth = image.Width * maxHeight / image.Height; newHeight = maxHeight; } } return image; } } }
Structure et Fichiers du projet
Afficher/masquer...Icône | Nom | Taille | Modification |
Icône | Nom | Taille | Modification |
| _ | Répertoire parent | 0 octets | 1732313510 22/11/2024 23:11:50 |
| _ | colors | 0 octets | 1541007202 31/10/2018 18:33:22 |
| _ | chart | 0 octets | 1541007202 31/10/2018 18:33:22 |
Utilisation de l'explorateur de code
- Navigation :
- Un clic sur une icône de répertoire ouvre ce répertoire pour en afficher les fichiers.
- Lorsque le répertoire en cours ne contient pas de sous-répertoires il est possible de remonter vers le répertoire parent.
- La structure de répertoires en treetable (tableau en forme d'arborescence) n'est plus possibledans cette version.
- Un clic sur une icône de fichier ouvre ce fichier pour en afficher le code avec la coloration syntaxique adaptée en fonction du langage principal utilisé dans le fichier.
- Affichage :
- Il est possible de trier les répertoires ou les fichiers selon certains critères (nom, taille, date).
- Actions :
- Les actions possible sur les fichiers dépendent de vos droits d'utilisateur sur le site. Veuillez activer le mode utilisateur pour activer les actions.
Version en cache
22/11/2024 23:11:50 Cette version de la page est en cache (à la date du 22/11/2024 23:11:50) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 16/10/2009, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/cs-broldev-source-rf-model/drawing//ImageHelper.cs.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.