Advertisement
Guest User

imcrop

a guest
Oct 7th, 2015
403
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.59 KB | None | 0 0
  1. #!/usr/bin/zsh
  2. # если у тебя не zsh, то используй bc для вычислений
  3.  
  4. usage() {
  5. #              $1     $2     $3       $4      $5       $6    $7      $8         $9
  6.     cat << EOF
  7.  
  8. usage:
  9.       $1  file   win_w  win_h   start_x start_y   end_x end_y   steps   names_start
  10. как:
  11.       $1  файл   окн_ш  окн_в   начал_х начал_у   кон_х кон_у   шагов   имена_начин
  12.  
  13. например:
  14.       $1 image.png  10   10        0     45        100   50      20
  15.       $1 пикча.jpg  11   12      14.88   7.40      4.20  3.14    200        21
  16.  
  17. флоаты тоже канают, в общем.
  18. осторожно! новые картинки появятся в директории, из которой запущен скрипт
  19.  
  20. если хочешь сгенерировать «стоп-кадр», то просто указывай одно начало и конец
  21.  
  22.  
  23. собрать кино из кадров, с их частотой в 15 штук в секунду можно так:
  24.       ffmpeg -r 15 -i "%03d.png" -c:v h264 paramount_smokes.mp4
  25.  
  26. узнать размер картинки, при установленном imagemagick, опять же:
  27.       identify картинка.png
  28.  
  29. EOF
  30.     exit 0
  31. }
  32.  
  33. if [ $# -lt 8 ]; then usage $0; fi
  34.  
  35. inc_x=$[1.0*($6-$4)/$8]
  36. inc_y=$[1.0*($7-$5)/$8]
  37.  
  38. for i in $(seq 0 $[$8-1]); do
  39.     echo -n "$i "
  40.     nn=$[$9+i]
  41.     x=$[$4+inc_x*i]
  42.     y=$[$5+inc_y*i]
  43.     convert $1 -crop $2x$3+$x+$y +repage $(printf '%03d' $nn).png
  44. done
  45. echo "всё."
  46. sleep 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement