Imagerで画像を加工して、斜めに20℃傾けてみました。

もと画像はこちら

use Imager;

# 写真の読み込み
my $photo = new Imager;
$photo->read(file => $photo_file) or die $photo->errstr;

# 写真を傾ける
$photo = $photo->rotate( degrees => 20 );

# キャンバスとなるオブジェクト
my $canvas = new Imager( xsize => 300, ysize => 350, channels => 4 );

# 写真のリサイズ
$photo = $photo->scale(
    xpixels => 300,
    ypixels => 300,
);

# キャンバスに写真を貼り付け
$canvas->paste(
    src  => $photo,
    left => 0,
    top  => 0,
);

# PNGで書き出し
$canvas->write(file=>'./result.png',type=>'png') or die;

上記コードを実行するとこうなります。

斜めにはなるんですが、四隅が黒くなってしまいました。
透明にするにはアルファチャンネルを有効にしてあげれば良いはずなので、


channel => 4に設定してあげればいいんですが。

略

# 写真の読み込み
my $photo = new Imager;
$photo->read(file => $photo_file) or die $photo->errstr;

# 写真を傾ける
$photo = $photo->rotate( degrees => 20, back => [0,0,0,255] );
$photo->img_set( channel => 4 );

略

実行結果はこうなります
背景はあえて不透明にしてあります(白にすればよかった・・)

なぜか写真が透明になってしまいました・・・
なぜかと言うと元の写真にアルファチャンネルが設定されていないからで、


アルファチャンネルが0(透明)に設定されてしまうせいでした。

これを回避するためにImagerにはconvertというメソッドがあります。

略

# 写真の読み込み
my $photo = new Imager;
$photo->read(file => $photo_file) or die $photo->errstr;

# 写真を傾ける
$photo = $photo->convert( preset => 'addalpha');
$photo = $photo->rotate( degrees => 20, back => [0,0,0,0]);

略

結果はこのとおり

思いどうりになりました。
Imagerは色々画像を加工するメソッドが用意されていていいですね。

vimperatorを起動したときに、.vimperatorrcのエラーとか、プラグインのエラーが一瞬出たりするんですけど、
どうやったら見れるんだろう?と思い悩んでいたら、:messageってコマンドがあるらしい。

