Je souhaite afficher la vignette en vue grille à partir de l'emplacement du fichier. comment générer celui du fichier .jpeg J'utilise le langage C # avec asp.net
Réponses
Trop de publicités?Vous souhaitez utiliser GetThumbnailImage dans la classe Image:
http://msdn.microsoft.com/en-us/library/system.drawing.image.getthumbnailimage.aspx
Voici un exemple approximatif qui prend un fichier image et en fait une vignette, puis l’enregistre sur le disque.
Image image = Image.FromFile(fileName);
Image thumb = image.GetThumbnailImage(120, 120, ()=>false, IntPtr.Zero);
thumb.Save(Path.ChangeExtension(fileName, "thumb"));
Priyan R
Points
687
Le code suivant va écrire une image proportionnelle à la réponse, vous pouvez modifier le code pour votre but
public void WriteImage(string path, int width, int height)
{
Bitmap srcBmp = new Bitmap(path);
float ratio = srcBmp.Width / srcBmp.Height;
SizeF newSize = new SizeF(width, height * ratio);
Bitmap target = new Bitmap((int) newSize.Width,(int) newSize.Height);
HttpContext.Response.Clear();
HttpContext.Response.ContentType = "image/jpeg";
using (Graphics graphics = Graphics.FromImage(target))
{
graphics.CompositingQuality = CompositingQuality.HighSpeed;
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.CompositingMode = CompositingMode.SourceCopy;
graphics.DrawImage(srcBmp, 0, 0, newSize.Width, newSize.Height);
using (MemoryStream memoryStream = new MemoryStream()) {
target.Save(memoryStream, ImageFormat.Jpeg);
memoryStream.WriteTo(HttpContext.Response.OutputStream);
}
}
Response.End();
}