2016-03-16 4 views
2

У меня есть сайт, который построен в .net с базой данных SqlServer. Мы являемся рынком, где пользователи загружают изображения и описания продуктов. Некоторые пользователи испытывают проблемы с загрузкой изображений. Когда мы попросим их загрузить только одну маленькую фотографию, она будет работать. Если бы мы могли уменьшить размер файла до его отправки на сервер, я думаю, что это очень поможет. Я хотел бы иметь возможность держать изображение большим и просто сжимать его, когда он отправляется. Может ли кто-нибудь указать мне в правильном направлении?Как я могу сжать фотографии для загрузки сайта?

ответ

1

Есть несколько способов, чтобы добиться того, что вы хотите с JavaScript

  • пользователь обрезает изображение в UI (using a plugin)
  • Вы размер выбранного файла с JavaScript для предопределенного измерения рисование изображения на холсте (read this article, многое объясняет об этом)
  • Обработать изображение на холсте, а затем просто уменьшить качество изображения (второй параметр метода toDataURL на холсте, подробнее о toDataURL)

Вам необходимо манипулировать во всех предыдущих вариантах изображения в формате base64. Чтобы сохранить их на своем сервере, выполните отправку сообщения в форме с полем, содержащим строку base64, а затем обработайте его на своем сервере.

+0

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

0

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

Я не думаю, что есть какой-либо способ, с помощью которого javascript может сжимать необработанные изображения перед передачей. Но вы можете использовать <canvas> для перетаскивания, а затем масштабировать и сохранять изображение в jpeg перед отправкой на сервер.

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