Ответ 1
Используйте bytearray
:
with open("img.png", "rb") as imageFile:
f = imageFile.read()
b = bytearray(f)
print b[0]
Вы также можете посмотреть struct, который может делать многие преобразования такого рода.
Я пишу Python script, где хочу делать массовую загрузку фотографий. Я хочу прочитать изображение и преобразовать его в массив байтов. Любые предложения были бы с благодарностью.
#!/usr/bin/python
import xmlrpclib
import SOAPpy, getpass, datetime
import urllib, cStringIO
from PIL import Image
from urllib import urlopen
import os
import io
from array import array
""" create a proxy object with methods that can be used to invoke
corresponding RPC calls on the remote server """
soapy = SOAPpy.WSDL.Proxy('localhost:8090/rpc/soap-axis/confluenceservice-v2?wsdl')
auth = soapy.login('admin', '[email protected]')
Используйте bytearray
:
with open("img.png", "rb") as imageFile:
f = imageFile.read()
b = bytearray(f)
print b[0]
Вы также можете посмотреть struct, который может делать многие преобразования такого рода.
Я не знаю о преобразовании в массив байтов, но легко преобразовать его в строку:
import base64
with open("t.png", "rb") as imageFile:
str = base64.b64encode(imageFile.read())
print str
with BytesIO() as output:
from PIL import Image
with Image.open(filename) as img:
img.convert('RGB').save(output, 'BMP')
data = output.getvalue()[14:]
Я просто использую это для добавления изображения в буфер обмена в окнах.