gifburst
来自「在EM85XX」· 代码 · 共 76 行
TXT
76 行
#!/usr/bin/perl## Split a GIF image into four or six pieces, dividing in half horizontally# and into halves or thirds vertically. ## The -s option controls the number of pieces. The -p option controls the# amount of overlap (in pixels) at the edges of pieces.# Set to flush on print.$| = 1;require 'getopts.pl';# How many pieces?$split = 4;&Getopts("s:p:");$split = $opt_i if $opt_i;$overlap = $opt_p if $opt_p;$nm=$ARGV[0];print "Bursting image $nm.gif...\n";$stats=`giftext $nm.gif | grep Width | head -n1`;$stats =~ /Width = ([0-9]+), Height = ([0-9]+)/;$width=$1;$height=$2;print "Width is $width, height $height\n";$overlap = 20;if ($split == 6){ $a = int($width / 2) + $overlap; $b = int($width / 2) - $overlap; $c = int($width - 1); $d = int($height / 3) - $overlap; $e = int($height / 3) * 2 - $overlap; $f = int($height / 3) + $overlap; $g = int($height / 3) * 2 + $overlap; $h = int($height - 1); $regions[1] = "0 0 $a $f"; $regions[2] = "0 $d $a $g"; $regions[3] = "0 $e $a $h"; $regions[4] = "$b 0 $c $f"; $regions[5] = "$b $d $c $g"; $regions[6] = "$b $e $c $h";}elsif ($split == 4){ $a = int($width / 2) + $overlap; $b = int($width / 2) - $overlap; $c = int($width - 1); $d = int($height / 2) - $overlap; $e = int($height / 2) + $overlap; $f = int($height - 1); $regions[1] = "0 0 $a $e"; $regions[2] = "0 $d $a $f"; $regions[3] = "$b 0 $c $e"; $regions[4] = "$b $d $c $f";}else{ die("I don't know how to make that many pieces.\n");}for ($i = 1; $i <= $split; $i++){ print "${nm}-${i}: ${regions[$i]}\n"; system("gifclip -i $regions[$i] ${nm}.gif >${nm}-${i}.gif");}print "$nm done\n"
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?