2.0pre以降の機能なんですが、これがあるとdebug効率が全然違う。
今さっき知りましたw
vimperaotorはfirefoxをvimライクなキーバインドで操作できるaddonなんですが、
できの良さと拡張性が素晴らしい(*´д`*)ハァハァ
ヒアドキュメントでjavascriptを直に書けるのも良い感じ。

今まで使っていたPluginがどんどん不要になっていきます。

まず入れた直後の見た目にビックリw

vimparator1.png

ナビゲーションバーとか、ブックマークバーとか無くなります。
ステータスバーはvimっぽいターミナル調の表示にw

ページの移動はjkで上下に移動、Gで最下段に、ggで最上段に移動できます。
ブラウザの一番下にはコマンドラインができます。vi系エディタ使ったことある人にはおなじみですね!

URLを開くにはコマンドラインモードでo(openでも可)とtype!

:o [url]

t(tabopenの略)すると新しいtabにページを開きます。

:t [url]

リンクをクリックするにはヒントモードというのがあって、fキーを押すと・・・

vimparator2.png

この通り、リンクにキーが表示されます。対応するキーを押すと、そのリンクにジャンプします。
(デフォルトは数値が振られます)


設定すれば、履歴やブックマークから動的に補完してくれます。
この機能が結構強力かつ、しっくりなじむので、もはや履歴やブックマークが不要になりました。

設定ファイルはホームディレクトリの下に、.vimperatorrcを書くだけ。
便利に使えるように、hで左タブ、lで右タブに移動とかしておくともっと便利です。

最近使い始めたばっかりですが、私の設定はこんな感じ。

"----------------------------------------------------------------------------------------
" 基本設定
"----------------------------------------------------------------------------------------

"ブラウザタイトルの変更
set titlestring=Firefox
"ページ全体で検索語を強調表示
set hlsearch
"ビープ音を鳴らさずビジュアルベルを使用
set visualbell
"ビジュアルベルを無効化
"set visualbellstyle=display:none;
"ヒントのスタイルを指定
"set hintstyle=z-index:5000; font-family:monospace; font-size:12px; color:white; background-color:blue; border-color:ButtonShadow; border-width:0px; border-style:solid; padding:0px 1px 0px 1px; position:absolute;
"ヒント(フォーカス時)のスタイルを指定
"set focusedhintstyle=z-index:5000; font-family:monospace; font-size:12px; color:ButtonText; background-color:ButtonShadow; border-color:ButtonShadow; border-width:1px; border-style:solid; padding:0px 1px 0px 1px; position:absolute;

"----------------------------------------------------------------------------------------
" キーマップ設定
"----------------------------------------------------------------------------------------

"yで選択範囲をコピー
map y :echo 'Yank!'<CR>Y
"j/kの移動量を5倍に
map j 5<C-e>
map k 5<C-y>
"<BS>で「戻る」
map <BS> H
"h/lでタブ移動
map h <C-p>
map l <C-n>
"<S-Left>/<S-Right>で現在のタブの位置変更
map <S-Left>  :tabmove! -1<CR>
map <S-Right> :tabmove! +1<CR>
"補完設定
set wildoptions=auto
set complete=sl


基本設定はまだシンプルです。
実際は、他にもプラグインの設定がいくつかあります。

オススメプラグインは、

autoIgnoreKey.js
gmailとかLivedoorReader独自のキーボードインターフェースがあるサイトで、
vimperatorのショートカットと衝突することがあります。autoIgnoreKeyは、
設定で指定したサイトで、ショートカットを自動的にoffしてくれます。

commandBookmarklet.js
vimperatorからブックマークレットを開くときに使用します。javascript:から始まるブックマークレットを
自動的に取得し、デフォルトではbml + [ブックマーク名]で呼び出せるようにしてくれます。
ちょっとハマリどころなのが、アルファベットは小文字に、数字はけされてしまう事ですね。

proxy.js
プロキシ使うならコレ。proxy [name]でproxy経由にできます。

copy.js
vimperatorで、CopyURL+のように、タイトルとURLをクリップボードにコピーできます。

他にもいろいろプライグインがありますので、色々探してみると良いと思います。





HTTP-MobileAgent-Plugin-Locatorを入れようとしたら、Geo::Coordinates::Converter::iAreaが必要だって注意されたので、G::C::C::iAreaを入れようとしたら、今度はCDB_Fileが必要だとのこと。

最新版のCDB_File-0.96をfreeBSDに入れようと思ったらmakeでこける

cc -c    -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -I/usr/local/include -O    -DVERSION=\"0.96\"  -DXS_VERSION=\"0.96\" -DPIC -fPIC "-I/usr/local/lib/perl5/5.8.6/i386-freebsd/CORE"  -DHASMMAP CDB_File.c
CDB_File.xs: In function `XS_CDB_File_FETCH':
CDB_File.xs:480: syntax error before `dlen'
CDB_File.xs:483: `dlen' undeclared (first use in this function)
CDB_File.xs:483: (Each undeclared identifier is reported only once
CDB_File.xs:483: for each function it appears in.)
*** Error code 1
ちなみにfreeBSDのバージョンは4.11。
どうもハマリそうなんで、CDB_File-0.95に切り替えたら、すんなり入った。
CHANGESみたら

0.96    - Fix for compiling under stricter compilers
なんだよw
じゃあ0.95でいいや。

たまたま見つけたんですが、こんなオサレなスピーカーあるんですねー

ハーマン・インターナショナル JBL SPYRO ホワイト SPYROWCHJ
ハーマンインターナショナル (2006-12-02)
売り上げランキング: 10645
おすすめ度の平均: 4.5
5 超かわいい!
3 あくまでデザインスピーカーです。
5 一言 最高!
4 小さいのに
5 デザインがいいし、セッティングしやすい


ハーマンインターナショナルはいつも奇抜なデザインだけど、これは特にイイね!
これ、花びら方の方がサテライトスピーカーで、
まるこっい奴がサブウーファーになってます。2.1chですね。

インテリアにこだわるなら、いいですね。ヘッドフォンジャックがあればなんでもつなげます。

ちなみに、黒も有りました。個人的には白の方が好きですけど・・。
これの5.1ch版で光デジタル端子対応版が欲しい・・w

ハーマン・インターナショナル JBL SPYRO ブラック SPYROBCHJ
ハーマンインターナショナル (2006-12-02)
売り上げランキング: 43974