В операционных системах есть такая штука, как планирощик задачь. Многозадачность довольна илюзорная - на самом деле все выполняется последовательно( спасибо КЕП). Самый простейший планирощик задач основан на приоритетах - то есть каждому процессу присваивается приоритет, на их основе выделяется кванты времени на выполнения, и последовательность. При этом возникает проблема, что малоприоритетные задачи могут никогда не быть выполненны. Так вот не кажется вам,что частенько человек работает именно по такому принципу. Да-да...А у еще вот у него бывает такое, видя задачу уже поставил ее в начало списка...ему так влом начинать ее делать...она ж большая...хочеться ее разбить. Короче не хочеться даже начинать...Ну вообщем тупик, потому сначала делаем самое пишем самое незначительно, что надо было написать...Я вот написал скрипт, который все картинки ресайзит с задаными параметрами и складует ее в папку..
#!/usr/bin/perl
use GD;
my $PERCENT=shift;#насколько процентов уменьшить картинку
my $PROC_DIR=shift;#куда сложить копии
use File::Find;
mkdir($PROC_DIR);
finddepth(\&wanted, ("./") );
exit(0);
sub wanted{
my $tmp=lc $_;
return unless($tmp=~/([\d]+)\.(png)$|([\d]+)\.(jpeg)$|([\d]+)\.(jpg)$|([\d]+)\.(gif)$/);
resize_save2thumbs($_);
}
sub resize_save2thumbs{
my ($image,$image_save)=@_;
my $thumb_img=GD::Image->new($image) or die $!;
my ($width,$height) = $thumb_img->getBounds();
my $new_height=($height/100)*$PERCENT;
my $kow=$new_height/$height;
my $new_width=$width*$kow;
my $new_thumb_img=GD::Image->new($new_width,$new_height);
$new_thumb_img->copyResampled($thumb_img,0,0, 0,0,$new_width,$new_height,$width,$height);
my $jpg_data = $new_thumb_img->jpeg;
open(FL,">$PROC_DIR$image".'.jpg') or die $!;
print FL $jpg_data;
close(FL);
}
4 комментария:
Отправить комментарий