Как удалить несколько пикселей по отношению к низу нескольких изображений. [обрезка]

Вы можете обращаться с числами как со строками, потому что они, по сути, таковы и есть*:

$ number=42
$ echo "${number:1:1}"
2
$ echo "${number:0:1}"
4

*Если вы не объявите переменную как целое число (, например, в Bash ), в этом случае она преобразуется в десятичное число , прежде чем вы сможете обрабатывать ее как строку. Например, восьмеричное число:

$ declare -i number=042
$ echo "${number:0:1}"
3
$ echo "${number:1:1}"
4

Ничто из этого не относится к десятичным числам или числам с плавающей запятой, которые *оболочки nix не поддерживают напрямую. Для этого вам нужно изучить bc.

Вы также можете трактовать строку как массив символов разными способами.

0
12.07.2020, 19:48
2 ответа

Обрезка изображений с помощью инструментов командной строки , упомянутая в комментариях, является хорошей начальной ссылкой, но в ней отсутствует очень удобный вариант с процентами в Width x Height, который вам как раз и нужен.

convert -crop 100%x100%+0-20 original.png cropped.png

Конечно, замените 20фактическим xзначением смещения по вертикали.

Я нашел аргументы в процентах в Как обрезать изображение с помощью imagemagick convert .

2
18.03.2021, 23:20

Использование инструментов netpbm:

Преобразование изображения в портативный формат Anymap, удаление 10 пикселей (-1 -10 )снизу и преобразование обратно во входной формат.

PNG:

pngtopnm input.png | pnmcut -bottom -11 | pnmtopng > output.png

JPEG, качество вывода установлено на 70%:

jpegtopnm input.jpg | pnmcut -bottom -11 | pnmtojpeg --quality=70 > output.jpg

ТИФФ:

tifftopnm input.tiff | pnmcut -bottom -11 | pnmtotiff > output.tiff

Вы поняли идею для других форматов. См. справочные страницы программ для всех параметров выходного формата, таких как сжатие, прозрачность, количество бит на пиксель и т. д.

0
18.03.2021, 23:20

Теги

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