1

Scrapyフレームワークには、サムネイルを生成する機能が組み込まれています。IMAGES_THUMBS元の画像の比率を維持するために、片側だけに希望のサイズを設定する方法はありますか?

4

1 に答える 1

1

PILモジュールのImage.pyを確認しましたが、実際には比率が自動的に保持されます。ただし、特定の幅または特定の高さのサムネイルを生成できないという問題があります。PILは、元の画像に応じて幅または高さのいずれかを取得し、それを変更する方法はありません。計算を行うコードは次のとおりです。

    # preserve aspect ratio
    x, y = self.size
    if x > size[0]: y = max(y * size[0] / x, 1); x = size[0]
    if y > size[1]: x = max(x * size[1] / y, 1); y = size[1]
    size = x, y

そのためのハッキーな方法は、気にしない側に非常に大きな値を設定することです。そうすれば、反対側が常にサムネイルの生成に使用されます。だからこれは私のためのトリックを行います:

 IMAGES_THUMBS = {
    'thumbs': (80, 100000),
 }

間違いなく最善の方法ではなく、PILの将来のバージョンでは機能しなくなる可能性がありますが、今のところは十分です。同じことを達成するためのより良い方法にまだ興味があります。

于 2012-06-20T13:55:04.120 に答える