2009-02-24 91 views
1

我有一个使用中继控件创建的图像库。中继器在我的代码后面绑定到一个包含各种图像路径的表中。动态减少图像尺寸以及C#中的图像尺寸

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

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

(或类似的规定,我不记得确切的语法)

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

有没有一种方法我不仅可以更改图像尺寸,还可以缩小文件尺寸?

谢谢!

回答

3

我会建议创建一个处理程序,可以动态地为您调整图像大小,并以任何您喜欢的格式对它们进行编码..有点像缩略图生成器。这将花费服务器上的CPU,但可以缓存图像并严格降低带宽成本ETC.让我看看是否可以找到我阅读过类似文章的好文章的链接。

你可以看看this article这不是我已经阅读过的,但它有一些关于如何去实现它的信息。

+0

对于每张图片服务器上的初始CPU命中,但是一旦缓存... +1 – JMD 2009-02-24 19:50:27

+0

我同意,调整完整图像的大小会导致您观察到不必要的带宽。 – Pat 2009-02-24 19:57:42

+0

我写了[ImageResizer](http://imageresizing.net)专门为此目的,我一直在维护和改进它过去五年。如果你决定重新发明轮子,[确保你避免这29个陷阱,他们很棘手](http://nathanaeljones.com/163/20-image-resizing-pitfalls/)。 – 2012-06-08 13:09:50

1

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