— boreal-kiss.com

Archive
2008年4月 Monthly archive

ブログリニューアル中。アクセスできないページ等あるかもしれません。しばしお待ちを。

Read More

FC2ブログ専用でこんなかんじ(黒ベースと白ベースの二種類)。今見てみたらなかなか好調にダウンロードされてる様子。テンプレート設定するのめんどくせーとか言わずにまあ使ってみてよ。隠れキャラのスライムも出てるから。

[関連リンク]
ブログテンプレート / ブログでレベルアップ (テンプレート詳細)
ハムカツサンド狂想曲 (テンプレートのプレビュー可)

Read More

web閲覧時リアルタイムにTumblrにスクラップできる方法はないかと探していたら、Firefoxのプラグインに便利なのがあった。Tumblr限定っていうのがシンプルでいいかんじ。

  1. ここからTombloo.xpiをダウンロード
  2. Firefoxのツール > アドオン画面にTombloo.xpiをドラッグしてインストール

引用なんかもコピー&ペーストのノリで簡単にできるから、ついつい調子乗ってスクラップしてしまう。手軽になった分扱いには気をつけないとだな。Tumblrが楽しくなってきた。

こんな感じで、選択した文章で右クリックして「Share – Quote(J)」を選べばカンタンにでけた!
改行もちゃんと再現されるし、いうことないわん。

