Рубрики
Без рубрики

Как кодировать и хранить изображения в pysondb.

Многим из нас трудно добавить изображение в базу данных. Pysondb решает большинство ваших проблем, теперь я с т. Д., Python, DataScience, производительность.

Многим из нас трудно добавить изображение в базу данных. Pysondb решает большинство ваших проблем, теперь я покажу, как хранить изображение в pysondb

Что мы делаем сегодня:

  • Мы собираемся кодировать изображение, а затем расшифровать его.
  • Тогда мы собираемся хранить его в pysondb.

Предварительные условия

  • Установите pysondb через PIP
pip install pysondb

Давайте начнем.

У нас есть изображение, как ниже.

file2son.png

Мы собираемся кодировать это.

  • Нам нужно сначала импортировать модуль Base64.
  • Он обрабатывает кодирование изображения BASE64.
from pysondb import db 
import base64
from PIL import Image
from io import BytesIO

x=db.getDb("fs.json")
def addimage(fi,name):
  with open(fi,"rb") as dataimg:
    raw_data=base64.b64encode(dataimg.read())
    x.add({"data":raw_data.decode('utf-8'),"name":name})

addimage("file2son.png","image12")
  • Мы импортируем pysondb, bas64
  • Двое других будут обработаны в ближайшее время.
x=db.getDb("fs.json")
  • Это создает или соединяет базу данных JSON под названием FS.JSON
  • Если вы не знаете, pysondb читайте это
def addimage(fi,name):
  with open(fi,"rb") as dataimg:
    raw_data=base64.b64encode(dataimg.read())
    x.add({"data":raw_data.decode('utf-8'),"name":name})

addimage("file2son.png","image12")
  • Мы открываем файл (здесь file2son.png) в чтении, двоичном режиме как DataImg.
raw_data=base64.b64encode(dataimg.read())
  • Это кодирует все данные в DataImg в формате Base64.
 x.add({"data":raw_data.decode('utf-8'),"name":name})
  • Этот кусок кода хранит данные в базе данных PysondB.
  • Смотрите, что RAW_DATA после кодирования декодируется в формате «UTF-8».
  • Иначе отображается ошибка.

Итак, наконец, у нас есть данные в базе данных FS.JSON.

Давай вернем изображение

def getimage(filename,name):
  img_data=x.getBy({"name":name})
  img=Image.open(BytesIO(base64.b64decode(img_data[0]['data2'])))
  img.save(filename,"PNG")

getimage("file.png","image12")
img_data=x.getBy({"name":name})
  • Этот кусок кода получает данные Base64 от FS.JSON с предоставленным именем.
img=Image.open(BytesIO(base64.b64decode(img_data[0]['data2'])))
  • Здесь мы используем изображение из модуля Pillow (PIL).
  • Что делает этот код:
    • Открывает данные Base64 от FS.JSON
    • И Bytesio преобразует данные в байтовый поток, который пойман функцией изображения и назначенной переменной IMG.
img.save(filename,"PNG")
  • Это сохраняет IMG в имени файла (здесь file.png) в формате PNG
  • У вас есть file.png в каталоге, который был закодирован и декодирован.

Весь код

from pysondb import db
import base64
from PIL import Image
from io import BytesIO

x=db.getDb("fs.json")
def addimage(fi,name):
  with open(fi,"rb") as data:
    raw_data=base64.b64encode(data.read())
    x.add({"data":raw_data.decode('utf-8'),"name":name})


addimage("file2son.png","image12")
# addimage() is used to add file2son.png image in database with name as image12

def getimage(filename,name):
  img_data=x.getBy({"name":name})
  img=img_data[0]['data2'].decode('base64'))
  img.save(filename,"PNG")
getimage("file.png","image12")
# getimage is used to retrieve the stored image of name image12 and get it as file.png

Вот на сегодня, следуйте за большим количеством блогов.

Есть какие -либо сомнения или я ошибаюсь где угодно, пожалуйста, прокомментируйте здесь. Чтобы я мог исправить это.

Оригинал: “https://dev.to/fredysomy/how-to-encode-and-store-images-in-pysondb-4hco”