Chuyển đổi png sang base64 Python

Chuyển đổi PNG sang Base64 trực tuyến và sử dụng nó làm trình tạo, cung cấp các ví dụ được tạo sẵn cho URI dữ liệu, img src, url nền CSS và những thứ khác. Trình chuyển đổi PNG sang Base64 giống hệt với Image to Base64, với điểm khác biệt duy nhất là nó buộc loại mime là “image/png” [ngay cả khi tệp đã tải lên có loại nội dung khác hoặc không thể phát hiện tệp này]. Xin lưu ý rằng bộ mã hóa PNG sang Base64 chấp nhận mọi loại hình ảnh có kích thước lên tới 50 MB. Nếu bạn đang tìm quy trình ngược lại, hãy kiểm tra Base64 to PNG

Loại dữ liệuTệp cục bộ*Chọn một tệp hoặc kéo và thả tệp vào đâyURL từ xa*Chỉ định URL đầy đủ của tệp từ xaĐịnh dạng đầu raMã hóa PNG thành Base64cơ sở64Kết quả mã hóa Base64 sẽ xuất hiện ở đây

Cách chuyển đổi PNG sang Base64 trực tuyến

  1. Chọn nguồn hình ảnh từ trường “Datatype”
  2. Dán URL hoặc chọn hình ảnh PNG từ máy tính của bạn
  3. Nếu cần, hãy chọn định dạng đầu ra mong muốn
  4. Nhấn nút “Mã hóa PNG thành Base64”
  5. Tải xuống hoặc sao chép kết quả từ trường “Base64”

Giới thiệu PNG

  • Tên. Biểu đồ minh họa mạng lưới không dây
  • nhà phát triển. Nhóm phát triển PNG
  • loại MIME. hình ảnh/png
  • Phần mở rộng tệp. . png
  • Mã định danh loại thống nhất. công cộng. png
  • Loại định dạng. Hình ảnh bitmap không mất dữ liệu

định dạng đầu ra

