我正在寻找一种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")
}
谢谢!
多米尼克。
答案 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))