#софт #Шиндошс #Windows10 #NeuralNetwork #script #автоматизация
Есть под венду хорошая, годная #скриншотилка — ShareX. 100500 функций в совершенно инопланетном интерфейсе, но сохранять умеет только в PNG/JPEG (ну, BMP и TIFF тоже есть, но ненужно). И есть даже даже какие-то зайчатки автоматизации — возможность задать условие, дескать, если в #PNG получается больше 200 килобайт — то жми вместо этого в #JPEG...
Но мы ж люди современные, #WebP хотим. Внешний кодировщик там вызвать можно, но условия задать уже не получится. Поэтому #ChatGPT наваял такой батник:
@echo off
setlocal enabledelayedexpansion
set "input=%~1"
set "output=%~2"
set "cwebp=C:\programs\libwebp-1.4.0-windows-x64\bin\cwebp.exe"
set "magick=C:\programs\ImageMagick-7.1.1-Q16-HDRI\magick.exe"
:: 1. Конвертация PNG -> WebP без потерь
"%cwebp%" -lossless "%input%" -o "%output%"
:: 2. Получаем размер выходного .webp файла
for %%F in ("%output%") do set "size=%%~zF"
set /A size/=1024
:: 3. Если WebP > 200 Кб, пересжимаем с потерями
if %size% GTR 200 (
"%cwebp%" -q 80 "%input%" -o "%output%"
)
:: Конвертация PNG -> JPEG
:: Меняем расширение на .jpg
set "output=%input:.png=.jpg%"
:: Конвертация PNG -> JPEG
%magick% convert "%input%" -quality 80 -strip "%output%"
endlocal
Таким образом, на выходе получается 3 файла: PNG, WebP (с потерями или без), JPEG. Ссылку на батник указываем в «Настройках задач», и включаем выполнение «Задач» после захвата скриншота.
В буфер по умолчанию копируется путь к WEBP, а PNG и JPG лежат там же с тем же именем.
P.S. Я ХЗ, насколько подробно имеет смысл расписывать настройки (да, интерфейс по ходу проектировали Чужие для Хищников
), будут вопросы — спрашивайте (хех, если тут вообще есть ведузятники
).
P.P.S. Почему 200 килобайт? Потому что, как правило, скриншот всего экрана с окнами и текстом (т.е. хорошо сжимаемый без потерь) весит меньше. Если получается больше — значит там есть картинки, и можно с потерями жать. При этом качество WebP получается лучше при вдвое меньшем размере, в сравнении с JPEG.
Known Issues:
- Если какое-то приложение автоматически сканирует новые файлы (например, просмотрщик генерит превьюшки в папке со скриншотами) — lossy-версия может не записаться, т.к. cwebp не сможет открыть файл