Nếu bạn không biết mình cần định dạng đầu ra nào, hãy kiểm tra các ví dụ sau để xem kết quả của cùng một hình ảnh PNG được mã hóa Base64 được định dạng ở mỗi định dạng có sẵn sẽ trông như thế nào [như hình ảnh ví dụ tôi sử dụng chấm đỏ một pixel

• Văn bản thô.
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
• URI dữ liệu.
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
• Hình nền CSS.
.base64 {
  background-image: url["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"]
}
• Biểu tượng yêu thích HTML.
• Siêu liên kết HTML.
• Hình ảnh HTML.
• Khung nội tuyến HTML.

  The “iframe” tag is not supported by your browser.
• Hình ảnh JavaScript.
var img = new Image[];
img.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC";
document.body.appendChild[img];
• Cửa sổ bật lên JavaScript.
window. title = function [] {
  this.open["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"];
};
• JSON.
{
  "image": {
    "mime": "image/png",
    "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"
  }
}
• XML.
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
0

Nếu tôi bỏ lỡ một định dạng đầu ra quan trọng cho hình ảnh PNG được mã hóa Base64, vui lòng cho tôi biết — tôi rất muốn triển khai định dạng đó

Giả sử bạn có tệp hình ảnh nhị phân muốn chuyển qua mạng. Bạn ngạc nhiên vì phía bên kia không nhận được tệp đúng cách—tệp chỉ chứa các ký tự lạ

Chà, có vẻ như bạn đã cố gửi tệp của mình ở định dạng bit và byte thô, trong khi phương tiện được sử dụng được thiết kế để truyền phát văn bản

Điều gì sẽ là cách giải quyết để tránh một vấn đề như vậy? . Trong bài viết này, tôi sẽ chỉ cho bạn cách chúng ta có thể sử dụng Python để mã hóa và giải mã một hình ảnh nhị phân. Chương trình được minh họa như một chương trình cục bộ độc lập, nhưng bạn có thể áp dụng khái niệm này cho các ứng dụng khác nhau như gửi hình ảnh được mã hóa từ thiết bị di động của bạn đến máy chủ và nhiều ứng dụng khác

Base64 là gì?

Trước khi đi sâu hơn vào bài viết, hãy xác định ý nghĩa của Base64

Base64 là cách mà dữ liệu nhị phân 8 bit được mã hóa thành định dạng có thể được biểu diễn bằng 6 bit. Điều này được thực hiện chỉ bằng cách sử dụng các ký tự

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
17,
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
18,
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
19,
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
400 và
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
401 để biểu thị dữ liệu, với
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
402 được sử dụng để đệm dữ liệu. Chẳng hạn, sử dụng mã hóa này, ba byte 8 bit được chuyển đổi thành bốn nhóm 6 bit

Thuật ngữ Base64 được lấy từ tiêu chuẩn Phần mở rộng thư Internet đa năng [MIME], được sử dụng rộng rãi cho HTTP và XML và ban đầu được phát triển để mã hóa các tệp đính kèm email để truyền

Tại sao chúng ta sử dụng Base64?

Base64 rất quan trọng đối với việc biểu diễn dữ liệu nhị phân, vì nó cho phép dữ liệu nhị phân được biểu diễn theo cách nhìn và hoạt động như văn bản thuần túy, điều này làm cho nó đáng tin cậy hơn khi được lưu trữ trong cơ sở dữ liệu, gửi trong email hoặc sử dụng trong văn bản dựa trên . Base64 về cơ bản được sử dụng để biểu diễn dữ liệu ở định dạng chuỗi ASCII

Như đã đề cập trong phần giới thiệu của bài viết này, không có Base64 đôi khi dữ liệu sẽ không thể đọc được

Mã hóa Base64

Mã hóa Base64 là quá trình chuyển đổi dữ liệu nhị phân thành một bộ ký tự giới hạn gồm 64 ký tự. Như đã trình bày trong phần đầu tiên, những ký tự đó là

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
17,
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
18,
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
19,
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
400 và
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
401 [hãy đếm chúng, bạn có để ý rằng chúng cộng lại thành 64 không?]. Bộ ký tự này được coi là bộ ký tự phổ biến nhất và được gọi là Base64 của MIME. Nó sử dụng
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
17,
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
18 và
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
19 cho 62 giá trị đầu tiên và
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
400 và
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
401 cho hai giá trị cuối cùng

Dữ liệu được mã hóa Base64 cuối cùng dài hơn dữ liệu gốc, do đó, như đã đề cập ở trên, cứ 3 byte dữ liệu nhị phân, có ít nhất 4 byte dữ liệu được mã hóa Base64. Điều này là do thực tế là chúng tôi đang nén dữ liệu thành một tập hợp các ký tự nhỏ hơn

Bạn đã bao giờ nhìn thấy một phần của tệp email thô như tệp được hiển thị bên dưới [rất có thể bắt nguồn từ một email không được gửi] chưa? . [Nếu bạn chú ý đến

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
402 ở cuối, bạn có thể kết luận rằng đây là mã hóa Base64, vì dấu bằng được sử dụng trong quá trình mã hóa cho phần đệm. ]

.base64 {
  background-image: url["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"]
}
8
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
4
0
1
2
3
4
5
6
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
1
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
40
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
41
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
42
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
43
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
44
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
45
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
46
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
47
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
48
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
49
00
01
02
03
04
05
1

Base64 được thực hiện theo nhiều bước, như sau

  • Văn bản được mã hóa được chuyển đổi thành các giá trị thập phân tương ứng của nó, nghĩa là thành ASCII tương đương của chúng [i. e. một. 97, b. 98, v.v. ]. Đây là bảng ASCII
  • Các giá trị thập phân thu được ở bước trên được chuyển đổi thành các giá trị nhị phân tương đương [i. e. 97. 01100001]
  • Tất cả các số nhị phân tương đương được nối, thu được một tập hợp lớn các số nhị phân
  • Tập hợp lớn các số nhị phân được chia thành các phần bằng nhau, với mỗi phần chỉ chứa 6 bit
  • Các bộ 6 bit bằng nhau được chuyển đổi thành số thập phân tương đương của chúng
  • Cuối cùng, các số thập phân tương đương được chuyển đổi thành các giá trị Base64 của chúng [i. e. 4. đ]. Dưới đây là các giá trị thập phân và bảng chữ cái Base64 của chúng

Giải mã Base64

Giải mã Base64 ngược lại với mã hóa Base64. Nói cách khác, nó được thực hiện bằng cách đảo ngược các bước được mô tả trong phần trước

Vì vậy, các bước giải mã Base64 có thể được mô tả như sau

  • Mỗi ký tự trong chuỗi được thay đổi thành giá trị thập phân Base64
  • Các giá trị thập phân thu được được chuyển đổi thành các giá trị nhị phân tương đương của chúng
  • Hai bit đầu tiên của số nhị phân được cắt bớt từ mỗi số nhị phân thu được và bộ 6 bit được kết hợp, tạo thành một chuỗi lớn các chữ số nhị phân
  • Chuỗi lớn các chữ số nhị phân thu được ở bước trước được chia thành các nhóm 8 bit
  • Các số nhị phân 8 bit được chuyển đổi thành số thập phân tương đương của chúng
  • Cuối cùng, các giá trị thập phân thu được được chuyển đổi thành ASCII tương đương của chúng

Mã hóa và giải mã Base64 của chuỗi

Bạn sẽ dễ hiểu hơn về cách thức hoạt động của tất cả những thứ này khi bạn thấy những gì đang diễn ra đằng sau hậu trường. Hãy thử mã hóa và giải mã một từ có ba chữ cái đơn giản,

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
414

Chúng tôi bắt đầu bằng cách chuyển đổi từng chữ cái của từ thành ASCII tương đương của nó, sau đó chuyển đổi ASCII tương đương thành nhị phân. Điều này mang lại cho chúng ta các giá trị sau

Chữ Giá trị chỉ mục ASCII Giá trị nhị phân 8-bitH7201001000e10101100101y12101111001

Nói cách khác, chúng ta có thể viết

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
414 ở dạng nhị phân như thế này

.base64 {
  background-image: url["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"]
}
8
08

Có tổng cộng 24 bit, khi được chuyển thành các nhóm 6 bit, mỗi kết quả sẽ có bốn giá trị

.base64 {
  background-image: url["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"]
}
8
10

Trong bảng Base64, các ký tự

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
416 đến
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
417 được biểu thị bằng các giá trị từ 0 đến 25. Các ký tự
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
418 đến
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
419 được biểu thị bằng các giá trị từ 26 đến 51. Các số
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
420 đến
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
421 được biểu thị bằng các giá trị từ 52 đến 61. Các ký tự
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
400 và
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
401 được đại diện bởi 62 và 63. Ký tự
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
402 được sử dụng để đệm khi không thể chia đúng các bit thành các nhóm 6

Bây giờ chúng ta sẽ chuyển đổi các bit được sắp xếp lại thành các giá trị số và sau đó lấy ký tự đại diện cho các giá trị số đó

Giá trị nhị phân 6 bit ValueBase64 Index ValueLetter01001018S0001106G01010121V111001575

Dựa trên các tính toán của chúng tôi ở trên, chữ cái

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
414 sẽ trở thành
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
426 khi được mã hóa Base64. Chúng tôi có thể kiểm tra xem điều đó có đúng không bằng cách sử dụng đoạn mã sau

.base64 {
  background-image: url["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"]
}
8
12______30
2
15
3
5
18
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
1
20

Toàn bộ quá trình được thực hiện ngược lại để lấy lại dữ liệu gốc của chúng tôi sau khi giải mã Base64

Bây giờ, tôi sẽ nhanh chóng cho bạn thấy cách mã hóa của một từ khác,

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
427, để giải thích sự xuất hiện của
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
402 trong chuỗi được mã hóa

Chữ Giá trị chỉ mục ASCII Giá trị nhị phân 8-bitH7201001000e10101100101y12101111001o11101101111

Có tổng cộng 32 bit. Điều này sẽ cung cấp cho chúng tôi năm nhóm 6 bit khác nhau, với hai bit còn lại.

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
429. Chúng tôi đệm chúng bằng
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
430 để có được một nhóm 6 bit. Tạo các nhóm 6 bit từ cách sắp xếp trên sẽ cung cấp cho bạn thông tin sau

.base64 {
  background-image: url["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"]
}
8
22

Các bit được sắp xếp lại sẽ trả lại cho bạn các ký tự sau dựa trên các giá trị chỉ mục Base64

Giá trị nhị phân 6 bit ValueBase64 Index ValueLetter01001018S0001106G01010121V11100157501101127b11000048w

Điều này có nghĩa là giá trị được mã hóa Base64 của chúng tôi cho

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
427 sẽ là
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
432. Mỗi
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
402 đại diện cho một cặp
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
434 mà chúng tôi đã thêm vào để đệm chuỗi bit ban đầu

.base64 {
  background-image: url["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"]
}
8
24
0
2
27
3
5
30
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
1
32

Base64 Mã hóa hình ảnh

Bây giờ chúng ta hãy đi vào phần chính của bài viết này. Trong phần này, tôi sẽ chỉ cho bạn cách chúng ta có thể dễ dàng mã hóa Base64 một hình ảnh bằng Python

Tôi sẽ sử dụng hình ảnh nhị phân sau. Hãy tiếp tục và tải xuống và bắt đầu sử dụng Python. [Tôi cho rằng tên của hình ảnh là con nai. gif. ]

Điều đầu tiên chúng ta phải làm để sử dụng Base64 trong Python là nhập mô-đun base64

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
435

Để mã hóa hình ảnh, chúng tôi chỉ cần sử dụng chức năng

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
436. Python mô tả chức năng như sau

Mã hóa đối tượng giống như byte

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
437 bằng Base64 và trả về các byte được mã hóa

Do đó, chúng ta có thể thực hiện các thao tác sau để mã hóa Base64 cho hình ảnh của mình

.base64 {
  background-image: url["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"]
}
8
34
0
36
2
38
3
40

Nếu bạn muốn xem đầu ra của quá trình mã hóa, hãy gõ như sau

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
438

Base64 giải mã một hình ảnh

Để giải mã một hình ảnh bằng Python, chúng ta chỉ cần sử dụng hàm

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
439. Python đề cập đến những điều sau đây về chức năng này

Giải mã đối tượng giống như byte được mã hóa Base64 hoặc chuỗi ASCII s và trả về byte đã giải mã

Vì vậy, để giải mã hình ảnh chúng tôi đã mã hóa trong phần trước, chúng tôi làm như sau

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
440

Để tất cả chúng cùng nhau

Hãy cùng nhau đặt chương trình mã hóa và giải mã Base64 cho một hình ảnh. Tập lệnh Python thực hiện điều đó sẽ trông giống như sau

.base64 {
  background-image: url["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"]
}
8
42______30
44
2
46
3
48
5
50
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
1
52
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
41
54

Nếu bạn mở Deer_decode. gif mà bạn có trên máy tính để bàn của mình, bạn sẽ nhận thấy rằng bạn có hình ảnh con nai gốc. gif chúng tôi đã mã hóa trong bước đầu tiên

Như chúng ta đã thấy trong bài viết này, Python giúp dễ dàng thực hiện những gì có vẻ là một nhiệm vụ phức tạp.

Mã hóa và giải mã an toàn URL

Như tôi đã đề cập trước đó trong hướng dẫn, mã hóa Base64 cũng sử dụng các ký tự

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
400 và
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
401 bên cạnh các giá trị chữ và số thông thường. Tuy nhiên, những ký tự này có ý nghĩa đặc biệt trong URL. Điều này có nghĩa là giá trị được mã hóa Base64 sử dụng các ký tự này có thể dẫn đến hành vi không mong muốn nếu được sử dụng bên trong URL

Một giải pháp cho vấn đề này là sử dụng các hàm

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
443 và
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
444 để mã hóa và giải mã bất kỳ dữ liệu nào. Các chức năng này thay thế
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
400 bằng
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
446 và
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
401 bằng
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
448 trong quá trình mã hóa

Đây là một ví dụ trong Python cho thấy sự khác biệt này

.base64 {
  background-image: url["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC"]
}
8
42
0
2
59
3
61
5
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
1
64
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
41
66
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
43
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
45
69
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
47
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
11
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
49
01
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
14
03
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4z8AAAAMBAQD3A0FDAAAAAElFTkSuQmCC
16

Học Python

Tìm hiểu Python với hướng dẫn hướng dẫn Python hoàn chỉnh của chúng tôi, cho dù bạn mới bắt đầu hay bạn là một lập trình viên dày dặn đang muốn học các kỹ năng mới

Bài đăng này đã được cập nhật với sự đóng góp từ Nitish Kumar. Nitish là nhà phát triển web có kinh nghiệm tạo trang web Thương mại điện tử trên nhiều nền tảng khác nhau. Anh ấy dành thời gian rảnh của mình để thực hiện các dự án cá nhân giúp cuộc sống hàng ngày của anh ấy dễ dàng hơn hoặc đi dạo buổi tối dài với bạn bè

Làm cách nào để chuyển đổi PNG sang Base64 Python?

Chuyển đổi hình ảnh thành chuỗi base64 trong Python .
Mở một tệp hình ảnh
đọc dữ liệu hình ảnh
mã hóa nó trong base64 bằng mô-đun base64 trong Python
In chuỗi

Làm cách nào để chuyển đổi hình ảnh PNG sang Base64?

Câu hỏi thường gặp về công cụ chuyển đổi PNG sang Base64 .
Nhấp vào "Chọn tệp" và tải lên hình ảnh PNG từ hệ thống của bạn
Nhấp vào nút "Chuyển đổi" để chuyển đổi hình ảnh PNG thành dữ liệu cơ sở 64
Bạn có thể "Tải xuống hoặc Sao chép" mã cơ sở 64 để sử dụng thêm

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

Chuyển hình ảnh thành chuỗi .
Ở đây, trước tiên, chúng tôi nhập phương thức “Base64“ để mã hóa hình ảnh đã cho
Tiếp theo, chúng tôi đã mở tệp hình ảnh của mình ở chế độ rb được đọc ở chế độ nhị phân
Chúng tôi đọc hình ảnh của chúng tôi với hình ảnh2. read[] Đọc hình ảnh và mã hóa nó bằng cách sử dụng b64encode[] Đây là phương pháp được sử dụng để mã hóa dữ liệu vào Base64

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

Chuyển đổi hình ảnh sang Base64 . Nhấn một nút - nhận base64. Không có quảng cáo, vô nghĩa hoặc rác. Kéo và thả hình ảnh của bạn vào đây. select your JPG, PNG, GIF, Webp, or BMP picture or drag & drop it in the form below, press the Convert to Base64 button, and you'll get a base-64 string of the image. Press a button – get base64. No ads, nonsense, or garbage. Drag and drop your image here!

Chủ Đề