1

私はpyexiv2ライブラリを使用して画像のexif情報を読み取ります。画像が完全でない場合、ImageMetadata.from_buffer()メソッドがメモリリークを引き起こすことがわかりました。しかし、ImageMetadata() メソッドは問題ありません。

以下のコードは私のテストコードです。画像ではないファイルから読み取らせると、メモリが解放されていないことがわかります。

import pyexiv2
import time
import sys
import os

def read_metadata(file_data):

    try:

        metadata = pyexiv2.ImageMetadata(file_data)

        metadata = pyexiv2.ImageMetadata.from_buffer(file_data)

        metadata.read()

    except Exception,e:
        print e

filename = sys.argv[1]

print filename

write_metadata(open(filename).read())

time.sleep(10000)
4

0 に答える 0