【问题标题】:Making Thumbnail images using a file使用文件制作缩略图
【发布时间】:2011-08-11 01:55:24
【问题描述】:

我想知道使用文件为现有图像制作缩略图而不是将其保存到磁盘是否有任何缺点。是否有任何与此相关的内存问题?!
我的代码:

// thumbnails.aspx

protected void Page_Load(object sender, EventArgs e)
{
    string file = Request.QueryString["i"];
    if (file == null)
        return;
    if (!IsFileExists(file))
        return;
    Thumb(file);
  }
public void Thumb(string file) 
{
    System.Drawing.Image image = System.Drawing.Image.FromFile(Server.MapPath(file));
    System.Drawing.Image thumbnailImage = image.GetThumbnailImage(70, 70, new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero);
    System.IO.MemoryStream imageStream = new System.IO.MemoryStream();
    thumbnailImage.Save(imageStream, System.Drawing.Imaging.ImageFormat.Jpeg);
    byte[] imageContent = new Byte[imageStream.Length];
    imageStream.Position = 0;
    imageStream.Read(imageContent, 0, (int)imageStream.Length);
    Response.ContentType = "image/jpeg";
    Response.BinaryWrite(imageContent);
}

【问题讨论】:

  • 我不明白你的问题。你能更清楚地解释你正在权衡的两个选项吗?您可以使用 System.Windows.Media 和 WPF,而不是使用 System.Drawing 和 GDI,这样效率更高。
  • 我可以将缩略图图像保存在一个名为“Thumbs”的文件夹中,或者我可以发送一个名为 Thumbnail.aspx 的特定文件的图像文件,该文件又返回一个字节 [],其中包含图像的缩略图,此缩略图未保存到磁盘中
  • 在 GDI 之上使用 WPF 有什么好处!!
  • @mrtsherman “您可以使用 System.Windows.Media 和 WPF,而不是使用 System.Drawing 和 GDI,这样效率更高。”您有该声明的任何支持文档/链接吗?
  • @steve - weblogs.asp.net/bleroy/archive/2009/12/10/… - 他有一个基准。 Fast WPF 比 GDI 快大约 3.5 倍。

标签: c# thumbnails


【解决方案1】:

然后将其存储在文件中。每次使用 GDI 转换为缩略图会占用大量 CPU 周期。您还可以将图像存储在数据库中,而不是存储在磁盘上。

【讨论】:

  • 在数据库中存储时要小心,因为这最终会使用数据库服务器上的大量 RAM。
猜你喜欢
  • 2014-02-09
  • 1970-01-01
  • 2021-03-07
  • 2011-08-28
  • 1970-01-01
  • 2013-03-06
  • 2010-11-27
  • 2014-04-05
  • 2013-07-06
相关资源
最近更新 更多