3

パイソン初心者の質問です。以下のコードは私の問題を説明するはずです:

import Image

resolution = (200,500)
scaler = "Image.ANTIALIAS"

im = Image.open("/home/user/Photos/DSC00320.JPG")

im.resize(resolution , scaler)

結果:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/dist-packages/PIL/Image.py", line 1255, in resize
    raise ValueError("unknown resampling filter")
ValueError: unknown resampling filter

これは機能します:

im.resize(resolution , Image.ANTIALIAS)
4

4 に答える 4

8

Image.ANTIALIAS は文字列ではないため、文字列として扱わないでください。

scaler = Image.ANTIALIAS
于 2009-09-02T11:13:50.627 に答える
4

@ThibThibが言ったように、「Image.ANTIALIAS」の使用はImage.ANTIALIASと同じではありません。ただし、常にリサンプル値を文字列として取得することを期待している場合は、次のようにすることができます。

scaler = 'ANTIALIAS'
resample = {
    'ANTIALIAS': Image.ANTIALIAS,
    'BILINEAR': Image.BILINEAR,
    'BICUBIC': Image.BICUBIC
}

im.resize(resolution , resample[scaler])
于 2009-09-02T11:14:34.900 に答える
3

おっしゃるとおりim.resize(resolution , Image.ANTIALIAS)、解決策は

とは違うので注意が必要ですim.resize(resolution , "Image.ANTIALIAS")

あなたの例では、変数はvalue とは異なる値としてscaler文字列を持っています。"Image.ANTIALIAS"Image.ANTIALIAS

xxxx を表す文字列は、値xxxxとは異なります。これは、文字列が整数と完全に異なるのとまったく同じです。"12"12

于 2009-09-02T11:10:16.470 に答える