1

入力画像を固定サイズにリサイズしたい。次に、サイズ変更された画像ファイルの内容全体をバッファーに入れ、他のバッファー(データ)に追加して使用したいと考えています。

現在、次のpython関数を使用して実行していますが、

def get_resize_img(img_file):
    img = Image.open(img_file)
    img = img.resize((640,960), Image.NEAREST)
    img.save("tmp_out.jpg")
    fp = open("tmp_out.jpg", "rb")
    data = fp.read()
    fp.close()
    print "img sz:", len(data)
    return data

ダミーファイル (tmp_out.jpg) に書き込んで読み戻さずにこれを達成するためのより良い方法はありますか?

-モハン

4

3 に答える 3

0
Import StringIO

def get_resize_img(img_file):
    buffer = StringIO.StringIO()
    img = Image.open(img_file)
    img = img.resize((640,960), Image.NEAREST)
    format = "YOUR_FORMAT" // JPG,PNG,etc.
    img.save(buffer,format)
    return buffer.getvalue()
于 2012-07-25T05:11:44.087 に答える
0

getdataを使用して、実際には画像バッファーである画像データを取得できると思います。次に、 を使用してイメージを再構築できますfrombuffer。または、サイズ変更された Image オブジェクトを返して、後で使用することもできます。

ドキュメントはこちらで確認できます。

于 2012-07-25T05:13:58.897 に答える
0

numpyを使用している場合は、次のことができます

data = numpy.asarray(im)
于 2012-07-25T05:17:46.103 に答える