MacOSX10.3のコマンドラインで、特定ファイルサイズ以内に納めるように圧縮率を変更して保存するスクリプト(手抜き)
DTP駆け込み寺:市販の一括圧縮ソフト [gande.co.jp]
で、フリーソフト使っちゃだめって言う要件なので、Mac OS X だけで作ってみたけど、すごい手抜き。
#!/usr/bin/perl
# fllename: jpegsizelimit.pl
# usage: perl jpegsizelimit.pl hoge.jpg
my $target_size = 1024 * 1024; # 1MB
open (FH,"<table.txt"); # あらかじめtable.txtていう
# 圧縮比ルックアップテーブルを
# 用意しておいてね
while(<FH>) {
chomp; # 改行コードをチョップしとくよ。
($a,$b) =split("\t",$_); # タブ区切り。
$table[$a] = $b; # 配列に入れる。
}
$filename = shift @ARGV; # コマンドラインから1つしか引数とらないよ
$tempfile = "temp.jpg"; # カレントディレクトリに
# temp.jpgとるという極悪仕様です。
# fie::temp 使えばいいのにね。
system("sips -s format jpeg -s formatOptions 100 $filename --out $tempfile");
$max_size = -s $tempfile;
$target_ratio = $target_size/$max_size;
for ( $i = 0; $i<101; ++$i) { # 圧縮率テーブル探索。
if ($table[$i] > $target_ratio) {
last;
}
}
$target_value = $i-1; # ここで、sipsに入れる圧縮のパラメタが決まるよ!
system("sips -s format jpeg -s formatOptions $target_value $filename --out new_$filename");
# 頭にnew_をつけた適切な圧縮率になっている
# と思われるJPEG 生成するよ。
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/19018/9199430
この記事へのトラックバック一覧です: MacOSX10.3のコマンドラインで、特定ファイルサイズ以内に納めるように圧縮率を変更して保存するスクリプト(手抜き):
コメント
perlは、立派なフリーソフトでしょ。OSに同梱されてるからといって、同じだと思いますけど。OSに入ってる物はOKで、ダウンロードした物はNG??
パッケージになってればいいというなら、フリーソフトを集めたCDを販売している物はOKか?
要は、市販かどうかなどという馬鹿げた基準ではなく、きちんと自分で評価して使える物は使うという姿勢が欲しいな..と。
市販だって、責任は取りませんから、、オーダーメードでない限り、市販・フリーは(責任という観点からは)同じレベルです。
(安心してる分、市販の方が罪は重いか)
ソフトの質という点からは、色々とありますが。そこは、プログラマの質次第。
投稿者: ron. (2006/03/22 9:32:46)
追伸
せっかく書いても、フリーのスクリプトでは使ってもらえません。
有償(¥50,000)とかすると、使ってもらえるかもしれません^^
投稿者: ron. (2006/03/22 9:34:01)
一番最初の投稿の雰囲気からすると、OS にビルトインのものはセーフな気がしたんですけどねー
プライバシーマークや ISMS 対策でフリーソフト禁止という社内ルール作ってしまうと、こういうときやっかいですね。でも、フリーソフトを検査なしでインストールしていると不適合になるという罠。
投稿者: CL (2006/03/22 14:03:40)






![森田 創: WEB+DB PRESS 総集編 [Vol.1~60]](http://ecx.images-amazon.com/images/I/51aE58LxWlL._SL75_.jpg)
















![: 電子ルーペ ViewPe[ビューペ] 3R-MSV35 マイクロスコープ デジタル顕微鏡 高機能 低価格 読書 植物 研究 肌チェック](http://ecx.images-amazon.com/images/I/41erkiQgAsL._SL75_.jpg)





![: Optimus bright [docomo L-07C] 対応 予備バッテリー 1500mAh BL-44JN](http://ecx.images-amazon.com/images/I/41gjqsDjq%2BL._SL75_.jpg)










![: パンツの穴 [DVD]](http://ecx.images-amazon.com/images/I/21R9SEY1HPL._SL75_.jpg)

















