Можно ли оптимизировать/уменьшить изображения перед загрузкой?

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

Я видел, что Aurigma Image Uploader достигает этого с помощью java-апплета или активного x, но это дорого, и я бы предпочел что-то с открытым исходным кодом или, по крайней мере, немного дешевле. В идеале я хотел бы свернуть свой собственный, если это вообще возможно.

Я разрабатываю Ruby on Rails, если это имеет значение.

Спасибо!

Изменить просто для уточнения: я не против, если решение использует ActiveX или апплет (хотя js идеален) - я просто ищу что-то немного дешевле, чем Aurigma на данном этапе разработки.

Кроме того, пользователи могут не иметь возможности уменьшить изображение самостоятельно, поскольку во многих случаях они будут загружать его непосредственно из интернет-кафе или другого общедоступного интернет-сайта.


person jcoffey    schedule 11.06.2009    source источник
comment
Это возможно с HTML5 и холстом. stackoverflow.com/questions/13017909/   -  person seangates    schedule 02.10.2013


Ответы (5)


Как правило, на JavaScript невозможно написать компрессор изображений. Извиняюсь.

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

Кажется, можно написать что-то для кодирования JPEG в ActionScript (т.е. Flash), что охватит гораздо большую аудиторию, чем упоминаемый вами плагин Java. Вот ссылка на сообщение в блоге, в котором говорится о кодировщиках PNG и JPEG в ActionScript.

Вот еще одна запись в блоге с демонстрацией встроенного кодировщика JPEG в ActionScript.

person slacy    schedule 11.06.2009

Только если вы используете Flash или Silverlight (единственный способ быть кросс-платформенным)

http://www.jeff.wilcox.name/2008/07/fjcore-source/ стоит прочитать.

person Nate    schedule 11.06.2009
comment
FJcore выглядит действительно интересно, но насколько часто в браузере устанавливается Silverlight? - его загрузка 4 МБ, в противном случае я начинаю думать, что Flash может быть подходящим способом.. - person jcoffey; 12.06.2009
comment
Flash в настоящее время имеет большую установочную базу; но, по моему опыту, разработка Silverlight значительно более интуитивно понятна. Если в браузере нет Silverlight, вы всегда можете показать стандартное управление загрузкой и выполнить обработку на стороне сервера. - person Nate; 12.06.2009

Без использования апплетов или ActiveX (только в Windows) вы ничего не можете выполнить на клиентском компьютере.

person Keeper    schedule 11.06.2009
comment
Это неправильно. Например, JavaScript выполняется на стороне клиента, но по очень веским причинам ему не хватает прав доступа и изменения локальных файлов. - person Dirk Vollmar; 12.06.2009
comment
Я имел в виду вопрос об изменении размера изображений, очевидно. - person Keeper; 12.06.2009

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

person karim79    schedule 11.06.2009

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

person Justin Balvanz    schedule 11.06.2009