Tomblooで1ステップShare on Tumblr – Fjmo ))>D<(( omjF

[関連リンク]
borealkiss.tumblr.com

[追記(2008/04/13)]
インストールから使い方、機能一覧をまとめたwiki発見(TomblooUsage – tombloo – Google Code)。amazonアフィリエイトIDの設定、Flickrへの投稿、各種画像変換webサービスとの連携なんかもできるみたい。思っていたより高機能だな。

Read More

簡単な動きっぽいのに意外とてこずった。アイコン画像はIconsPediaより。かわいいアイコンいっぱいあったよ。

[FLASH]Mac dock
Mac dock

Read More

1日10分でえがじょうずにかけるDS

ほんまか?ほんまにかけるようになるんか?ちょっとほしい。何日かかるんだろう。

Read More

行列で書くとわかりやすい。ColorMatrixFilter(引数a0 – a19の計20個!)による元のピクセル値(R, G, B, alpha)とフィルター処理後のピクセル値(R_new, G_new, B_new, alpha_new)の関係は以下の通り。

theDisplayObject(DisplayObjectのサブクラス or BitmapDataクラス)に上記フィルターをかける場合は以下の通り。


import flash.filters.ColorMatrixFilter;

var matrix:Array = new Array();
matrix = matrix.concat([a0,a1,a2,a3,a4]);	//R
matrix = matrix.concat([a5,a6,a7,a8,a9]);	//G
matrix = matrix.concat([a10,a11,a12,a13,a14]);	//B
matrix = matrix.concat([a15,a16,a17,a18,a19]);	//alpha
var f:ColorMatrixFilter = new ColorMatrixFilter(matrix);
theDisplayObject.filters = [f];

ColorMatrixFilter クラスを使用すると、入力イメージの各ピクセルの RGBA カラー値とアルファ値に 4 × 5 マトリックス変換を適用することで、新しい RGBA カラー値とアルファ値から成る結果を作成できます。

ColorMatrixFilter – ActionScript 3.0 コンポーネントリファレンスガイド

[関連リンク]
幕末古写真ジェネレータをハックする – てっく煮ブログ

Read More

オンラインゲームに限定するとおおまかな手口はこんなかんじ。

  1. 某ブログのテンプレートを外部から改変、悪意のあるスクリプト(<script>や<iframe>など)を挿入
  2. 某ブログを閲覧すると挿入されたスクリプトが実行される
  3. スクリプト経由で「某ブログ閲覧者のPCに」某オンラインゲームに関する情報のやりとりを監視するプログラムを忍び込ませる
  4. 監視プログラムがID・パスワード等を外部に送信

で、ブログのテンプレートが(管理者権限無しに)いつのまにやら書き替えられているケースがFC2ブログで多発していることからFC2ブログにシステム的欠陥があるのではないかとささやかれているけどそういうわけでもないみたい。

攻撃の標的になったのは,国内サイトだけではない。同様の手口による大規模Web改ざんが,世界中で確認された。米マカフィーは3月13日時点で,2万ページ近くのWebページが改ざんされたと推測した。

相次ぐWeb改ざん,いったい何が起こっているのか:ITpro

上記記事にもその関連記事にも「どうやって」改ざんされたかについては言及が見当たらず、windows updateやソフトウェアを最新の状態にするのが最善という風にしか書いていないので事件は現在進行形の模様。怖いねwindows。次回アカウントハック対策について。

[関連リンク]
FC2ブログ ユーザーフォーラム :: トピックを表示 – 原因究明・セキュリティの強化を
FINAL FANTASY XI セキュリティ対策室 – 今夜、あなたのアカウントが乗っ取られます。

Read More

Flex Builder 3のアカデミック版が無料になったらしいので、FLASHの、特にプログラミング(Actionscript 2.0-3.0)に興味ある学生さんはライセンスキー申請して試してみるといいかも。学生証の画像アップロードが必要なだけなのかな。コーディングに限定すればCS3とは比較にならないぐらい快適に開発できるよ。AIRソフトウェア(マルチプラットフォーム)も作れるしね。

Adobe® Flex™ Builder 3 Pro for Education.

今日の12時頃に申し込んで、いま16時45分なんだけど、もう来た。

shunirr.org – FlexBuilderのシリアルキーがたった4時間で届いた

Read More

幕末古写真ジェネレーターってのが完成度高い。今風なドリキャスが古いドリキャスに!昭和の写真ジェネレータ(仮)からさらに発展させようって思うのがすごいなあ。こういう不屈の努力はみならわんといかんな。

なぜこのサイトを作ろうとしたかというと去年の11月に「写真を一昔前のレトロなカンジにする「昭和の写真ジェネレータ」」というエントリーを書いたのですが、その時にどうしても古写真風でこういった趣向のサイトを作りたいと思っていたのです。でもなかなか満足いく質感が出せなくて試行錯誤してたのですが、やっと公開できるまでに至りました…。

幕末古写真ジェネレーター公開しました!着物写真が妙にリアルにw at 和の暮らしを楽しむブログ -瑠璃色Tradition-

[関連リンク]
ActionScriptで昭和写真化 – てっく煮ブログ
幕末古写真ジェネレータをハックする – てっく煮ブログ

Read More

定義を誤解しやすい

Adobe – ActionScript 3.0 コンポーネントリファレンスガイドの説明によると、フィルター処理に使われる式は以下のとおり。


dstPixel[x, y] = srcPixel[x + ((componentX(x, y) - 128) * scaleX) / 256,
y + ((componentY(x, y) - 128) * scaleY) / 256)]

ごちゃごちゃしている部分をdx, dy(dx, dyの中身については後ほど説明するとしてここでは何らかの変位量と思ってもらえればok)に書き換えて見やすくするとこんな感じ。


dstPixel[x, y] = srcPixel[x + dx, y + dy]

ここでdstPixelとsrcPixelを一般的な形で説明すると

  • dstPixel[x, y]はx-y座標(x, y)におけるフィルター処理後の表示画像のピクセル値
  • srcPixel[x, y]はx-y座標(x, y)におけるフィルター処理前の表示画像のピクセル値

したがって上式を翻訳すると「位置(x, y)におけるフィルター処理後の画像のピクセル値は、位置(x+dx, y+dy)におけるフィルター処理前の画像のピクセル値を採用している」となる。座標系がフィルター処理後の画像を元にしているところがポイント。「位置(x, y)におけるフィルター処理前の画像のピクセルを(x+dx, y+dy)に移動させてその結果を処理後の画像として採用する」演算ではない。まとめておくとDisplacementMapFilterは

  • (正) 位置(x, y)におけるフィルター処理後の画像のピクセル値に、位置(x+dx, y+dy)におけるフィルター処理前の画像のピクセル値を採用するフィルター
  • (誤) 位置(x, y)におけるフィルター処理前の画像のピクセルを(x+dx, y+dy)に移動させてその結果を処理後の画像として採用するフィルター

となる。ここの仕組みが直感的ではないのでわかりにくい。他にも元画像の位置(x+dx, y+dy)にピクセル情報がないことにはフィルター処理不可能なことがわかる。つまり、元画像のサイズ以上に引き延ばしたりする変形を表現することはできない。

変位(dx, dy)の求め方

フィルター処理前・後のピクセルの変位量の分布さえわかれば意図したフィルター効果を表現できる。具体的な関係式の求め方はpsyark.jp – DMFチュートリアル1がわかりやすい。

置き換えマップイメージ

さて画像は2Dなので各ピクセルごとにx, y方向の2成分の変位量(dx, dy)がわからないといけない。各ピクセルごとの変位情報を(手軽に)2成分もたせるためにはどうすればよいか。そこで登場するのが置き換えマップイメージ。各ピクセルにアルファ、R、G、Bの情報を独立して持たせることができるという画像の性質を利用して、(dx, dy)の変位分布を画像情報として押し込めてしまうわけ。独立して格納したい情報は(dx, dy)の2成分なので、置き換えマップイメージのアルファ、R、G、Bチャンネルの4チャンネルのうちお好みの2チャンネルに格納すればよい(例えばdx情報をR、dy情報をBなど。dx, dyに同じチャンネルを使う場合も含めれば選択肢は4×4=16通りもある)。この中途半端に選択肢の自由度があるところがわかりにくい。([dx, dy]分布情報を格納できれば原理的には二次元配列などでもよいが、配列に格納するのが面倒くさいし、そもそもこのフィルターの演算に採用されていないので意味がない)

Adobeが定義している式に戻ってみると、(dx, dy)は次のような式であることがわかる。


dx = (componentX(x, y) - 128) * scaleX / 256
dy = (componentY(x, y) - 128) * scaleY / 256

ここでcomponentX(x, y)は位置(x,y)におけるマップイメージのdxを格納したチャンネル(つまりアルファ、R、G、Bのどれか)のピクセル値(0-255)、componentY(x, y)は位置(x,y)におけるマップイメージのdyを格納したチャンネルのピクセル値(0-255)が入る。scaleX, scaleYはフィルター使用時に後から好きな値が入れられる(0以上の数値)のでわかりやすくするため1を代入しよう。そうすると、上式は以下のようになる。


dx = (componentX(x, y) - 128) / 256
dy = (componentY(x, y) - 128) / 256

画像の各チャンネルは0-255の数値しかとれないので、この場合変位量は-1/2から1/2の値をとることがわかる。変位幅を大きくしたいならscaleXとscaleYをフィルター利用時に調整すればよい(これは例えば、-10から10までの乱数を得るのに(Math.random()-0.5)*20と書くのに似ているかな)。置き換えマップイメージと変位の関係はmiscellaneous [ActionScript 3.0] DisplacementMapFilterがわかりやすい。

Read More