改变大小和纵横比而不失真

Change size and aspect ratio without distortion

我正在寻找一种在 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")
}  

提前致谢!

多米尼克

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

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