Использовать Javascript для извлечения эскиза из JPEG? - PullRequest
2 голосов
/ 06 февраля 2011

Многие камеры теперь помещают миниатюры в свои изображения JPEG и RAW. Я хотел бы иметь возможность автоматически загружать некоторые изображения, а затем отображать только миниатюры, или, что еще лучше, автоматически загружать только часть миниатюр для скорости.

Есть ли способ сделать это в Javascript?

Спасибо.

1 Ответ

3 голосов
/ 06 февраля 2011

Вы сказали, что хотите сделать это в браузере, поэтому, когда вы говорите:

... или, что еще лучше, автоматически загружайте только уменьшенную часть для скорости.

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

Вы можете создавать миниатюры для извлеченных изображений, просто создав элемент img и установив его width и height на что-то меньшее;по умолчанию браузеры уменьшают изображение (не обязательно красивым способом).

Пример:

var img = document.createElement('img');
img.src = "your image url here";
img.style.width = "32px";       // Change as appropriate
img.style.height = "32px";      // Change as appropriate
document.body.appendChild(img); // Or append to some other container element

Живая копия

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

Если вы хотите изменить размер на процент (скажем, 25%), вы можете сделать это, но это сложнее: вам нужно создать изображение, загрузить его за пределы экрана (есть различные способы сделатьэто), дождитесь завершения загрузки, а затем выполните расчет.


Если вы работаете с сервером, вам, вероятно, лучше найти что-то, что может предварительно обработать изображения и создатьминиатюры для вас. ImageMagick , например, может помочь с этой серверной стороной.

...