@Dima_E

Как получить битовое представление скрина для передачи через сокет, не сохраняя его?

Как конвертировать скриншот PIL (pillow) в биты для передачи через сеть ?
Но без сохранения на диск, а потом открытия его через 'rb'. Так как занимает много времени. Чтобы на ходу сделать скрин и его отправить.
  • Вопрос задан
  • 130 просмотров
Решения вопроса 3
@Everything_is_bad
открываешь гугл и вбиваешь "pillow image to bytes"
Ответ написан
vollossy
@vollossy
Веб-разработчик с небольшим опытом работы
Для изображений с компрессией (скорее всего, вы работаете jpeg, png или чем-то ещё), можно использовать метод Image.save(fp: str | bytes | PathLike[str] | PathL..., передав в качестве параметра fp экземпляр BytesIO.

В принципе, для работы с байтами в памяти программы, рекомендую использовать этот класс, весьма удобно.
Ответ написан
Комментировать
grantur5707
@grantur5707
Full Stack Web Developer
Если вдруг гугл оказался "аварийным" или по пути занесло не туда, то вот простой пример решения твоего вопроса :)

from PIL import ImageGrab
import io

screenshot = ImageGrab.grab()
byte_io = io.BytesIO()
screenshot.save(byte_io, format='PNG')
image_bytes = byte_io.getvalue()


Ну а дальше уже делай, что хочешь, с этим байтами.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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