2016-10-22 25 views
1
fil="IMG1.JPG" 
    im = Image.open(fil) 
    pixels=list(im.getdata()) 
    hex_list=[] 
    for px in pixels: 
    he='%02x%02x%02x' % px 
    hex_list.append(he) 

該代碼可以工作,但是當圖像太大時太慢,不可能更快?有可能getdata()直接在十六進制?python Pil getdata()如何十六進制速度快?

謝謝你的興趣?幹得好。

+1

爲什麼你需要十六進制字符串?也許有更好的方法來處理這些數據。 – furas

回答

0

到RAW圖像轉換爲十六進制字符串,該bytes使用tobytes(),然後轉換與binascii模塊爲十六進制得到。

import binascii 

im_bytes = im.tobytes() 
im_hex = binascii.hexlify(im_bytes) 

向它的十六進制字符串轉換爲壓縮格式(JPG,PNG):

import binascii 
import io 

im_bytes = io.BytesIO() 
im.save(im_bytes, format='JPEG') 
im_hex = binascii.hexlify(im_bytes.getvalue()) 
+0

感謝您的幫助,但不能以其他名稱保存。 –