Tôi đang cố gắng lưu một hình ảnh với Python được mã hóa base64. Ở đây chuỗi lớn để đăng nhưng đây là hình ảnh
Và khi nhận được bởi Python, 2 ký tự cuối cùng là
imgdata = base64.b64decode[data]
filename = 'some_image.jpg' # I assume you have a way of picking unique filenames
with open[filename, 'wb'] as f:
f.write[imgdata]
2 mặc dù chuỗi không được định dạng nên tôi làm điều nàyimport base64
data = "data:image/png;base64," + photo_base64.replace[" ", "+"]
Và sau đó tôi làm điều này
imgdata = base64.b64decode[data]
filename = 'some_image.jpg' # I assume you have a way of picking unique filenames
with open[filename, 'wb'] as f:
f.write[imgdata]
Nhưng điều này gây ra lỗi này
Traceback [most recent call last]:
File "/var/www/cgi-bin/save_info.py", line 83, in <module>
imgdata = base64.b64decode[data]
File "/usr/lib64/python2.7/base64.py", line 76, in b64decode
raise TypeError[msg]
TypeError: Incorrect padding
Tôi cũng đã in ra chiều dài của chuỗi một khi
imgdata = base64.b64decode[data]
filename = 'some_image.jpg' # I assume you have a way of picking unique filenames
with open[filename, 'wb'] as f:
f.write[imgdata]
3 đã được thêm vào và imgdata = base64.b64decode[data]
filename = 'some_image.jpg' # I assume you have a way of picking unique filenames
with open[filename, 'wb'] as f:
f.write[imgdata]
4 thay thế bằng imgdata = base64.b64decode[data]
filename = 'some_image.jpg' # I assume you have a way of picking unique filenames
with open[filename, 'wb'] as f:
f.write[imgdata]
5 và nó có độ dài imgdata = base64.b64decode[data]
filename = 'some_image.jpg' # I assume you have a way of picking unique filenames
with open[filename, 'wb'] as f:
f.write[imgdata]
6, tôi đã thử một loạt các hình ảnh khác nhau nhưng tất cả chúng khi tôi cố gắng mở tệp đã lưu nói rằng tập tin bị hỏng.Điều gì đang xảy ra và tại sao tệp bị hỏng?
Cảm ơn
CHỈNH SỬA
Đây là một số cơ sở64 cũng thất bại
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADBQTFRFA6b1q Ci5/f2lt/9yu3 Y8v2cMpb1/DSJbz5i9R2NLwfLrWbw m T8I8////////SvMAbAAAABB0Uk5T////////////////////AOAjXRkAAACYSURBVHjaLI8JDgMgCAQ5BVG3//9t0XYTE2Y5BPq0IGpwtxtTP4G5IFNMnmEKuCopPKUN8VTNpEylNgmCxjZa2c1kafpHSvMkX6sWe7PTkwRX1dY7gdyMRHZdZ98CF6NZT2ecMVaL9tmzTtMYcwbP y3XeTgZkF5s1OSHwRzo1fkILgWC5R0X4BHYu7t/136wO71DbvwVYADUkQegpokSjwAAAABJRU5ErkJggg==
Đây là những gì tôi nhận được trong tập lệnh Python của mình từ yêu cầu bài đăng
Lưu ý rằng tôi đã không thay thế các khoảng trống bằng +'s
Bạn đã làm gì?
Có một cuộc gọi API, gửi hình ảnh bằng chuỗi Base64 đến gối và lưu nó.
Bạn mong đợi điều gì sẽ xảy ra?
lưu giữ thành công
Điều gì thực sự đã xảy ra?
Các hình ảnh đã lưu trống, kích thước là 2K; Nếu tôi kiểm tra với chuỗi base64 ở hàm kết thúc phía sau, hình ảnh sẽ được lưu mà không có lỗi và kích thước là 400k hoặc hơn.
if I test with the base64 string on back end function, the picture is saved without error, and size is 400k or so.
Phiên bản hệ điều hành, python và gối của bạn là gì?
- HĐH: Windows 10
- Python: Python 2.7.11
- Gối: 5.3.0
Vui lòng bao gồm mã tái tạo vấn đề và bất cứ khi nào có thể, một hình ảnh thể hiện vấn đề. Vui lòng tải hình ảnh lên GitHub, không phải vào các trang web lưu trữ tệp của bên thứ ba. Nếu cần thiết, thêm hình ảnh vào kho lưu trữ zip hoặc tar.code that reproduces the issue and whenever possible, an image that demonstrates the issue. Please upload images to GitHub, not to third-party file hosting sites. If necessary, add the image to a zip or tar archive.
Các bản sao tốt nhất là các kịch bản khép kín với các phụ thuộc tối thiểu. Nếu bạn đang sử dụng một khung như Plone, Django hoặc Buildout, hãy cố gắng tái tạo vấn đề chỉ bằng gối.
def getI420FromBase64[codec, image_path="c:\\"]: # get codec from http # codec = codec.encode[] base64_data = re.sub['^data:image/.+;base64,', '', codec] byte_data = base64.b64decode[base64_data] image_data = BytesIO[byte_data] img = Image.open[image_data] t = time.time[] img.save[image_path + str[t] + '.png', "PNG"]
codec là một cái gì đó giống như
imgdata = base64.b64decode[data]
filename = 'some_image.jpg' # I assume you have a way of picking unique filenames
with open[filename, 'wb'] as f:
f.write[imgdata]
7 Chuyển đổi Base64 thành hình ảnh Python với các ví dụ mã
Với bài viết này, chúng tôi sẽ kiểm tra một số trường hợp khác nhau về cách giải quyết vấn đề Python Base64 sang Image Python.
import base64 image = open['deer.gif', 'rb'] image_read = image.read[] image_64_encode = base64.encodestring[image_read] image_64_decode = base64.decodestring[image_64_encode] image_result = open['deer_decode.gif', 'wb'] # create a writable image and write the decoding result image_result.write[image_64_decode]
Vấn đề giống hệt nhau Chuyển đổi Base64 thành Python hình ảnh có thể được giải quyết bằng cách sử dụng một chiến lược khác, được mô tả trong phần bên dưới với các mẫu mã.
# For both Python 2.7 and Python 3.x import base64 with open["imageToSave.png", "wb"] as fh: fh.write[base64.decodebytes[img_data]]
# For both Python 2.7 and Python 3.x import base64 with open["imageToSave.png", "wb"] as fh: fh.write[base64.decodebytes[img_data]]
# For both Python 2.7 and Python 3.x import base64 with open["imageToSave.png", "wb"] as fh: fh.write[base64.decodebytes[img_data]]
# For both Python 2.7 and Python 3.x import base64 with open["imageToSave.png", "wb"] as fh: fh.write[base64.decodebytes[img_data]]
# For both Python 2.7 and Python 3.x import base64 with open["imageToSave.png", "wb"] as fh: fh.write[base64.decodebytes[img_data]]
# For both Python 2.7 and Python 3.x import base64 with open["imageToSave.png", "wb"] as fh: fh.write[base64.decodebytes[img_data]]
Nhiều ví dụ trong thế giới thực minh họa cách đối phó với vấn đề chuyển đổi cơ sở64 sang vấn đề Python hình ảnh.
Làm cách nào để có được một hình ảnh từ Base64 trong Python?
Chuyển đổi chuỗi thành hình ảnh
- Đầu tiên chúng tôi nhập base64.
- Lưu trữ dữ liệu được đọc từ tệp vào một biến.
- Sau đó, chỉ cần đặt bất kỳ tên tệp hình ảnh nào [ví dụ: MyImage.png,] và mở nó trong chế độ WB ghi bằng nhị phân.
- Giải mã nhị phân bằng b64.decode [] sau đó đóng tệp bằng .close []
Làm cách nào để chuyển đổi Base64 sang JPEG?
Chuyển đổi Base64 sang JPG trực tuyến bằng công cụ giải mã miễn phí cho phép bạn giải mã Base64 dưới dạng hình ảnh JPG và xem trước trực tiếp trong trình duyệt.
- Dán chuỗi của bạn vào trường Base Base64.
- Nhấn nút Decode Base64 đến JPG.
- Nhấp vào liên kết tên tệp để tải xuống hình ảnh JPG.
Làm cách nào để chuyển đổi văn bản thành một hình ảnh trong Python?
Cách chuyển đổi văn bản thành hình ảnh
- Cài đặt 'Aspose. Từ cho Python qua. MẠNG LƯỚI'.
- Thêm một tham chiếu thư viện [nhập thư viện] vào dự án Python của bạn.
- Mở tệp văn bản nguồn trong Python.
- Gọi phương thức 'Lưu []', chuyển tên tệp đầu ra với phần mở rộng hình ảnh.
- Nhận kết quả chuyển đổi văn bản làm hình ảnh.
Base64 to Image là gì?
Mã hóa Base64 là một cách để mã hóa dữ liệu nhị phân trong văn bản ASCII. Nó chủ yếu được sử dụng để lưu trữ hoặc chuyển hình ảnh, tệp âm thanh và phương tiện trực tuyến khác. Nó cũng thường được sử dụng khi có những hạn chế về các ký tự có thể được sử dụng trong tên tệp vì nhiều lý do khác nhau.25-FEB-2022
Làm cách nào để chuyển đổi Base64 sang JPEG trong Python?
Mã để chuyển đổi chuỗi base64 thành hình ảnh trong python
- Đầu tiên, chúng tôi nhập mô -đun Base64.
- Sau đó mở tệp chứa dữ liệu chuỗi cơ sở64 cho một hình ảnh.
- Chúng tôi lấy dữ liệu nhị phân và lưu trữ nó trong một biến.
- Chúng tôi giải mã dữ liệu chuỗi base64 bằng hàm b64decode [] của mô -đun base64.
- Chúng tôi tạo một tệp có tên hình ảnh.
Làm cách nào để giải mã base64 trong python?
Base64 Giải mã một hình ảnh để giải mã một hình ảnh bằng Python, chúng tôi chỉ cần sử dụng base64. Hàm B64Decode [S]. Python đề cập đến những điều sau đây liên quan đến hàm này: Giải mã base64 được mã hóa đối tượng byte hoặc chuỗi ASCII S và trả về các byte được giải mã.22-Mar-2016
Làm thế nào để tôi giải mã base64?
Để giải mã một tệp có nội dung được mã hóa base64, bạn chỉ cần cung cấp đường dẫn của tệp với cờ Cũng như các tệp mã hóa, đầu ra sẽ là một chuỗi rất dài của tệp gốc. Bạn có thể muốn xuất trực tiếp stdout vào tệp.01-sept-2020
Base64 Image có nhanh hơn không?
Mặc dù Base64 là một cách tương đối hiệu quả để mã hóa dữ liệu nhị phân, trung bình vẫn sẽ tăng kích thước tệp cho hơn 25%. Điều này không chỉ tăng hóa đơn băng thông của bạn mà còn tăng thời gian tải xuống.17-Mar-2019
Làm cách nào để nhận dữ liệu hình ảnh Base64?
Cách chuyển đổi hình ảnh thành Base64 trực tuyến
- Chọn nguồn hình ảnh từ trường Data DataType.
- Dán URL hoặc chọn hình ảnh từ máy tính của bạn.
- Nếu cần thiết, chọn định dạng đầu ra mong muốn.
- Nhấn nút Imcode Encode Impode sang Base64.
- Tải xuống hoặc sao chép kết quả từ trường Base Base64.
Làm thế nào để bạn tạo một hình ảnh trong Python?
Phương thức mới [] tạo ra một hình ảnh mới với chế độ và kích thước đã cho. Kích thước được đưa ra dưới dạng [chiều rộng, chiều cao] -tuple, tính bằng pixel. Màu sắc được đưa ra dưới dạng một giá trị duy nhất cho hình ảnh đơn và một bộ cho hình ảnh đa băng tần [với một giá trị cho mỗi băng tần] .30-Jun-2021