Вы также можете быть заинтересованы в , как сделать прядильщик :
Конечно!
i=1 sp="/-\|" echo -n ' ' while true do printf "\b${sp:i++%${#sp}:1}" done
Каждый раз, когда цикл повторяется, он отображает следующий символ в строке sp, оборачиваясь по мере достижения конца. (i - позиция отображаемого текущего символа, а $ {# sp} - длина строки sp).
Строка \ b заменяется символом «возврат». Или вы можете поиграть с \ r, чтобы вернуться к началу строки.
Если вы хотите, чтобы это замедлилось, поместите команду сна в цикл (после printf).
Эквивалентом POSIX будет:
sp='/-\|' printf ' ' while true; do printf '\b%.1s' "$sp" sp=${sp#?}${sp%???} done
Если у вас уже есть цикл, который выполняет много работы, вы можете вызвать следующую функцию в начале каждой итерации для обновления счетчика:
sp="/-\|" sc=0 spin() { printf "\b${sp:sc++:1}" ((sc==${#sp})) && sc=0 } endspin() { printf "\r%s\n" "$@" } until work_done; do spin some_work ... done endspin
Это просто, если вы используете командную строку imagemagic.
http://www.imagemagick.org/script/convert.php
Используйте "-sepia-tone threshold" аргумент при преобразовании.
Как ни странно, PerlMagick API, похоже, не включает метод для этого напрямую:
http://www.imagemagick.org/script/perl-magick.php
. ..и никаких ссылок на какой-либо метод сепии.
Взгляните на то, как он реализован в библиотеке Aforge.Net, код C # здесь .
Основы, кажется,
Полный ALLOGITHM находится в исходном коде, а также RGB -> Yiq и Yiq -> Преобразования RGB объяснены.