Изменение размера картинки пользователем javascript

256
21 июля 2017, 05:15

Есть блок, в котором содержится картинка:

<div class="image-block">
     <img src="https://hsto.org/getpro/habr/post_images/dde/292/490/dde292490b55a8c0824ecc6cc038f999.png" alt="картинка">         
 </div>

При загрузке картинки, она будет проходить проверку на соответствие размеру 1490х400px. Если размер больше, то картинка загружается. Затем мне нужно дать пользователю возможность обрезать эту картинку под размер, указанный выше, если данная картинка больше, чем 1490х400px. Каким образом это можно сделать?

Answer 1

Подробно расписывать не буду, но вкратце схема такая:

HTML:

<div class="image-block" data-image="https://hsto.org/getpro/habr/post_images/dde/292/490/dde292490b55a8c0824ecc6cc038f999.png">
</div>

Javascript:

$(document).ready(function() {
    $('.image-block').each(function(i, el) {
        var imageBlock = $(this);
        var imageUrl = imageBlock.data('image');
        var image = new Image();
        image.src = imageUrl;
        image.onload = function() {                
            if (image.width > 1490 && image.height > 400) {     
                var resize = false;
                // взаимодествие с пользователем по необходимости ресайза
                // если он хочет отбрезать, то resize=true
                // если нужны дополнительные параметры для ресайза, получаем их здесь 
                if (resize) {
                    $.ajax({
                        url: 'resizer.php',
                        // остальные параметры, необходимые для ресайза
                        success: function(data) {
                            imageBlock.html('<img src="' + data.resizedUrl + '" />');
                        }
                    });
                } else {
                    imageBlock.html('<img src="' + imageUrl + '" />');
                }                    
            } else {
                // размеры изображения меньше требуемых
            }
        };            
    });        
});

PHP (файл resizer.php)

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

echo json_encode(['resizedUrl' => 'url обрезанного изображения']);
READ ALSO
Мемоизация рекурсивных выражений

Мемоизация рекурсивных выражений

В книге Девида Фленегана в главе 88

313
Как открыть DatePicker по клику на свой элемент?

Как открыть DatePicker по клику на свой элемент?

В данной библиотеке дейтпикер открывается по клику на инпутОднако хотелось бы привязать его к обычной кнопке

296
bootstrap select получить элемент

bootstrap select получить элемент

Есть библиотека Bootstrap selectнужно получить событие unselect - т е при снятии выделения нужно узнать на какой элемент был клик не получиться отловить...

282
NightmareJS cookies

NightmareJS cookies

В javascript не силен, был парсер на curl phpНо больше он уже для Яндекс Маркета не подходит

245