Tôi muốn mã hóa hình ảnh thành chuỗi bằng mô-đun base64. Tôi đã gặp phải một vấn đề. Làm cách nào để chỉ định hình ảnh tôi muốn được mã hóa? Tôi đã thử sử dụng thư mục cho hình ảnh, nhưng điều đó chỉ đơn giản là dẫn đến thư mục đang được mã hóa. Tôi muốn tập tin hình ảnh thực tế được mã hóa.Mã hóa tệp hình ảnh với base64
EDIT
Tôi mệt mỏi đoạn này:
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))
nhưng tôi nhận được lỗi sau:
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
Tôi đang làm gì sai?
Cần trợ giúp thêm một chút, hãy xem chỉnh sửa. – rectangletangle
Cảm ơn, một vấn đề nữa khi tôi in hình ảnh đã giải mã, tôi nhận được chuỗi 'ÿØÿà'. Tuy nhiên, khi tôi chạy điều này một mình như là một thay thế cho dữ liệu tôi nhận được một lỗi. Chuỗi được mã hóa dài hơn nhiều để so sánh. Vì vậy, tôi nghĩ rằng có khả năng lưu trữ dữ liệu hình ảnh. chuỗi giải mã có đơn giản tham chiếu chuỗi được mã hóa hay gì đó không? Dường như quá ngắn để lưu trữ dữ liệu. – rectangletangle
Đầu ra được in không nhất thiết phải bằng với nội dung thực tế - nó phụ thuộc vào cách thức và nơi bạn in. –