更改大小和宽高比而不会失真

时间:2019-02-09 20:05:46

标签: r image-processing rmagick

我正在寻找一种R的方法,可以从具有不同大小和长宽比的较大图像中制作出400x400px图像(.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 :(得分:1)

您可以在调整大小的行b<-image_resize(a, "300x300!")的正前方添加这些行以裁剪a,使其为正方形。

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