Изменить размер и соотношение сторон без искажений - PullRequest
0 голосов
/ 09 февраля 2019

Я ищу способ в R сделать изображения размером 400x400 пикселей (.jpg / .png) из больших изображений другого размера и размера, не искажая их.Новое изображение должно иметь большую часть содержимого исходного, но его можно обрезать немного слева и справа, чтобы оно стало квадратом без искажений.

Как далеко я добрался (с искажением):

library(magick)

pics <- list.files("./")

for(i in 1:length(pics)){

  a <- image_read((paste0("./", pics[i], sep="")))

  b<-image_resize(a, "300x300!")

  image_write(b, path = paste0("./", pics[i], sep=""), format = "jpg")
}  

Заранее спасибо!

Доминик.

1 Ответ

0 голосов
/ 10 февраля 2019

Вы можете добавить эти строки прямо перед линией изменения размера b<-image_resize(a, "300x300!"), чтобы обрезать a, чтобы она была квадратной.

newdim <- min(image_info(a)[c('width', 'height')])
a <- image_crop(a, geometry = geometry_area(newdim, newdim))
...