ubuntu Linuxにnetpbmをインストールして画像→AA変換をしてみる
(2009年8月31日)
netpbmとは画像変換などを行うオープンソースのライブラリパッケージです。
あるAという画像形式からあるBという画像形式に変換したり、画像からAA(アスキーアート)、AAから画像などもできます。
今回、このnetpbmをubuntuにインストールして、画像→AA変換のテストをしてみたのでメモ書きです。
あるAという画像形式からあるBという画像形式に変換したり、画像からAA(アスキーアート)、AAから画像などもできます。
今回、このnetpbmをubuntuにインストールして、画像→AA変換のテストをしてみたのでメモ書きです。
(*netpbmはオープンソースで移植性が高いのでunixライクなOSだけじゃなくてwindows,MacなどのOSでも動作するに開発されています。)
まず、ubuntuにはデフォルトでnetpbmは入っていないのでapt-getでインストールします。
$ sudo apt-get install netpbm [sudo] password for hogeUser: パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の特別パッケージがインストールされます: libnetpbm10 以下のパッケージが新たにインストールされます: libnetpbm10 netpbm アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 0 個。 1257kB のアーカイブを取得する必要があります。 この操作後に追加で 4850kB のディスク容量が消費されます。 続行しますか [Y/n]? y 取得:1 http://jp.archive.ubuntu.com intrepid/main libnetpbm10 2:10.0-12 [66.2kB] 取得:2 http://jp.archive.ubuntu.com intrepid/main netpbm 2:10.0-12 [1191kB] 1257kB を 1s で取得しました (840kB/s) 未選択パッケージ libnetpbm10 を選択しています。 (データベースを読み込んでいます ... 現在 154784 個のファイルとディレクトリがインストールされています。) (.../libnetpbm10_2%3a10.0-12_i386.deb から) libnetpbm10 を展開しています... 未選択パッケージ netpbm を選択しています。 (.../netpbm_2%3a10.0-12_i386.deb から) netpbm を展開しています... Processing triggers for man-db ... libnetpbm10 (2:10.0-12) を設定しています ... netpbm (2:10.0-12) を設定しています ... Processing triggers for libc6 ... ldconfig deferred processing now taking place
これでインストールは完了しました。
テストとして下のコマンドを実行してみます。
hoge.gifという画像ファイルをAAに変換してhoge.asciiというファイルに出力しています。
テストとして下のコマンドを実行してみます。
hoge.gifという画像ファイルをAAに変換してhoge.asciiというファイルに出力しています。
$ giftopnm hoeg.gif | ppmtopgm | pgmtopbm | pbmtoascii -2x4 > hoge.ascii
このコマンドの簡単な説明しますと、giftopnmコマンドでgifファイルをpnmフォーマットに変換し、その結果をパイプでppmtopgmコマンドに渡しpgmフォーマットに変換、同様にしてpbmフォーマット、asciiフォーマットに変換し、> hoge.asciiでファイル出力しています。
pbmtoasciiコマンドの引数「-2x4」は出力のサイズを変更するためです。デフォルトだと大き過ぎるので小さくしています。
このようにあるフォーマットをあるフォーマットに変換し、パイプで渡しながら自分の希望のフォーマットに変換していくのです。
pbmtoasciiコマンドの引数「-2x4」は出力のサイズを変更するためです。デフォルトだと大き過ぎるので小さくしています。
このようにあるフォーマットをあるフォーマットに変換し、パイプで渡しながら自分の希望のフォーマットに変換していくのです。