Задать вопрос
@4elive8
Positive

Как открыть изображение из таблицы Postgresql?

Добрый день! Я люблю изучать что нибудь на практике(учу postgresql) и придумал задачку. Суть скрипта таков, что он фотографирует тебя и ищет похожие снимки из таблицы в БД, и показать рядом в отдельном окне снимок и фото из БД. Застрял в одном месте, где нужно отобразить фото из БД, там какие то двоичные данные(формат bytea). Суть вопроса как вместо этих символов вывести саму картинку! Спасибо заранее!
Ps: Может ошибка в коде, приложу внизу.
db = postgresql.open('pq://postgres:postgres@localhost:5432/mydb')
db.execute("CREATE TABLE faces (id SERIAL PRIMARY KEY, " "name VARCHAR(50), " "face BYTEA)")
face_descriptors = db.query("SELECT name, face FROM faces")

# Здесь он выводит имя
print("It is ", face_descriptors[i][0])
  • Вопрос задан
  • 1327 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
igorzakhar
@igorzakhar
Библиотека Pillow тебе в помощь:
$ pip install Pillow

from PIL import Image
import io

image_data = ... # байты картинки
image = Image.open(io.BytesIO(image_data))
image.show()
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@pfg21
ex-турист
1. получить поток байтов из ячейки постгре
2. скормить онный поток байтов декодеру картинки.
3. отобразить картинку

практически также как отображение картинки из файла, акромя первого пункта :)
Ответ написан
Комментировать
Kwisatz
@Kwisatz
Больше web-приложений, хороших и разных
Для какой цели вы пытаетесь переложить задачи ФС на БД?
Ответ написан
Комментировать
@deliro
1. Разберись, что такое байты
2. Не храни фотографии в БД. Потому что
3. Далеко тебе до "искать похожие", если ты такие элементарные вещи не понимаешь
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы