Hướng dẫn how can i convert an image into base64 string using python? - Làm cách nào để chuyển đổi một hình ảnh thành chuỗi base64 bằng python?

Tôi muốn mã hóa một hình ảnh thành một chuỗi bằng mô -đun Base64. Tôi đã gặp phải một vấn đề mặc dù. 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 được mã hóa. Tôi muốn tệp hình ảnh thực tế được mã hóa.

CHỈNH SỬA

Tôi đã thử đoạn trích này:

with open("C:\Python26\seriph2.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 gặp lỗi sau:

Traceback (most recent call last):
  File "", line 245, in run_nodebug
  File "C:\Python26\GUI1.2.9.py", line 473, in 
    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?

Hướng dẫn how can i convert an image into base64 string using python? - Làm cách nào để chuyển đổi một hình ảnh thành chuỗi base64 bằng python?

Hỏi ngày 15 tháng 9 năm 2010 lúc 7:24Sep 15, 2010 at 7:24

hình chữ nhậtrectangletangle

48.1K91 Huy hiệu vàng198 Huy hiệu bạc273 Huy hiệu Đồng91 gold badges198 silver badges273 bronze badges

Tôi không chắc tôi hiểu câu hỏi của bạn. Tôi cho rằng bạn đang làm một cái gì đó dọc theo dòng của:

import base64

with open("yourfile.ext", "rb") as image_file:
    encoded_string = base64.b64encode(image_file.read())

Tất nhiên, bạn phải mở tệp trước và đọc nội dung của nó - bạn không thể chỉ cần chuyển đường dẫn đến chức năng mã hóa.

Chỉnh sửa: OK, đây là bản cập nhật sau khi bạn đã chỉnh sửa câu hỏi ban đầu của mình. Ok, here is an update after you have edited your original question.

Trước hết, hãy nhớ sử dụng các chuỗi RAW (tiền tố chuỗi với 'r') khi sử dụng các trình phân cách đường dẫn trên Windows, để tránh vô tình nhấn một ký tự thoát. Thứ hai, hình ảnh của pil.

Điều đó đang được nói, bạn có thể sử dụng CStringio để tạo một đối tượng như vậy từ bộ đệm bộ nhớ:

import cStringIO
import PIL.Image

# assume data contains your decoded image
file_like = cStringIO.StringIO(data)

img = PIL.Image.open(file_like)
img.show()

Đã trả lời ngày 15 tháng 9 năm 2010 lúc 7:31Sep 15, 2010 at 7:31

4

Câu trả lời đầu tiên sẽ in một chuỗi với tiền tố B '. Điều đó có nghĩa là chuỗi của bạn sẽ giống như b'Your_String 'để giải quyết vấn đề này, vui lòng thêm dòng mã sau.

encoded_string= base64.b64encode(img_file.read())
print(encoded_string.decode('utf-8'))

Tôi đã trải nghiệm điều này trong khi chuyển đổi hình ảnh thành chuỗi Base64. Bạn có thể xem cách tôi loại bỏ nó từ đó. Liên kết ở đây hình ảnh đến chuỗi base64 và sửa 'B từ tiền tố

Đã trả lời ngày 26 tháng 4 năm 2019 lúc 21:20Apr 26, 2019 at 21:20

Hướng dẫn how can i convert an image into base64 string using python? - Làm cách nào để chuyển đổi một hình ảnh thành chuỗi base64 bằng python?

CodespeedyCodespeedyCodeSpeedy

6506 huy hiệu bạc11 huy hiệu đồng6 silver badges11 bronze badges

4

import base64
from PIL import Image
from io import BytesIO

with open("image.jpg", "rb") as image_file:
    data = base64.b64encode(image_file.read())

im = Image.open(BytesIO(base64.b64decode(data)))
im.save('image1.png', 'PNG')

Đã trả lời ngày 19 tháng 9 năm 2019 lúc 6:55Sep 19, 2019 at 6:55

Hướng dẫn how can i convert an image into base64 string using python? - Làm cách nào để chuyển đổi một hình ảnh thành chuỗi base64 bằng python?

Abhijith Mabhijith mAbhijith M

5874 Huy hiệu bạc5 Huy hiệu Đồng4 silver badges5 bronze badges

1

Mượn từ những gì IVO van der Wijk và Gnibbler đã phát triển trước đó, đây là một giải pháp năng động

import cStringIO
import PIL.Image

image_data = None

def imagetopy(image, output_file):
    with open(image, 'rb') as fin:
        image_data = fin.read()

    with open(output_file, 'w') as fout:
        fout.write('image_data = '+ repr(image_data))

def pytoimage(pyfile):
    pymodule = __import__(pyfile)
    img = PIL.Image.open(cStringIO.StringIO(pymodule.image_data))
    img.show()

if __name__ == '__main__':
    imagetopy('spot.png', 'wishes.py')
    pytoimage('wishes')

Sau đó, bạn có thể quyết định biên dịch tệp hình ảnh đầu ra với Cython để làm cho nó mát mẻ. Với phương pháp này, bạn có thể gói tất cả đồ họa của mình thành một mô -đun.

Đã trả lời ngày 3 tháng 10 năm 2013 lúc 15:22Oct 3, 2013 at 15:22

Hướng dẫn how can i convert an image into base64 string using python? - Làm cách nào để chuyển đổi một hình ảnh thành chuỗi base64 bằng python?

ichuxichuxiChux

2.18621 huy hiệu bạc35 huy hiệu đồng21 silver badges35 bronze badges

Như tôi đã nói trong câu hỏi trước đây của bạn, không cần phải mã hóa chuỗi64, nó sẽ chỉ làm cho chương trình chậm hơn. Chỉ cần sử dụng repr

>>> with open("images/image.gif", "rb") as fin:
...  image_data=fin.read()
...
>>> with open("image.py","wb") as fout:
...  fout.write("image_data="+repr(image_data))
...

Bây giờ hình ảnh được lưu trữ dưới dạng biến gọi là

Traceback (most recent call last):
  File "", line 245, in run_nodebug
  File "C:\Python26\GUI1.2.9.py", line 473, in 
    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
0 trong một tệp gọi là
Traceback (most recent call last):
  File "", line 245, in run_nodebug
  File "C:\Python26\GUI1.2.9.py", line 473, in 
    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
1 Bắt đầu một trình thông dịch mới và nhập Image_Data

>>> from image import image_data
>>>

Đã trả lời ngày 15 tháng 9 năm 2010 lúc 7:36Sep 15, 2010 at 7:36

Hướng dẫn how can i convert an image into base64 string using python? - Làm cách nào để chuyển đổi một hình ảnh thành chuỗi base64 bằng python?

John La Rooyjohn La RooyJohn La Rooy

286K51 Huy hiệu vàng359 Huy hiệu bạc499 Huy hiệu đồng51 gold badges359 silver badges499 bronze badges

3

Công việc của nó cho tôi

import base64
import requests

# Getting image in bytes
response = requests.get("image_url") 

# image encoding
encoded_image = base64.b64encode(response.content)

# image decoding and without it's won't work due to some '\xff' error
decoded_image= base64.b64decode(encoded_image)

Đã trả lời ngày 7 tháng 4 năm 2021 lúc 10:54Apr 7, 2021 at 10:54

Hướng dẫn how can i convert an image into base64 string using python? - Làm cách nào để chuyển đổi một hình ảnh thành chuỗi base64 bằng python?

Làm cách nào để chuyển đổi hình ảnh thành Base64 trong Python?

Để chuyển đổi hình ảnh thành chuỗi Base64 trong Python, hãy sử dụng mô -đun Python Base64 cung cấp phương thức B64encode (). Python cơ sở64. Hàm b64encode () mã hóa một chuỗi bằng base64 và trả về chuỗi đó.use the Python base64 module that provides b64encode() method. Python base64. b64encode() function encodes a string using Base64 and returns that string.

Làm cách nào để chuyển đổi hình ảnh thành base64?

Để giải mã một hình ảnh từ chuỗi được mã hóa base64, hãy thực hiện các bước sau ...
Mở Base64 để chuyển đổi hình ảnh ..
Nhập chuỗi mã hóa Base64 ..
Chọn loại hình ảnh.....
Sau khi chọn loại hình ảnh, nhấp vào nút "Tạo hình ảnh" ..
Công cụ giải mã chuỗi được mã hóa base64 và hiển thị hình ảnh ..

Chúng ta có thể chuyển đổi hình ảnh thành base64 không?

Công cụ mã hóa hình ảnh hỗ trợ tải tệp hình ảnh để chuyển đổi thành Base64.Nhấp vào nút Tải lên hình ảnh và chọn Tệp.Hình ảnh đến Base64 trực tuyến hoạt động tốt trên Windows, Mac, Linux, Chrome, Firefox, Edge và Safari.. Click on the Upload Image button and select File. Image to Base64 Online works well on Windows, MAC, Linux, Chrome, Firefox, Edge, and Safari.

Làm thế nào để bạn cơ sở64 một chuỗi trong python?

Để chuyển đổi một chuỗi thành một ký tự base64, các bước sau nên được tuân theo: lấy giá trị ASCII của mỗi ký tự trong chuỗi.Tính toán nhị phân 8 bit tương đương với các giá trị ASCII.Chuyển đổi các ký tự 8 bit thành phần 6 bit bằng cách nhóm lại các chữ số.Get the ASCII value of each character in the string. Compute the 8-bit binary equivalent of the ASCII values. Convert the 8-bit characters chunk into chunks of 6 bits by re-grouping the digits.