2004-06-07[n年前へ]
■Photoshop PDLSプラグインの説明資料と最新版
先週、「画像技術を扱うPhotoshopを使う人ならPDLSを使わないのは絶対に損をしてると思う」と画像技術を扱う会合の場で言ってしまった手前、Photoshopプラグイン環境 PDLSの説明資料とPDLSの最新版を置き直しておきます。ぜひ、(これまでの古いバージョンではなくて)最新版をダウンロードし直して、使ってみて下さい。
もちろん、自分でプラグインを作るのもお勧めです。GUIを作るのがメンドクサイ、という人にもPDLSが自動でパラメータ入力ダイアログなんかは生成してくれますし、ね。
そうそう、関係ありませんが、シミュレーションの発表資料の中でいかにもエクセルで作った三次元鳥瞰図を使っているのって何だか少し違和感があるような気がしませんか?
2004-08-07[n年前へ]
■メモリ管理機能追加
Photoshopのプラグインを「通常のDLLを作るのと同じやりかた」で簡易に作成できるPDLSをバージョンアップ(9.6MB)しました。また、導入資料も少しだけ追記しました。添付プラグインも若干バージョンアップしたり、追加したりしています。右の画像はSurfaceplotGLプラグイン処理画面です。
今回のバージョンアップでの大きな変更点は「New」「Delete」プラグインを追加し、「メモリ管理機能」を追加したことです。処理対象画像のサイズをフィルタ内で変更しつつ処理をしたり、マクロ内(もしくはマクロで作成した関数内)のみで有効なローカルメモリを(元処理対象画像と組み合わせながら)確保し、画像処理対象をそのローカルメモリに変更したり、ということができるようになります。例えば、マクロで(もちろんGUIからでも)
Def{FrameFile=C:\hoege.bmp}New{ // 左上端から128,128ピクセルの位置を原点として // 256*256のサイズ1チャンネル分を流用しながら // 新たなチャンネルを1チャンネル作成して、処理対象 // とする}LoadFromFile{ SourceFile=FrameFile // 新しく作成したチャンネルにファイルを読み込む // プリクラ処理のフレームとして使う}Impose{ // チャンネル間で合成処理をおこなって、プリクラ風の // 処理をする}Delete{ //メモリ解放して、 // プリクラ処理のフレームとして使ったエリアを捨てる}なんていう風に使ったりできるわけです。GUIから自動作成されたマクロ内で自由にメモリを確保・解放できるため、DLLとしてC言語などから作成したDLLと同様に、マクロで作成した関数を「それのみで閉じた完結した処理」として再利用することが容易になります。
Photoshop等が仕事に欠かせなかったり、画像に限らず二次元の比較的大きなデータを処理したかったりする方はきっと重宝するのではないか、と思います。単にSurfaceplot等のプラグインを使ってみるだけでも良いでしょうし、C言語をほとんど知らない人でも、数分でPhotoshopのプラグインを量産できるのもお勧めなポイントです。ドキュメントが不足しているのはいつもの通りですが、使ってみたい方がある程度いるようでしたら、いっそのこと直接デモする説明会開催もアリですし。
ちなみに、Adobe Photoshop 6.0以降、 Photoshop Elements, PaintShop Proでの動作を確認しています。
2004-09-21[n年前へ]
■量子計算機の回路シミュレータ(Windows用)
量子計算機の回路シミュレータ(Windows用)のQCAD GUI environment for Quantum Computer Simulator. 量子計算機の回路を作り、作成した回路をシミュレートできる。
2004-10-08[n年前へ]
■wxWidgets でクロスプラットフォーム GUIアプリを作ろう
wxWidgets でクロスプラットフォーム GUIアプリを作ろう。UNIX USER誌 2004年8月号 に掲載された高林哲氏による記事の元原稿。
2004-12-02[n年前へ]
■WindowsのCUI版zphoto
WindowsのCUI版zphotoが欲しい、という話題。以前は、Windows版もCUIのみだったが、今ではGUI版のみのバイナリが配布されている。そこで、マウスを使いたくない時、だけどコンパイル作業がメンドクサイ時に作ったスクリプトがこれ。あぁ、なんて強引。「マウスは使ってない(あくまで私は)」という強引さ。
use Win32::GuiTest qw( FindWindowLike GetWindowText SetForegroundWindow MouseMoveAbsPix SendMouse GetWindowRect SendKeys);
my $pid = fork;
die unless defined $pid;
if($pid) { sleep 1;
@windows = FindWindowLike(0, "フォトアルバムを作成");
foreach my $win (@windows) { SetForegroundWindow($win);
SendKeys("{ENTER} {TAB}{ENTER}{ENTER}");
} for(my $i = 0;
$i < 61;
$i++){ @windows = FindWindowLike(0, "フォトアルバムが作成されました");
if(@windows > 0){ last;
} else{ sleep 1;
} if($i == 60){ &error("Time Out!");
exit;
} }foreach my $win (@windows){ SetForegroundWindow($win);
SendKeys("{TAB}{ENTER}%{F4}");
} exit;
}system("\"$zphoto\" -o \"$SwfPath\" --photo-width=800 --gamma 1.25 --title \"ppt2zphoto\" $Slides");
exit;