2009-04-21 4 views
2

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

Проблема в том, что качество этих изображений (которое я не контролирую) уменьшено. Также они выглядят намного лучше в FF и Safari, чем в IE.

Есть ли способ сделать эти изображения лучше, не кэшируя их на моем сервере? (например, библиотека javascript, которая изменяет размер с лучшим качеством)? Любая идея высоко ценится.

+1

Прошу прощения, вы говорите, что НЕ хотите сохранять 2 версии изображения? Оригинал и большой палец? Вам просто нужен способ «показать» изображение в виде миниатюры из исходного файла? –

+0

Dup: http://stackoverflow.com/questions/681684/how-can-you-make-images-resized-with-css-look-good-in-ie – JPot

+0

Новый плагин jQuery: http://stackoverflow.com/questions/34965904/ie-thumbnail-pixelation-when-high-resolution-image-is-set-to-small-size – Spirit

ответ

4

IE по умолчанию алгоритм изменения размера изображения не так уж хорош - его можно изменить путем настройки записи в реестре, но, конечно, это вне вашего контроля.

Однако, по-видимому, он также может быть вызван, чтобы сделать лучше изображение изменения размера через CSS

img { -ms-interpolation-mode: bicubic; } 

Источник: http://edmondcho.com/blog/2009/03/17/internet-explorer-image-resizing-tip/

+0

Отлично. Кто-нибудь знает, как я могу использовать Javascript для его настройки? – Nir

+0

use object.style.msInterpolationMode = "bicubic"; (источник: http://www.tomwalsham.com/post.php?id=71) –

+0

Обратите внимание, что это больше не поддерживается в IE10. На этом этапе нет замены (см. Рисунок). –

1

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

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

+0

Изображения отображаются с разрешения. Авторское право и пропускная способность от владельцев изображений здесь не являются проблемой. Я не хочу кэшировать изображения из соображений пропускной способности и времени ответа. Ожидается, что система вырастет до больших количеств. – Nir

+0

Это грубо сказать, что вы хотите сохранить пропускную способность ... для себя! но вы хотите, чтобы пользователь загрузил все изображение с третьего лица? Ик. –

2

Единственный способ контролировать это сделать изменение размера самостоятельно. Различные браузеры будут использовать разные алгоритмы, некоторые с нерезким маскированием, а некоторые без них. Фильтры, используемые после изменения размера, управляют большей частью этого. Конкретная привязка CSS может в некоторой степени контролировать это.

Javascript не может справиться с этим, но использование Flash или аналогичного разрешит это. Вам лучше контролировать изображение. Однако вы потеряете «образность» до HTML.

2

Одна вещь, которую я не видел, упомянутые в других - вы не действительно изменяя размер изображения, вы просто показываете его в меньшем пространстве. Предположим, вы сбрасываете чрезвычайно большой файл изображения (5 МБ) и отображаете его на 1 х 1 - он все еще 5 МБ!

Написание решения для кеширования для этих изображений не будет очень сложным - и это избавит вас от юридических последствий и смущения. Если бы я увидел ваш сайт в своих файлах журналов и понял, что вы сбрасываете мои изображения, вы бы были Goatse'd - тяжело.

+0

Изображения отображаются с разрешения. Авторское право не является проблемой здесь. Я не хочу кэшировать изображения из-за соображений пропускной способности и времени ответа. – Nir

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