我一直在寻找大约一个小时来尝试找到一种方法来做到这一点。
Automator 中是否有任何方法可以将图像调整为指定的宽度和高度,而不仅仅是最长的尺寸?我需要我的输出图像具有特定的像素宽度和高度,即使它不成比例。
我有 Photoshop,那么有没有办法让 Automator 做到这一点?
谢谢
使用标准 Automator 步骤无法满足您的需求。
无论如何,你可以使用这个Python 脚本:
import sys
import CoreGraphics
RESIZE_WIDTH = 100
RESIZE_HEIGHT = 100
def resizeimage(source_image_file, target_image_file, target_width, target_height):
source_image = CoreGraphics.CGImageImport(CoreGraphics.CGDataProviderCreateWithFilename(source_image_file))
source_width = source_image.getWidth()
source_height = source_image.getHeight()
source_image_rect = CoreGraphics.CGRectMake(0, 0, source_width, source_height)
new_image = source_image.createWithImageInRect(source_image_rect)
colors_space = CoreGraphics.CGColorSpaceCreateDeviceRGB()
colors = CoreGraphics.CGFloatArray(5)
context = CoreGraphics.CGBitmapContextCreateWithColor(target_width, target_height, colors_space, colors)
context.setInterpolationQuality(CoreGraphics.kCGInterpolationHigh)
new_image_rect = CoreGraphics.CGRectMake(0, 0, target_width, target_height)
context.drawImage(new_image_rect, new_image)
context.writeToFile(target_image_file, CoreGraphics.kCGImageFormatJPEG)
def main(argv):
for image_file_name in argv:
resizeimage(image_file_name, image_file_name, RESIZE_WIDTH, RESIZE_HEIGHT)
if __name__ == "__main__":
main(sys.argv[1:])
设置RESIZE_WIDTH
并设置RESIZE_HEIGHT
为您需要的任何值。
将其添加为一个Run Shell Script
步骤:
并设置Shell
为/use/bin/python
和Pass input
。as arguments
编辑:有一种更简单的方法(由epatel建议)来实现这一点,使用sips
.
Run Shell Script
您可以使用以下命令创建一个步骤:
sips --resampleHeightWidth 100 100 "$@"
注意:双引号需要将 $@ 括起来,否则会出错。
当然,使用“裁剪图像”操作并根据需要设置“裁剪前缩放”、“宽度”和“高度”选项。您可能还会发现“Pad Images”操作很有帮助。