hirax.net::Keywords::「PostScript」のブログ



2004-11-26[n年前へ]

PostScriptによるオブジェクト指向プログラミング 

 PostScriptによるオブジェクト指向プログラミング. 実効例は

GS>らむだくん 、 あなたは男ですか ?そうですが何か?GS>GS>らむだくん 、 性転換しなさい !GS>らむだくん 、 あなたは男ですか ?...今は違いますGS>
シンプルにとても面白い。 from /home/pochi/ChangeLog

2007-07-14[n年前へ]

デッサン技術と画像処理プログラム 

 画像加工サービス "Imagination You Make"の中に含まれている「画像をイラストレーション風に加工するプログラム」は、割に時間をかけて作った。何しろ、Imagination You Make の1機能として、このイラストレーション化プログラムを作ったのではなく、イラストレーション化プログラム用のフロント・エンドとして、(Ruby on Railsの勉強がてら)Imagination You Makeを作ったのだった。Imagination You Makeが出力する解像度ではわからないが、イラストレーション加プログラムの出力はベクトル化処理もされていて、PostScriptとして出力を保存することもできたりする。…その後、Railsで動くサービス側に興味を惹かれたこともあって、「画像処理ジェネレータ・サービス」を作り出す"Imagenerator"を作ってみたりもしたけれど、やはり、本来の「画像をイラストレーション風に加工するプログラム」を作り直す作業は続けている。

 「画像をイラストレーション風に加工するプログラム」の画像処理アルゴリズムを作るために、さまざまな試行錯誤を繰り返した。それと同時に、デッサンやイラストレーションや油絵や似顔絵書きなど、絵画に関するテキストを結構読んだ。「イラストレーション風に加工する」するために、「イラストレーション」がどういうもので、どういう風にすれば描けるようになるかをたくさんのテキストから学ぼうとした。

 いろいろ実験してみて、普通 人物画や肖像画を描くときは、写真撮影ではないのですから、陰影とか明暗といったようなことは、あまり考えないでいいと気づきました。 安野光雅 「絵の教室」
 そういう絵画の教科書を読んでみた結果、試行錯誤の結果として作られた画像処理アルゴリズムが、デッサンやイラストのテキストに載っている「描き方」と瓜二つになっていることも多かった。これが、とても新鮮だった。処理アルゴリズムに正解なんてないだろうが、「そう悪くない答え」をプログラミングすることができたように感じ、楽しく気持ちの良い感覚だった。

2010-01-05[n年前へ]

17年前のプログラム・ミステリの解答編 

 PostScriptはプログラミング言語である。あまりにも、当たり前のことだが、それを意識したのは、1993に開催された『第1回国際邪悪なPostScriptコンテスト(1st International Obfuscated PostScript Contest)』でBest Artwork賞を受賞した、PostScriptでRay Tracingを見た時です。このPostScriptコード(PostScript,PDF)は、右上のような”いかにもレイ・トレーシング”画像を描く。この画像を描きだすPostScriptコードは、信じられないかもしれませんが、小さな小さな( 下記の)のプログラミングコードなのです。

%!IOPSC-1993 %%Creator: HAYAKAWA Takashi 
/C/neg/d/mul/R/rlineto/E/exp/H{{cvx def}repeat}def/T/dup/g/gt/r/roll/J/ifelse 8
H/A/copy(z&v4QX&93r9AxYQOZomQalxS2w!!O&vMYa43d6r93rMYvx2dca!D&cjSnjSnjjS3o!v&6A
X&55SAxM1CD7AjYxTTd62rmxCnTdSST0g&12wECST!&!J0g&D1!&xM0!J0g!l&544dC2Ac96ra!m&3A
F&&vGoGSnCT0g&wDmlvGoS8wpn6wpS2wTCpS1Sd7ov7Uk7o4Qkdw!&Mvlx1S7oZES3w!J!J!Q&7185d
Z&lx1CS9d9nE4!k&X&MY7!&1!J!x&jdnjdS3odS!N&mmx1C2wEc!G&150Nx4!n&2o!j&43r!U&0777d
]&2AY2A776ddT4oS3oSnMVC00VV0RRR45E42063rNz&v7UX&UOzF!F!J![&44ETCnVn!a&1CDN!Y&0M
V1c&j2AYdjmMdjjd!o&1r!M){( )T 0 4 3 r put T(/)g{T(9)g{cvn}{cvi}J}{($)g{[}{]}J}J
cvx}forall/moveto/p/floor/w/div/S/add 29 H[{[{]setgray fill}for Y}for showpage
 上記のPSファイルをPDFにしたPDFファイルを開けば、あなたがあなたのコンピュータを使って、PostScriptプログラムを実行させ、その結果をグラフィカルに眺めることができます。あるいは、(内容をテキストファイルとして保存し、拡張子を.psにした)PostScriptファイルをPhotoshopなどのPostScriptコードを解釈できるアプリケーションで開けば、その結果をやはり目に見える形で眺めることになるのです。

 「これがコード(のすべて)です。 PostScriptが好きな人は頑張って解読してください」という、作者の小気味良くも挑戦的なフレーズに刺激され、何度か読解しようとしたことがあります、けれど、いつも時間がただ経つばかりで途中で挫折してしまったように思います。

 今日、「Tiny_RayTracing.ps を読んでみた」を読みました。

 Obfuscated PostScript Contest 1993 の BEST OBFUSCATED ARTWORK で 1 位に選ばれた早川たかし氏の Tiny_RayTracing.ps を読んでみました。
 単純な命令を元の名前に直し、コメントを加えてみました。
 そして、ようやく、上記のPostScriptがどのような動作をしているかを、納得することができたのです。”レイ・トレーシング”と言えば”レイ・トレーシング”だけれども、もしかしたら、”レイ・トレーシング”風といった方が良いかもしれない割り切った実装の仕方・その工程を納得することができました。

 こういったもの、元のPostScriptコード記述や、それを読みとる解説を眺めていると、またしても、アントニオ猪木の「元気ですかーっ! 元気があればーっ!何でもできるーっ!」という言葉が、頭の中でパワープレイされるような心地にさせられます。

十六年前のプログラム・ミステリの解答編








■Powered by yagm.net