2012-04-19 2 views
1

Я показываю изображения из базы данных SQL Server для всех сотрудников. Когда эти изображения хранятся в базе данных, они были сохранены в разных размерах. Один из них имеет меньший размер, а другие - более крупные.Стандартизация размера jpeg в asp.net

Когда я говорю размер, я имею в виду ширину и высоту.

Когда я показываю его в ASPX странице я хочу, чтобы отобразить в 300x250 размер

Как я могу это сделать? Если я задаю высоту и ширину изображения, изображения будут искажены.

Пожалуйста, помогите

+0

Просто предлагаю, чтобы сохранить изображения в БД в окончательном размере с самого начала - его более эффективным и легким. Пусть пользователь загрузит изображение, а затем сделает его шириной/высотой max на 300/250, поэтому максимальный размер составляет 300x250, но поддерживайте пропорции. Заполните черные полосы сверху/снизу или боков, если необходимо. – SimpleVar

ответ

0
  1. В вашем HTML, вы должны указать фактическую высоту и ширину файла.

    Если вы этого не сделаете, изображение, скорее всего, будет искажено и/или отобразится с помощью «jaggies».

  2. Если вы действительно хотите сделать снимок 300x250, вам необходимо использовать инструменты, такие как The Gimp, Photoshop или ImageMagick, чтобы изменить размер и/или обрезать его до нужной высоты и ширины.

1

Если изображение искажено при установке размера 300x250, это, вероятно, связано с тем, что соотношение сторон отличается. Попробуйте установить ширину или высоту.

1

Что касается вашего вопроса, то вы можете сделать несколько вещей,

  1. Вы можете использовать Algo, чтобы изменить размер изображения, сохраняя при этом Raito между высотами. Вам нужно будет запустить его для старых изображений и для каждого нового изображения. Вот статья, чтобы вы начали: http://www.codeproject.com/Articles/13192/Image-Resizing-Maintaining-Height-Width-Ratio

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

  3. При отображении изображения вы проверяете высоту/ширину и уменьшаете их, только если это превышает ваши желаемые пределы.

для всех подходов, если изображения имеют меньшую высоту/ширину, чем те, которые вы хотите, то вы бы просто оставить их как есть, иначе они будут искажаться.

Кроме того, я хочу сказать вам, что размещение изображений и, если на то пошло, любой другой файл в базе данных - это плохая практика :(Это накладные расходы на память. Лучшая практика заключается в том, чтобы поместить его в файловую систему, вы можете google далее, чтобы найти преимущества этого подхода.

2

Взгляните на ImageResizer.net.В нем есть все необходимые, включая образцы кода для интеграции SQL Server и croping с соотношением сторон сохранившимся:

http://imageresizing.net/

Самыми популярными функциями являются свободным и открытым исходным кодом:

  • Resizing, кадрирование, вращающимся , flipping
  • Границы, тени, отступы, цвета фона
  • Регулируемое сжатие Jpeg. Многостраничный просмотр tiff
  • Анимированный выбор рамки GIF. Всесторонние, диагностика в реальном времени
  • Basic GIF и PNG кодирование
  • Gradient поколения