0

サムネイルの大きなディレクトリを変換したいと思っています。

PythonMagickラッパーを使用する代わりに、変換バイナリに直接アクセスしたいと思います(フラグがたくさんあるので、大量の写真の場合はこれがより効率的だと思います)。

ImageMagickをサブプロセスとして使用する実際の例はありますか?または、これを行うためのより良い方法はありますか?

具体的には、クラス内からPythonサブプロセスを開始および終了する方法がわかりません。私のクラスはThumbnailGeneratorと呼ばれています。私はこのようなものを作りたいと思っています:

>> t = ThumbnailGenerator()
>> t.makeThumbSmall('/path/to/image.jpg')  
>> True
4

1 に答える 1

2

これが私が1つのプロジェクトで使用したものです:

def resize_image(input, output, size, quality=None, crop=False, force=False):
    if (not force and os.path.exists(output) and
        os.path.getmtime(output) > os.path.getmtime(input)):
        return
    params = []
    if crop:
        params += ["-resize", size + "^"]
        params += ["-gravity", "Center", "-crop", size + "+0+0"]
    else:
        params += ["-resize", size]
    params += ["-unsharp", "0x0.4+0.6+0.008"]
    if quality is not None:
        params += ["-quality", str(quality)]
    subprocess.check_call(["convert", input] + params + [output])

これにより、変換ごとに1つのプロセスが開始されます。ソースイメージが2つ小さくない場合、プロセスの起動オーバーヘッドは比較的小さくなります。

于 2012-08-30T20:00:12.173 に答える