2009-02-24 4 views
1

У меня есть галерея изображений, которая создается с помощью регулятора ретранслятора. Повторитель привязывается внутри моего кода за файлом к ​​таблице, содержащей различные пути изображения.Динамически уменьшающий размер изображения, а также размер изображения в C#

Изображения в моем повторителя заселены как этот

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

(или что-то вдоль этих линий, я не помню точный синтаксис)

Проблема иногда сами изображения массивны так время загрузки немного смешно. И для заполнения изображения размером 150x200px определенно не требуется 3MB-файл.

Есть ли способ изменить размеры изображения не только, но и уменьшить размер файла?

Спасибо!

ответ

3

Я бы рекомендовал создать обработчик, который может изменять размеры изображений для вас на лету и кодировать их в любом формате, который вам нравится ... вроде как генератор миниатюр. Это будет стоить CPU на сервере, но вы можете кэшировать изображения и серьезно сокращать расходы на трафик ETC. Позвольте мне посмотреть, могу ли я найти ссылку на хорошую статью, которую я читал на чем-то подобном.

Вы можете посмотреть this article Это не тот, который я прочитал, но у него есть информация о том, как вы можете это реализовать.

+0

Вы правы в отношении начального удара процессора на сервере для каждого изображения, но после кэширования ... +1 – JMD

+0

Согласен, изменение размеров изображений будет стоить вам ненужной полосы пропускания. – Pat

+0

Я специально для этой цели написал [ImageResizer] (http://imageresizing.net), и я поддерживал и улучшал его в течение последних пяти лет. Если вы решите изобрести колесо, [убедитесь, что вы избегаете этих 29 ловушек, они сложны) (http://nathanaeljones.com/163/20-image-resizing-pitfalls/). –

1

Вы ищете GetThumbnailImage method класса Image. Вы либо захотите генерировать миниатюрные изображения раньше времени или создать изображение при первом доступе и сохранить его на диске для последующего использования (поэтому первый доступ будет медленным, но последующие запросы будут быстрыми).

+0

GetThumbnailImage имеет ужасное качество ... Он использует встроенный в камеру 80x80 большой палец. –

0

Вы можете попробовать любой из этих двух проектов на CodePlex.com, оба предлагают динамическое поколение изображений с кешированием.

Поздний прямо от Microsoft.

+0

Да, проект Codeplex для ASP Image Generation хорош, я не публиковал это, потому что я не хотел путать элемент управления и создавать динамические изображения из текста с уменьшением размера существующих изображений. –

Смежные вопросы