パレット表示とか [プログラム関係]
ドット絵掲示板にパレットを表示する機能をつけました。
もともと、サーバーサイドがJavaなのでいつも通りBufferedImageつかって
簡単にパレットを取得するつもりだったのですが、
GoogleAppEngineではBufferedImageを含む大部分の画像処理ライブラリを
使用できないとのことだったので、どうしようか悩むことに。
最初、クライアントのJavaAppletにBase64の画像データを渡して
パレットの計算をさせようかと思ったのですが、
アプレットはロードが長いのが嫌だなあと思ったり。
じゃあロードが若干軽いFlashでやろうかしら。それともJavaScriptで
気合いで実装しちゃおうかしら。
そんなこと考えてたんですが、とりあえずGifとPNGの簡単な仕様を読んでみたり。
すると、パレット部分はどちらも生のバイトが並んでるみたいだったので、
取り出すのは簡単だな、じゃあJavaScriptで実装しちゃおうかと考える。
とりあえずbyteとかJavaScriptいきなり扱うのはきついから
プロトタイプをJavaで作ったのですが、考え直すとこれをそのままサーバーに置けば
もともとの目的が達成できるじゃん!ということで結局パレットはサーバーで計算することに。
以上長いあらすじ。
とりあえず掲示板で使ってるいい加減な実装をおいときます。
2011061800001.java
GIF:先頭から14バイト目以降がグローバルカラーテーブル。無い場合は24バイト目以降が一つ目のローカルカラーテーブル。そのどちらかをとってくるだけ。
PNG:チャンクをたどってって最初に現れたPLTEチャンクを見つけてデータ部をとってくる。
at 2011-6-18 0:25 | Comment(0)