PostScript::Simpleで楕円を書く

PostScript::Simpleには楕円を描くためのメソッドは用意されていません。
そのため、自力で書く必要があります。

コツは楕円の中心へtranslateして、そこを中心にscaleします。
用意されているcircleメソッドで円を書いて、
scaleを元に戻して、translateも元に戻します。
これで元の座標軸に戻ります。

# 楕円のサイズ
my $width  = 100;
my $height = 50;

# 横幅を基準に描画する
$ps -> {'pspages'} .= sprintf( "%d %d translate\n", $width, $height );
$ps -> {'pspages'} .= sprintf( "1 %.2f scale\n", $height / $width );
$ps -> circle( 0, 0, $width );
$ps -> {'pspages'} .= sprintf( "1 1 %.2f div scale\n", $height / $width );
$ps -> {'pspages'} .= sprintf( "-%d -%d translate\n", $width, $height );

movetoとの使い分けが難しいですね。
楕円のときだけtranslateなのかな?

ブログパーツが悲惨な事に

このサイトでも使っているWCG用ブログパーツですが、
スタイルシートのfloatの影響なのか縦にびょ~~~んと伸びてしまいますね。

公開当時より環境も変わってきているし、
また何らかの手入れが必要なのかもしれません。
といっても、まだ時間があまり取れませんが。

flashもいいなぁ・・・

PHP:GDでPNG画像を作る

GDはイメージリソースを作ると、黒で塗りつぶすという余計な事をやってくれます。
そのため、まず間違いなく塗りなおす作業が必要です。
ちなみに、ImageMagickやPerlMagickでは xc:none で透明なキャンバスを作れます。

$image = imagecreatetruecolor( $width, $height ); // イメージリソースを作成
imagealphablending( $image, false ); // アルファブレンディングを無効(謎)
imageSaveAlpha( $image, true ); // アルファチャンネルを有効(謎)
$transparent = imagecolorallocatealpha( $image, 0, 0, 0, 127 ); // 透明度を持つ色を作成
imagefill( $image, 0, 0, $transparent ); // 塗りつぶす


以下のように、透明色だけを設定した場合、
その画像自体では透明になるけれど、他の画像と合成すると透過しなくなる。

// 透明色を灰色に設定(灰色が無い前提)
$transparent = imagecolorallocate( $image, 127, 127, 127 );
ImageColorTransparent( $image, $transparent );

Google Chromeを使ってみた

作りはシンプル。
操作もシンプル。
スタイルシートもJavaScriptも問題なし。

ただ、機能的に物足りない感じがある。
あとは、他のGoogleとの連携かな。
Analyticeとか、Adsenseとか、
ログインしてたら、自動的に結果が表示されたりするとうれしいかも。
でも、ぜひ使いたいとはあまり思えなかったかも。

それはバックスラッシュ(\)か円記号(¥)か

Windowsで作業するには問題はおきませんが、
別のOSやUTF-8コードのアプリケーションで使用すると、
とたんに牙をむくのがバックスラッシュ。このCMSでもそうですね。

コードで書くとバックスラッシュは\x5c
円マークは\xc2\xa5

ファイルやDBへの保存はそのままでもいいですが、
表示させるときに絶対に¥でなければ困る場合は置換するのを忘れないように。

s/\x5c/\xc2\xa5/g;

ちなみに、JavaScriptで表示を切り替えたりする場合、
codeタグで囲んでいると、\x5cのままでも円記号になることがある不思議。
このWordPressの編集において「ビジュアル」では円記号だけど、
保存して表示するとバックスラッシュに戻る。