Python convert image to base64

How to use Python 3 to convert your images to Base64 encoding

When you encode your images in Base64, your images can be transferred and saved as text.

Although there will be a 37% bloat in space requirements, it can be useful to encode images in Base64.

For example with SAP HANA XS Advanced, you can quickly build an OData service to receive images via JSON.

Given that, let’s see how we can encode an image in Base64 encoding with Python 3.

Python 3 codes to encode an image in Base64

After you had decided to encode your image in Base64, you can proceed with coding a utility function with Python 3:

import base64 def get_base64_encoded_image(image_path): with open(image_path, "rb") as img_file: return base64.b64encode(img_file.read()).decode('utf-8')

As shown above, it takes just 4 lines of Python 3 codes to encode an image in Base64.

Читайте также:  Python delete import module

First, we import the base64 module into our Python script.

Once we have done so, we define a function, get_base64_encoded_image , that takes an image path as the parameter.

When we have the image path, we use the open function to get a file object to the image that we wish to encode in Base64.

If we can do so successfully, then we use base64.b64encode on the binary data of the image file.

Before exiting the function, we decode the bytes from base64.b64encode as a UTF-8 string and return it to the caller.

How to display a Base64 encoded image on the browser

Given that you have saved the Base64 encoded image into your database, how can you display it on the browser?

In order to display a Base64 encoded image on the browser, place the Base64 encoded string in the src attribute of an img tag:

 

When you access the above HTML codes with your browser, you will get the following image:

If you wish to display a different type of image, swap the MIME type.

For example, if you wish to display a png image, you will change:

About Clivant

Clivant a.k.a Chai Heng enjoys composing software and building systems to serve people. He owns techcoil.com and hopes that whatever he had written and built so far had benefited people. All views expressed belongs to him and are not representative of the company that he works/worked for.

Источник

Python convert image to base64

Last updated: Jun 23, 2023
Reading time · 4 min

banner

# Table of Contents

# Convert an Image to a Base64-encoded String in Python

To convert an image to a base64 string in Python:

  1. Use the with open() statement to open the image file.
  2. Use the file.read() method to read the image’s contents.
  3. Use the base64.b64encode() method to encode the bytes using Base64 and return a bytes-like object.
Copied!
import base64 with open('house.webp', 'rb') as image_file: base64_bytes = base64.b64encode(image_file.read()) print(base64_bytes) base64_string = base64_bytes.decode() print(base64_string)

convert image to base64 string in python

The code sample assumes that you have the following house.webp image in the same directory as your Python script.

house

You can right-click on the image and select «Save image as» to download it.

We first imported the base64 native Python module.

The module provides functions for encoding binary data to printable ASCII characters and decoding such encodings back to binary data.

The next step is to use the with open() statement to open the image file in rb (read binary) mode.

The with open() statement takes care of closing the file even if an error occurs.

Copied!
import base64 with open('house.webp', 'rb') as image_file: base64_bytes = base64.b64encode(image_file.read()) print(base64_bytes) base64_string = base64_bytes.decode() print(base64_string)

The base64.b64encode method encodes the supplied bytes-like object using Base64 and returns the encoded bytes.

If you want to convert the base64 encoded bytes to a string, use the bytes.decode method.

Copied!
base64_string = base64_bytes.decode() print(base64_string)

The bytes.decode() method converts the bytes object to a string and removes the b prefix.

You can also pass the encoding as an argument to the decode() method.

The default encoding is utf-8 .

Copied!
base64_string = base64_bytes.decode('utf-8') print(base64_string)

The first argument we passed to the open() function is the path to the image file.

If you are on Windows, prefix the path with r to mark it as a raw string.

Copied!
image_path = r'C:\Users\Alice\Desktop\my-image.png'

Источник

Кодирование файла изображения с помощью BASE64 в Python

В современном мире быстрого обмена информацией данные должны передаваться быстро и эффективно. Кодирование изображений в виде строк — один из самых распространенных способов передачи их из одной сети в другую.

Сжатие изображения может быть легко достигнуто путем преобразования его в строки. Когда есть большой набор изображений, преобразование помогает уменьшить пропускную способность, легко передавать их и быстро обрабатывать.

Он также используется для хранения изображений и других файлов, таких как видео, аудиофайлы в Интернете.

Введение в кодировку Base64

Кодирование файла изображения с помощью Base64 в Python можно легко выполнить с помощью модуля base64. Чтобы закодировать изображение, сначала импортируйте модуль base64. Затем откройте файл изображения в двоичном режиме и прочитайте его содержимое. Используйте функцию base64.b64encode() для преобразования содержимого изображения в строку Base64. Наконец, напечатайте закодированную строку или декодируйте ее, используя utf-8, если это необходимо. Кодирование Base64 полезно для эффективной и безопасной передачи файлов изображений через Интернет или через API, но оно имеет некоторые ограничения, например, лучше всего работает с изображениями небольшого размера.

Кодирование относится к процессу преобразования читаемых данных в закодированную форму, так что они становятся не очень легко читаемыми. Он необходим для безопасной передачи данных между сетями или через Интернет, поскольку он преобразует читаемые данные в закодированную форму, которую нелегко расшифровать. Этот процесс не только повышает безопасность, но также предотвращает повреждение данных во время передачи и снижает пропускную способность для увеличения скорости передачи. В компьютерных сетях существует более одного типа системы кодирования, например base8, base16, base64 и base256.

Base64 — это система кодирования, которая преобразует байты в символы ASCII. Система содержит все прописные и строчные буквы английского словаря, символы «+» и «/» и цифры от 0 (ноль) до 9 (девять).

