Swimming
Walking
J-POP
Blog Customize - menu

画像最適化スクリプト3

2020-06-24

Windows PC スクリプト



画像最適化スクリプトの最終形態というか、
画像最適化スクリプト2は画像をそのままの大きさで「JPG最適化」しますが、画像最適化スクリプト3は「JPG最適化」+「縦横サイズ」を縮小します。


関連記事:



Downloadサイトのかなり下の方の「Windows Binary Release」で
Wondows 64bit の 2020.6.24 現在で最新版の
ImageMagick-7.0.10-21-Q16-HDRI-x64-dll.exe をダウンロードしてインストールしてください。
インストールフォルダ内の magick.exeのパスを各自メモして
【magick.exeのパス】を各々の環境で書き換えてください。

下記のコード内の「700x700」の意味はアスペクト比を変えずに幅、高さの最大値を700以下に縮小するということです。
なので、「700x700」の部分を自分が縮小しようとする「幅x高さ」に変えてください。
(「700x700>」の「>」を調べるのに苦労しました。)

で、先日のコードを修正。


== sample3.js - BEGIN =====================


var WsArg = WScript.Arguments;
if ( WsArg.Count() == 0 ) WScript.Quit();
var fs = new ActiveXObject( "Scripting.FileSystemObject" );
var ws = new ActiveXObject("WScript.Shell");

var infiles = "";
for (i = 0; i < WsArg.Count(); i++) {
    var infile = WsArg(i);
    var ext = fs.GetExtensionName(infile);
    var infile2 = infile.replace(ext, "jpg");
    if (ext.match(/(jpg)/i)) {
        infiles = infiles + " \"" + infile + "\"";
    } else if (ext.match(/(jpeg)/i)) {
        fs.MoveFile(infile, infile2);
        infiles = infiles + " \"" + infile2 + "\"";
    } else if (ext.match(/(png)|(bmp)|(webp)/i)) {
        var op = "\"" + infile + "\" /convert=\"" + infile2 + "\"";
        var app  = 【i_view64.exeのパス】;
        ws.run(app + " " + op, 0, true);
        infiles = infiles + " \"" + infile2 + "\"";
    }
}


// ↓ここから

// 注意事項:
// 出力ファイル名は元の画像ファイルパスで aaa-0.jpg~aaa-n.jpg (nは整数)になります。
// 複数ファイルを選択して jsファイルにドロップしたときの引き渡される引数の順序は、
// ドラッグや右クリック時に、マウスポイントしたファイルが先頭で、残りは選択ファイルの並びで続きの順序なので
// マウスポイントを選択ファイルの先頭ファイルにして、そこからドラッグや右クリックをすると
// ファイル名 ( aaa-n.jpg ) の順番がくずれない。

var app2 = 【magick.exeのパス】;
var outfile = "\"" + fs.GetParentFolderName(WsArg(0)) + "\\aaa.jpg\"";
// 画像リサイズ(長辺を指定された縦横幅で収まるように調整。アスペクト比保持)・アンシャープ
// 下のコード内の「700x700」の部分を自分が縮小しようとする「幅x高さ」に変えてください。
var op2 = " convert " + infiles + " -resize 700x700> -unsharp 1.5x1+0.7+0.02 " + outfile;
ws.run(app2 + op2, 0, true);			// 非表示、appの終了を待つ

// ↑ここまで追記



var app1  = 【jpegoptim.exeのパス】;
var op1 = infiles + " -q --strip-all --max=85 --all-progressive";
ws.run(app1 + " " + op1, 0, true);

ws = null;
fs = null; 

== sample3.js - END ======================


使い方は同じで画像ファイルをドロップするだけ。

Imagemagick のアンシャープはかなりいいとおもいます。

私は上記の option で非常に気に入ってますが、各自パラメータを調節してください。


※ 自己責任にてご使用お願いします。



プロフィール


ryo

現役時代のスタイル・ワンは平泳ぎでした。 ...が、マスターズで入賞できないので バタフライ長距離(200m)に仕方なく挑んでいます。

このブログを検索

@TCOM

このブログで人気の投稿

コロナワクチン接種(ファイザー2回目)

QooQ

TOP