Друкарня від WE.UA

Zberigator. Моя Java-аплікація для збереження картинок з буфера обміну

Як виявилося, сучасні бравзери, принаймні Firefox, не вміють нормально зберігати картинки! Це неймовірно, але факт: деякі (можливо більшість, можливо всі) картинки качаються з мережі двічі, вперше, коли, власне, завантажується сторінка, і вдруге, коли ти зберігаєш картинку на диск. Тобто, якщо, приміром, ти зайдеш на сайт із мемами, потім вимкнеш інтернет, ти не зможеш зберегти жадного мема!..

Здавалося б, що може бути інтуїтивніше? — картинку бравзер уже відмалював, чому я просто не можу її зберегти на диск?!

Втім бравзери мають опцію копіювання картинки, в такому разі вона потрапляє в буфер обміну напряму, тобто ся опція працює очікувано: ти бачиш на екрані картинку, можеш її скопіювати і бравзер повторно не лізе на сервер. Тут в процес включається моя програма: Zberigator бачить (раз на 5 сек) у буфері зображення і зберігає його на диск в форматі webp, після чого буфер очищується.

Чому webp?

Статистично цей формат на 40 % економніший за инші, також він підтримує прозорість, як png, і анімацію як gif. Якщо ваш Віндовс не має нативної підтримки webp, скачайте WebpCodecSetup.exe та встановіть, після цього дефолтні засоби перегляду порозуміються із webp та замість значків у Провіднику відображатимуться ескізи.

Увага! Моя прога не підтримує прозорість і анімацію! Гіфки та png із прозорим (Альфа-канал) фоном доведеться зберігати осібно. Втім, прога зберігає перший кадр гіфки або png із прозорістю з білим тлом натомість. Себто будь-що графічне (навіть текст з WordPad), потрапивши у буфер обміну буде автоматично збережено у webp файл. Якщо потрібно конвертувати png abo gif у webp, можна скористатися моїм додатком Rainspinbowner.

Як користуватися Zberigator

Програма консольна, се значить що запускати єя слід через батнік (є в архіві) або консоль власноруч (java -jar точна_назва_прогі.jar), перший запуск спитає в якій якості зберігати картинки: від 0 до 100, оптимально 50-70, друге питання: куди зберігати картинки, тут знадобиться вписати адресу типу: E:\Kartynky або E: — будь-яка локація годиться, головне щоб адреса не містила кириличних або якихось спеціяльних символів, лапки також не потрібні.

Коли програма знатиме якість та локацію, поруч буде створено файл конфігурації (konf.txt (можна редагувати вручну)) і запуститься моніторинг буферу. Записи про збережені в поточній сесії картинки потраплятимуть у консоль.

Назва картинки формується випадковим чином за певним шаблоном.

Щоб завершити програму, достатньо закрити консоль або через Ctrl+C. Zberigator не прописується в системі, працює локально з однієї теки, не з'єднується з інтернетом, не збирає жодних даних на комп'ютері і не містить шкідливого коду.

Програма запускається на будь-якій машині (Windows, Linux, MacOS) з підтримкою Java 22+.

Качайте з archive.org (2.7 MB) за прямим посиланням.

Статті про вітчизняний бізнес та цікавих людей:

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Іво Сайвс
Іво Сайвс@ivo_sives

I run with scissors

62Довгочити
2.8KПерегляди
13Підписники
На Друкарні з 1 липня 2024

Більше від автора

Це також може зацікавити:

  • Рівні ізоляції транзакцій у БД

    Доволі детальний огляд аномалій у БД, рівнів ізоляції, які дозволяються уникнути аномалії, та імплементації цих рівнів. Багато використовую джерела та свої коментарі, в кінці декілька чит-шитів.

    Теми цього довгочиту:

    Бази Даних
  • Kafka. ZooKeeper. Raft

    Консенсус в розподілених системах — це фундаментальний принцип, який дозволяє декільком взаємопов'язаним вузлам (або процесам) у системі досягти загальної домовленості щодо певного даних або стану системи, незважаючи на наявність помилок або відмов деяких вузлів.

    Теми цього довгочиту:

    Kafka

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Це також може зацікавити:

  • Рівні ізоляції транзакцій у БД

    Доволі детальний огляд аномалій у БД, рівнів ізоляції, які дозволяються уникнути аномалії, та імплементації цих рівнів. Багато використовую джерела та свої коментарі, в кінці декілька чит-шитів.

    Теми цього довгочиту:

    Бази Даних
  • Kafka. ZooKeeper. Raft

    Консенсус в розподілених системах — це фундаментальний принцип, який дозволяє декільком взаємопов'язаним вузлам (або процесам) у системі досягти загальної домовленості щодо певного даних або стану системи, незважаючи на наявність помилок або відмов деяких вузлів.

    Теми цього довгочиту:

    Kafka