Как я могу обрезать изображение в p5.js без рисования изображения на экране - PullRequest
0 голосов
/ 11 ноября 2018

Я исследовал и обнаружил, что вы можете «обрезать» изображение с помощью get () , но изображение должно быть нарисовано на экране, где вы затем берете часть холста. Можно ли загрузить изображение и сохранить его обрезанную версию в переменной? Так что может быть что-то вроде этого:

var img;
var cropped;

function preload(){
  img = imageLoad('dog.png', crop)
}

function crop(image){
  cropped = crop(img, 0, 0, img.w/2, img.h) // Getting left half of image 
}

Спасибо.


EDIT: Это функция, которую я сделал с помощью copy (), но я не знаю, есть ли более простой способ, который мне не хватает.

function crop(image, x, y, w, h) {
  var cropped = createImage(w, h);
  cropped.copy(image, x, y, x + w, y + h, 0, 0, x + w, y + h)
  return cropped;
}

1 Ответ

0 голосов
/ 11 ноября 2018

Вы можете получить доступ к пикселям изображения напрямую. Вам не нужно сначала рисовать его на холсте.

Начните с чтения справки P5.Image .

На высоком уровне вам нужно создать новую графику (функция createGraphics() - ваш друг, а затем нарисовать ту часть изображения, которую вы хотите, для этой графики. Независимо от того, рисуете ли вы изображение или графику на холсте зависит от вас.

...