bytearrayをImage.open
とImage.verify()
で確認するには、まずディスクに書き込んでからim = Image.open()
で開きます。私は.readfrombuffer()
と.readfromstring()
メソッドを見ましたが、イメージのサイズが必要です(私はバイトストリームをイメージに変換するときにしか得られません)。誰かが私が間違っているのかを知っている場合はPIL:BytearrayをImageに変換する
bytes = readimage(path+extension)
im = Image.open(StringIO(bytes))
im.save(savepath)
か:私は画像のByteArrayに変換しようとする基本的なテストとして次に
def readimage(path):
bytes = bytearray()
count = os.stat(path).st_size/2
with open(path, "rb") as f:
print "file opened"
bytes = array('h')
bytes.fromfile(f, count)
return bytes
:
マイ読み取り機能は、次のようになりますそれらのバイトを実際に私を助けるイメージに変換するよりエレガントな方法があれば。
P .:私がバイト上の操作(画像に不具合があるため)を行うので、私はバイトアレーが必要だと思った。これはうまくいきましたが、ディスクに書き込むことなく、ディスクから画像ファイルを再度開いて、ファイルが壊れていないかどうかをチェックすることなく、やりたいと思っていました。
編集:それは私を与えるすべては、あなたがbytearrays
で操作する場合は、あなたがio.BytesIO
を使用する必要がIOError: cannot identify image file
なぜnumpy配列に画像を読み込まないのですか? –
@ViktorKerkez画像のバイトを操作したいからです。私は操作部分の作業コードを持っていますが、出力画像が実際に完全に壊れていないことを確認したいと思います。だから、私はbytearraysで働く必要があります – ato