Как изменить содержимое изображения с помощью сценария bash?

Если вы имеете дело с большим количеством файлов, grep будет работать быстрее, если вы сократите количество файлов, в которых он должен искать, а не ищете все файлы во вложенных папках.

Я иногда использую этот формат:

grep "primary" `find. | grep cpp$`

Найти все файлы в подпапках ., которые заканчиваются на cpp. Затем загрузите эти файлы для «основного».

Если вы хотите, вы можете продолжать передавать эти результаты в дальнейшие вызовы grep:

grep "primary" `find. | grep cpp$` | grep -v "ignoreThis" | grep -i "caseInsensitiveGrep"
0
28.10.2019, 15:48
1 ответ

С помощью инструментов netpbm; он должен быть установлен через менеджер пакетов.

pngtopnm image.png > image.pnm
halfheight=$(awk 'NR==2 { printf "%d", $2/2 }' image.pnm)
pnmcut -top "$halfheight" image.pnm | pnmpad -white -top "$halfheight" | pnmtopng > out.png
rm image.pnm
  1. Преобразование изображения PNG в формат PNM
  2. Размеры изображения сохраняются во второй строке изображения PNM. Выведите половину высоты (второго поля $2 / 2 )как целое число, используя awkи сохраните значение в переменной halfheight.
  3. Отрежьте половину высоты сверху, дополните результат таким же количеством пикселей с верхней белой рамкой и преобразуйте результат обратно в формат PNG.
  4. Очистите временный файл.

Если вы хотите рассчитать высоту более "нечетким" способом, вы можете сохранить размеры изображения в массиве, а затем вычислить значение:

dim=($(head -n2 image.pnm | tail -n1))
halfheight=$((${dim[1]} / 2)) 

Ссылки:

0
28.01.2020, 03:10

Теги

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