2004-02-06[n年前へ]
■PDLSバージョンアップ
PhotoshopのプラグインをC言語などで簡単に作成することのできる環境のPDLSをバージョンアップしてみました。今回の変更点は、
(1) 「作業過程を記録したマクロ」内で変数(定数)宣言を使うことができるようにし、マクロを関数(DLL作成関数と同様にパラメータを外部から指定することができる)として使うことができるようにした
(2) マクロからマクロ(関数化されたものも、あるいは、されていないものも)を呼び出せるようにした
(3) 関数化されたマクロをGUIから実行時する際にはパラメータ選択ダイアログを出して、マクロ内で定義された変数の値を実行時に自由に変えられるようにした。すなわち、DLLとして作成した機能拡張と同様にマクロで作成した機能拡張関数においてもユーザーインタフェースが使えるようになった
というところです。
Photoshopを使いつつ、画像処理のプログラミングを簡単にやってみたい方は使ってみるのも面白いかもしれません。また、比較的大きなサイズの二次元データ(画像)を扱う機会が多い方でしたら、とりあえず鳥瞰図プラグインやセル表示プラグインを使うためだけに使ってみても、意外に便利で重宝するんじゃないかと思います。
また、FilterFactoryなどとは違って、16bitのCMYKモードやLabモードでも使うことができるので、そういったモードで数式処理プラグインでも使って、FilterFactoryっぽく使ってみるのも意外に面白いかもしれません。
ちなみに、動作環境はPhotoshop6.0以降で、CS(8.0)でも動作確認済みです。
2004-04-09[n年前へ]
■ATOK用perl機能追加プラグイン
ATOKの変換機能を使ってperlのコマンドを使うことができる「ATOK用perl機能追加プラグイン」を作ってみました。これは、以前作ったATOK用コマンドライン機能追加プラグインを機能縮小・変更したものです。動作するためには、ATOKとperlがWindowsにインストールされている必要があります。
このソフトウェアを使うと、ATOK上で半角英数で入力中に、例えば
print sin(3)/5と入力して、「AMET変換」をすると、
0.0282240016119734と出力されますし、
system(calc)なんて入力・変換すると計算機が起動します。ちなみに、クリップボードにテキスト形式のデータが入っていれば、その内容に対して処理をすることができます。つまり、テキストデータの羅列がクリップボードにコピーされている状態で、
while(<>){print $_;}なんて入力・変換すると、クリップボードの中身がそのまま出力されるわけです。もちろん、その内容に何かの処理をするのも当然アリでしょう。例えば、エディタで作業中に「全選択」「コピー」して、perlのコマンドで全体に処理をかける、なんていうことも朝飯前です。
ちなみに、出力結果が長く(200文字程度以上に)なるときには末尾に"&"を付けて下さい。また、ATOK数式処理プラグインと同じように、末尾に"="をつけると入力内容も表示されます。その場合、
print sin(3)/5=と入力すると、
print sin(3)/5 = 0.0282240016119734と変換・出力されます。
というわけで、これからATOKとperlとこのプラグインさえあれば、どんなソフトもperlの機能が利用できるわけです。正規表現を利用した処理でも数値計算でもなんでもござれ、というわけです。AMETを使ったことがない人は、AMET変換をワンアクションでできるようにしておくようにした方が良いでしょう。
ちなみに、これは、一言で言ってしまうとperlのワンライナーが使えるようにする機能拡張ということになりますが、もしかしたら今後、履歴保存もできるようにするかもしれません。詳しくは、日曜日にでも書くと思います。とりあえず、ATOKユーザーでperl好きな人には便利かも。周りの人をちょっとビックリさせ自慢してみるためダケにでも、いかがでしょうか?
2004-04-27[n年前へ]
■去年見た「水面に映った景色」
LIMG /diary_image/2003042701.jpg r /diary_image/2003042701s.jpg 「モンゴルに行こうか、トルコに行こうか、それとも中国・メキシコ・タイの田舎に行こうか。とにかく日本を出て新しい世界に行きたい」という加奈陀人。彼女の手首を見せられたのは何時だっただろうか。
彼女の状態は良くない、と見ていて思う。とても哀しいとは思う。けれど、何を選んでもその人自身の選択なんだろうとも私は思う。選択肢によっては、それはとても哀しいとは思うけれど。だけど、その人自身の選択なんだろうと、そういう人を見慣れてしまったせいなのかそう思ってる。
2004-05-07[n年前へ]
■祝!初のライトユーザー応募 編
Ametumultiのライトユーザー募集をしてみても…。ATOKユーザー自体が少ないのか、Windows上でATOKを使っていてEmacsなんて使わないライト・ユーザだけどスクリプト言語を使いたい人なんてそもそも存在しない(可能性高し)のか、と悩む今日この頃です。
しかし、初のライトユーザー応募がありました。私の中の「オレ定義」ではWindows上でATOKを使っているライト・ユーザがRubyを使ったりはしないような気がするのですが、何はともあれありがたいことです。いや、そもそも不親切の作りっぱなし放置プレイばかりの私ですが、よろしくお願いいたします。
> Windows上でATOKを使っているライト・ユーザです。> 「ATOKを使ってて、ATOKから便利ソフトを使ってみたい> 初心者(ライトユーザ)さん」を募集、> の成り行きを興味深く見ていたのですが、誰も名乗りを上げないようなので、> 私で良ければ、ぜひとも手も足もリードして頂きたく思います。私の中の「オレ定義」ではWindows上でATOKを使っているライト・ユーザがRubyを使ったりはしないような気がする(それをいったら一体どんな人が使うというのか…)のですが、ぜひよろしくお願いいたします。むしろ逆にリードして頂きたいです。> AmetMultiへの希望です。> 1. UseCtrlCが欲しい。> 2. 変数に値を渡す方法が改良されて欲しい。> 3. 「こんな風に使いたい」> 1. UseCtrlCが欲しい。> コピー機能があると便利だと思います。> http://opal.s8.xrea.com/tmp/linenum.swf.html> を見て頂けるでしょうか。以下の流れになっています。> 1. 加工したい箇所を選択> 2. Ctrl-Cで選択範囲をクリップボードにコピー> 3. "linenum"入力> 4. Ctrl-9で、設定したAmetMultiを呼び出す> 5. 選択範囲が、AmetMultiの出力に置き換わる> この2の操作を、4に入れられたら楽だ、> 次のように書きたい、ということなのです。> linenum> UseCtrlC;while gets;printf %Q(%2d:%s),$.,$_;end;UseCtrlV> #IME入力前の動作はAmetの範囲外ですかね? うぅ、それは普通に考えるとATOKの範囲外でしょうが、上手い抜け道はないものでしょうかねぇ…。> 2. 変数に値を渡す方法が改良されて欲しい。> +> $param=%Q(> > );while gets;print %Q(#{$param}#{$_});end;UseCtrlV -< $param=%Q(> >> );while gets;print $_.sub(/^#{$param}/,'');end;UseCtrlV> と、ruby用CONFIG.TXTにコメントイン・アウトを書きました。> 今は+と-<>でイン・アウトを設定していますが、> +と-で書ければすっきりします。どうも、> -> $param=%Q(> > );while gets;print $_.sub(/^#{$param}/,'');end;UseCtrlV> と書くと、+のが先にひっかかってしまうようですね。確かに今は単なる置換ルールでやってますから、現状ではそういう動作になってしまいますね。AtokMulti自身の「辞書ファイル(CONFIG.TXT)」をどう変えようかは結構(いえホントはたまに)思案しているところです。CONFIG.TXTによる単純置換でなくて、1. ATOKから受け取った内容をRubyなりPerlなりで処理する2. さらにその内容をスクリプトとして処理するなんていう風にしてみましょうか。これなら、私には手抜きで楽そうですから。とはいえ、これまた魔の巣窟になるでしょうし…。> 3. 「こんな風に使いたい」> googleイメージ検索と連携しましょう。> 一枚だけでなく、何枚も取得できればなお楽しです。これはぜひやってみたいですよねぇ。複数画像の貼り付け方をちょっと考えてみます。実は「一発芸編」の時にデモ用のアプリとして、一枚だけ画像をGoogleから入手するアプリはGuruguru Imagehttp://hirax.net/dekirukana5/googleimage/index.htmlをテキトーに変えて作っておいたのです。ただ、話が散漫になりそうだったので、話の中では触れませんでした。とりあえずそれを添付させておきましょうか。
2004-05-22[n年前へ]
■フォント解析で消された文字を復元
米国防省のメモ中の検閲により消された文字を、
1.消された単語の幅を推定
2.フォントの種類を考慮して(その単語の幅になる)文字の組み合わせを調べだす3.妥当な単語・名称を選択することで消された文字を復元したというNatueの記事。