У меня есть следующий код, который позволяет пользователю сфотографировать и затем загрузить его на сервер (который в конечном итоге будет выполнять дальнейшую обработку изображения).
<form action="/submitphoto" method="post">
<input type="file" capture="camera" accept="image/*" id="cameraInput" name="photo" onchange="this.form.submit()" />
</form>
Это работает. Но очень часто (особенно в настоящее время с телефонными камерами с высоким мегапикселем):
файл изображения будет очень большим (таким образом, долгое время загрузки!) И слишком высоким излишним разрешением для моего приложения, например, 4000x6000 пикселей
изображение будет цветным, тогда как мне нужна только оттенки серого
Конечно, я мог бы сделать уменьшение размера JPG (например, 4000x6000 пикселей до 800x1200 пикселей) + color => обработка в оттенках серого на сервере, но тогда слишком большое время загрузки / время обработки сервера / пропускная способность будут потрачены впустую .
Вопрос: как уменьшить разрешение изображения JPG, сделанного с помощью <input type="file" capture="camera" ...>
, и преобразовать его в оттенки серого до отправки form
в Javascript?