【问题标题】:Dynamically reducing image dimension as well as image size in C#在 C# 中动态减小图像尺寸和图像大小
【发布时间】:2009-02-24 19:45:54
【问题描述】:

我有一个使用中继器控件创建的图片库。中继器在我的代码隐藏文件中绑定到包含各种图像路径的表。

我的中继器中的图像是这样填充的

<img src='<%# Eval("PicturePath")' %>' height='200px' width='150px'/> 

(或者类似的东西,我不记得确切的语法)

问题是有时图像本身很大,因此加载时间有点荒谬。并且填充 150x200px 的图像绝对不需要 3MB 的文件。

有没有办法不仅可以更改图像尺寸,还可以缩小文件大小?

谢谢!

【问题讨论】:

    标签: c# asp.net image-scaling


    【解决方案1】:

    我建议创建一个处理程序,它可以为您动态调整图像大小并以您喜欢的任何格式对其进行编码......有点像缩略图生成器。这将消耗服务器上的 CPU,但您可以缓存图像并大大降低带宽成本 ETC。让我看看能不能找到我读过的一篇关于类似内容的好文章的链接。

    您可以查看this article,这不是我读过的,但它提供了一些有关如何实施此功能的信息。

    【讨论】:

    • 您对每个图像在服务器上的初始 CPU 命中率是正确的,但是一旦缓存... +1
    • 我同意,调整完整图像的大小会花费你不必要的带宽。
    • 我专门为此目的写了ImageResizer,并且在过去五年中我一直在维护和改进它。如果您决定重新发明轮子,make sure you avoid these 29 pitfalls, they're tricky
    【解决方案2】:

    您正在寻找 Image 类的 GetThumbnailImage method。您可能希望提前生成缩略图图像,或者在第一次访问时创建图像并将其保存到磁盘以供以后使用(因此第一次访问会很慢,但随后的请求会很快)。

    【讨论】:

    • GetThumbnailImage 质量很差...它使用嵌入式相机生成的 80x80 拇指。
    【解决方案3】:

    您可以在CodePlex.com 上尝试这两个项目中的任何一个,它们都提供带有缓存的动态图像生成。

    后者直接来自微软。

    【讨论】:

    • 是的,用于 ASP 图像生成的 codeplex 项目很好,我没有发布它,因为我不想混淆控件并从文本创建动态图像与减小现有图像的大小。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-24
    • 2017-04-07
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多