попълнете допълнителна област с персонализиран цвят, докато изрязвате с Cropper.js

Използвам библиотека Cropper.js, за да получа координати на изрязване и ширина и височина на изображение от страна на клиента и намеса в laravel 4, за да го съчетая в сървърната страна с данните на corp.

JavaScript функция:

$('#image').cropper({
            aspectRatio: 16 / 9,
            crop: function (e) {
                // To send cop data to server
                x = e.x;
                y = e.y;
                width = e.width;
                height = e.height;
                rotate = e.rotate;
                scaleX = e.scaleX;
                scaleY = e.scaleY;
                $('#x').val(x);
                $('#y').val(y);
                $('#width').val(width);
                $('#height').val(height);
                $('#rotate').val(rotate);
                $('#scaleX').val(scaleX);
                $('#scaleY').val(scaleY);
            }
        });

PHP/Laravel функция:

$img->crop($width, $height, $x, $y);

Когато изрязаната област е извън изображението, тази допълнителна област се запълва автоматично с черен цвят. Вместо това искам да се запълни с бял цвят.

Изрязване на изображение с област извън изображението

Това генерира това изображение

Изображението, генерирано от горното изрязване

Искам да сменя черния цвят на бял.


person Bob.B    schedule 05.05.2016    source източник


Отговори (1)


Ще ви е необходима комбинация от команди при намеса:

  1. Създайте платно с правилния размер
  2. Запълнете го с цвят с fill()
  3. използвайте insert(), за да поставите вашето изображение

Значи бихте искали нещо подобно (не е тествано)

$destination = Image::canvas($width, $height);
$destination->fill('#ffffff');
$destination->insert($img, $x, $y);
person Neil Cross    schedule 05.05.2016