Saya ingin menyandikan gambar menjadi string menggunakan modul base64. Saya pernah mengalami masalah. Bagaimana cara menentukan gambar yang ingin saya disandikan? Saya mencoba menggunakan direktori ke gambar, tetapi itu hanya mengarah ke direktori yang dikodekan. Saya ingin file gambar aktual dikodekan.
EDIT
Saya mencoba cuplikan ini:
with open("C:\Python26\seriph1.BMP", "rb") as f:
data12 = f.read()
UU = data12.encode("base64")
UUU = base64.b64decode(UU)
print UUU
self.image = ImageTk.PhotoImage(Image.open(UUU))
tapi saya mendapatkan kesalahan berikut:
Traceback (most recent call last):
File "<string>", line 245, in run_nodebug
File "C:\Python26\GUI1.2.9.py", line 473, in <module>
app = simpleapp_tk(None)
File "C:\Python26\GUI1.2.9.py", line 14, in __init__
self.initialize()
File "C:\Python26\GUI1.2.9.py", line 431, in initialize
self.image = ImageTk.PhotoImage(Image.open(UUU))
File "C:\Python26\lib\site-packages\PIL\Image.py", line 1952, in open
fp = __builtin__.open(fp, "rb")
TypeError: file() argument 1 must be encoded string without NULL bytes, not str
Apa yang saya lakukan salah?
base64.b64encode(fh.read()).decode()
untuk mendapatkan string yang akan digunakan dalam file html.Dengan python 2.x, Anda dapat menyandikan dengan sepele menggunakan .encode:
sumber
Jawaban pertama akan mencetak string dengan awalan b '. Itu artinya string Anda akan seperti ini b'your_string 'Untuk mengatasi masalah ini, tambahkan baris kode berikut.
sumber
:-)
)Seperti yang saya katakan di pertanyaan Anda sebelumnya, base64 tidak perlu menyandikan string, itu hanya akan membuat program lebih lambat. Cukup gunakan repr
Sekarang gambar disimpan sebagai variabel yang disebut
image_data
dalam file yang disebutimage.py
Mulai penerjemah baru dan impor image_datasumber
Meminjam dari apa yang telah dikembangkan Ivo van der Wijk dan gnibbler sebelumnya, ini adalah solusi yang dinamis
Anda kemudian dapat memutuskan untuk mengkompilasi file gambar output dengan Cython untuk membuatnya keren. Dengan metode ini, Anda dapat menggabungkan semua gambar Anda menjadi satu modul.
sumber
sumber