c# – 需要一些能够创建缩略图的精简库/代码,并且最适合与ASP.NE
发布时间:2020-12-16 01:48:34 所属栏目:百科 来源:网络整理
导读:下面是从数据库中返回图像的动作方法,我需要一些精简库或自己编写代码,如果短,将根据我的要求调整和压缩这些图像“制作缩略图”,然后再传递给HTTP响应. 编辑:实际上想到它,也许最好将缩略图保存在附加列中,所以现在我需要一种方法来压缩和调整图像大小,然后
下面是从数据库中返回图像的动作方法,我需要一些精简库或自己编写代码,如果短,将根据我的要求调整和压缩这些图像“制作缩略图”,然后再传递给HTTP响应.
编辑:实际上想到它,也许最好将缩略图保存在附加列中,所以现在我需要一种方法来压缩和调整图像大小,然后将它们保存到数据库很长时间,保存一个未受影响的副本.最初通过在HttpPostedFileBase中传递图像来保存图像,现在需要一些在保存到数据库之前调整大小和压缩的工具. public FileContentResult GetImage(int LineID) { var PMedia = repository.ProductMedias.FirstOrDefault(x => x.LineID == LineID); if (PMedia != null) { return File(PMedia.ImageData,PMedia.ImageMimeType,PMedia.FileName); } else { return null; } } 解决方法
这是我用来制作缩略图的例程:
public void MakeThumbnail(string imagePath) { // Image exists? if (string.IsNullOrEmpty(imagePath)) throw new FileNotFoundException("Image does not exist at " + imagePath); // Default values string Filename = imagePath.ToLower().Replace(".jpg","_thumb.jpg"); int Width = 100; // 180; int Height = 75; // 135; bool lSaved = false; // Load image Bitmap bitmap = new Bitmap(imagePath); // If image is smaller than just save try { if (bitmap.Width <= Width && bitmap.Height <= Height) { bitmap.Save(Filename,ImageFormat.Jpeg); lSaved = true; } } catch (Exception e) { throw new Exception(e.Message); } finally { bitmap.Dispose(); } if (!lSaved) { Bitmap FinalBitmap = null; // Making Thumb try { bitmap = new Bitmap(imagePath); int BitmapNewWidth; decimal Ratio; int BitmapNewHeight; // Change size of image Ratio = (decimal)Width / Height; BitmapNewWidth = Width; BitmapNewHeight = Height; // Image processing FinalBitmap = new Bitmap(BitmapNewWidth,BitmapNewHeight); Graphics graphics = Graphics.FromImage(FinalBitmap); graphics.InterpolationMode = InterpolationMode.HighQualityBicubic; graphics.FillRectangle(Brushes.White,BitmapNewWidth,BitmapNewHeight); graphics.DrawImage(bitmap,BitmapNewHeight); // Save modified image FinalBitmap.Save(Filename,ImageFormat.Jpeg); } catch (Exception e) { throw new Exception(e.Message); } finally { if (FinalBitmap != null) FinalBitmap.Dispose(); } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |