You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量将图片调整为23.6cm宽并保持原宽高比?

按厘米单位批量调整图片宽度并保持宽高比

magick包支持直接用物理单位(比如厘米)调整图片尺寸,不用手动换算像素,只要把dpi参数设置对就行,给你修正后的代码:

library(magick)

# 获取输入文件夹里的所有图片(过滤格式,避免处理非图片文件)
original_images <- list.files('Data/input/Images', pattern = "\\.(jpg|jpeg|png|bmp)$", full.names = TRUE)

for(image_path in original_images){
  image_name <- basename(image_path)
  print(image_name)
  
  # 读取图片时指定dpi,保证物理尺寸计算准确
  og_image <- image_read(image_path, density = 300)
  
  # 直接指定宽度为23.6cm,自动按原比例调整高度
  resized_image <- image_resize(og_image, "23.6cm")
  
  # 保存时同样指定dpi,确保输出的物理尺寸符合要求
  output_path <- paste0('Data/output/Images/', image_name)
  image_write(resized_image, path = output_path, density = 300)
}

关键说明:

  • 直接用物理单位:image_resize支持cm、in这类单位,写"23.6cm"就固定了宽度,magick会自动根据dpi算出对应像素数,同时保留原宽高比。
  • dpi要前后一致:读取和保存时都设density = 300(你可以根据需求改成72、150等),物理尺寸的换算全靠dpi——1英寸=2.54厘米,dpi就是每英寸的像素数,固定dpi才能保证输出图片的实际宽度是23.6cm。
  • 过滤图片格式:加pattern参数只处理常见图片类型,避免误操作非图片文件;用full.names = TRUE直接获取完整路径,不用手动拼接输入路径,代码更简洁。
  • 自动保留宽高比:只指定宽度的情况下,image_resize会自动按原比例计算对应高度,无需额外设置参数。

内容的提问来源于stack exchange,提问作者z star

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 01:02:38