5

私はこれを行う方法を見つけるために今約1時間を探しています。

Automatorで、画像を最長サイズではなく、指定された幅と高さにサイズ変更する方法はありますか?出力画像は、不均衡であっても、特定のピクセル幅と高さである必要があります。

私はフォトショップを持っていますが、Automatorにこれを行わせる方法はありますか?

ありがとう

4

2 に答える 2

16

標準の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/pythonPass inputas arguments

編集:を使用してこれを達成するためのかなり簡単な方法があります(epatelsipsによって提案されています) 。

Run Shell Script次のコマンドでステップを作成できます。

sips --resampleHeightWidth 100 100 "$@"

注:二重引用符は$ @を囲む必要があります。そうしないと、エラーが発生します。

ここに画像の説明を入力してください

于 2013-02-08T08:14:49.190 に答える
3

確かに、[画像を切り抜く]アクションを使用し、必要に応じて[切り抜き前に拡大縮小]、[幅]、[高さ]オプションを設定します。「パッド画像」アクションも役立つ場合があります。

于 2014-11-06T11:37:34.667 に答える