Модуль base64 в Python позволяет преобразовывать строки, текстовые файлы и мультимедийные файлы, такие как изображения, видео или аудиофайлы, в символы Base64. Следовательно, кодирование изображений в python очень просто с помощью этого встроенного модуля.

Python предоставляет огромный набор встроенных функций, которые могут решить большинство ваших проблем на общем уровне. Это то, что отличает Python от остальных языков. Помимо чрезвычайно простого синтаксиса, популярность Python объясняется его гибкостью и огромным количеством документации, доступной в Интернете.

Аналогично: Декодирование данных Base64 в Python.

Преимущества преобразования изображений в строки Base64

Изображения преобразуются в строки base64 по следующим причинам:

  • Для упрощения передачи изображений и других файлов через Интернет.
  • Для уменьшения пропускной способности файла изображения для увеличения скорости передачи файла.
  • Чтобы безопасно поделиться изображением в API.
  • Изображения, закодированные в строке base64, могут быть декодированы на стороне сервера API для удобства использования.
  • В приложениях, которые не поддерживают загрузку файлов, полезно преобразовать изображения в строки base64.
  • Изображения также можно преобразовать в 8-битные символы, но они не поддерживаются для передачи по электронной почте, поэтому в этом случае пригодится преобразование изображений в символы base64.

Недостатки преобразования изображений в строки Base64

Есть также некоторые недостатки преобразования изображений в строки base64. Некоторые из них приведены ниже:

  • Это работает только для изображений небольшого размера, на самом деле для очень маленьких изображений.
  • Строка base64 после преобразования слишком длинная, и python, будучи в основном интерпретируемым языком, требует времени для создания этой строки.
  • Эта практика кодирования работает только при наличии большого количества очень-очень маленьких изображений.

Подготовка вашей среды Python для кодирования Base64

Убедитесь, что у вас установлена ​​последняя версия Python. Этот модуль по умолчанию устанавливается при установке Python в вашей системе. Но чтобы убедиться, вы можете проверить список установленных модулей Python в вашей системе, выполнив следующую команду из командной строки.

Список установленных модулей

В нем будут перечислены все установленные пакеты в вашей системе. В последнем обновлении модуль base64 был обновлен до pybase64 который является бесплатной и более быстрой версией предыдущего модуля для целей кодирования/декодирования. Если у вас нет модуля base64 в списке модулей в вашей локальной системе, не волнуйтесь, выполните следующую команду из командной строки в режиме администратора, чтобы избежать конфликтов PATH.

Установка Pybase64

Проверьте: Как конвертировать изображения в массивы Numpy в Python.

Кодирование изображений с помощью Base64 в Python

Код для кодирования изображения в символы base64 приведен ниже:

#importing required image import base64 with open("required image.jpg", "rb") as imagefile: convert = base64.b64encode(imagefile.read()) print(convert.decode('utf-8'))

Результат будет огромным, потому что я использовал изображение, приведенное ниже. Вы можете использовать любое изображение.

Требуемое изображение

ПРЕДУПРЕЖДЕНИЕ. Поскольку вывод будет огромным, ваш редактор может замедлить работу вашей системы, поэтому рекомендуется использовать крошечные изображения. Это один из наиболее распространенных недостатков этого метода. Если вы используете IDLE Python, вы можете получить предупреждение, как показано ниже, в оболочке.

Предупреждение в Idle Shell

Вы можете щелкнуть это предупреждение и скопировать и вставить вывод в блокнот. Но в некоторых редакторах вы действительно можете увидеть огромный вывод, как показано ниже:

Код и вывод

Заключение.

В этой статье мы рассмотрели основы системы кодирования base64 и узнали о ее преимуществах и недостатках. Изображения можно легко преобразовать в символы base64 в python с помощью модуля pybase64 или просто модуля base64. Вы также можете конвертировать другие файлы, такие как видео и аудио, используя этот модуль. Теперь, когда вы знаете, как кодировать изображения в Base64, рассмотрите возможность изучения других методов кодирования, таких как base8, base16 и base256. Как можно сравнить эти методы с точки зрения скорости, эффективности и безопасности?

Источник

Convert Image to Base64 string in Python

In this tutorial, we will learn about how to convert an image to Base64 string in Python. We can represent an image with a string also known as Base64 string or Base64 code. So let’s learn how this conversion can be done in Python.

Convert an image to base64 string in Python

Here we will learn it step by step with an example.

At first, let’s talk about the steps we gonna follow in this tutorial.

  1. Open an image file.
  2. read the image data.
  3. encode it in base64 using the base64 module in Python.
  4. Print the string.

Here we will take an example image to show you how to do this.

convert image to base64 in Python

Now we will convert this image to its base64 code using the below Python Program:

Python program: image to base64

import base64 with open("my_image.jpg", "rb") as img_file: my_string = base64.b64encode(img_file.read()) print(my_string)
b'your_base64_string_will_be_printed_here'

As you can see here, your string has been printed. But in starting position of your base64 string there is a b’

Or you can say your base64 encoded string is in a pair of single quotation.

Remove b’ from the prefix of base64 code in Python

Just use the below line to print the base64 string without b’ ‘ in Python

Now it will print only the string you need without b’.

We just decoded the encoded string to utf-8 format.

Explanation:

The filename of my image is my_image.jpg

  • At first, we opened our file in ‘rb’ mode.
  • Then we read the image file and encoded it with the following line:
    base64.b64encode(img_file.read()) – b64encode() is a method to encode the data into base64
  • You must read the image file before you encode it.

Источник

Оцените статью