Да, можно изменить размер изображения в javascript, используя HTML5 canvas
API.Вам, однако, потребуется сохранить его где-нибудь после изменения размера.
- Первый API, который вам нужно будет проверить, это
drawImage
. - Второйодин из них -
toDataURL
.
В зависимости от того, что вы хотите сделать, вы можете:
- Заставить пользователя сохранить уменьшенное изображение, используяэтот клиентский скрипт .
- Сохраните его самостоятельно, используя язык на стороне сервера, чтобы преобразовать
Base64 Encoded Image
в фактический файл изображения и сохранить его на своем сервере.Проверьте Пример 1 .
Пример 1: Решение на основе PHP5:
<?php
define('UPLOAD_DIR', 'images/');
$img = $_POST['img'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = UPLOAD_DIR . uniqid() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';
?>
ОБНОВЛЕНИЕ № 2:
Как указано в комментариях ниже, для этого метода требуется современный браузер , который поддерживает файловые API .Вместо этого используйте метод flash для поддержки как современных, так и не HTML5-браузеров.