Ваш PostgreSQL умеет рисовать. Буквами!
Ваш PostgreSQL умеет рисовать. Буквами! Сегодня я хочу рассказать Вам о расширении pg_aa, которое позволяет превращать бинарные данные PNG в ASCII-графику прямо внутри PostgreSQL. PostgreSQL умеет хранить изображения... Но что, если вы хотите не просто хранить картинку, а показать её прямо в psql — без графического клиента, без веб-интерфейса, просто символами? pg_aa — это расширение для работы с библиотеками ASCII-арта внутри PostgreSQL. Оно добавляет функции, которые превращают бинарные данные PNG в ASCII-графику. Расширение предоставляет две функции: · aa_out(bytea, int4) — рендеринг через библиотеку libaa · caca_out(bytea, int4) — рендеринг через библиотеку libcaca Обе принимают бинарные данные изображения в формате PNG и желаемую ширину ASCII-арта в символах. Внутри расширение конвертирует картинку в оттенки серого и передаёт в ASCII-рендерер. Пример вызова для показа картинки из БД: ```sql -- Создаём таблицу для хранения изображений CREATE TABLE pictures ( id serial PRIMARY KEY, name text, data bytea ); -- Загружаем PNG-файл в таблицу INSERT INTO pictures (name, data) VALUES ('logo', pg_read_binary_file('/tmp/logo.png')); -- Выводим ASCII-арт через libaa (ширина 80 символов) SELECT aa_out(data, 80) FROM pictures WHERE name = 'logo'; -- Или через libcaca (ширина 60 символов) SELECT caca_out(data, 60) FROM pictures WHERE id = 1; ``` На выходе — многострочный текст, который отображается в терминале как ASCII-картинка. Ширина задаётся вторым аргументом: чем больше значение, тем детальнее изображение. Ваша СУБД на базе PostgreSQL может делать почти всё. Даже рисовать буквами! 😈