日記

103色でパチュリー [ドット絵とか]


色減らすことを全く考えずに贅沢に使ってみました。
ほんとは256色使いたかったけど、もっと考えないと256色も使い切るのは難しいようです。


at 2011-6-27 3:20 | Comment(0)

たいとるめんどう [プログラム関係]

画像掲示板でバグを見つけたけど、その理由がわからなくてずっと考えて他の作業ができません。
バグは記事を投稿したのに反映されておらず、データストアにもデータが入ってないというものです。
その現象が発生したときちゃんとデータストア後の処理(トップページへリダイレクト)が
行われたので、ストアするメソッド自体は呼ばれてるはずなのです。
同じ状況になりそうな状態をいろいろ考えてるんですが、全く検討がつきません。
たぶん並列関係(といってもログを見る限りバグの前後に他のアクセスはない)か、
GAEの把握してない仕様によるものかのどちらかだと思うのですが、
気になって夜も寝れません。
どうしようもないので、GAEの仕様をもっかい読んで、それに応じて
プログラムを書きなおそうかと思います。
といってもデータストアの一部分だけですが。

再現できない原因不明のバグの不安は、プログラムを根本的に書き直すことでしか
取り除けないと思うのです。


at 2011-6-22 8:04 | Comment(0)

ドット絵掲示板 [プログラム関係]

http://dot.manaten.net/
スタイル弄ったり、どうでもいい機能追加したりしました。
最初は誰もいないと思うので、自分でドット絵打ってあげるしか無いですね!


at 2011-6-19 22:27 | Comment(0)

パレット表示とか [プログラム関係]

ドット絵掲示板にパレットを表示する機能をつけました。

もともと、サーバーサイドが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)

拡大縮小 [プログラム関係]

先日作った画像掲示板に拡大縮小の機能をつけました。
といっても何年も前にこのブログに実装したのとほぼ同じで、違う点は
・jQueryを使ってみた。(何気に今まで使ったこと無かった)
・ちゃんとしたJavaScriptのオブジェクト指向になってる
・IEとFirefoxだと拡大してもぼやけないここを参考に)
といったところです。

ほんとはサーバー側で二倍四倍くらいの画像を用意しといてってやれば
どのブラウザでもぼかさずに拡大できるんですけど、
GAEではJavaのImageIOとかBufferedImageがつかえなかった・・・!
このせいで他にパレットの表示もしたかったんですけど、これも未実装。
ただGifとPNGはパレットの抽出方法がそんなに難しくなかったので、
明日あたりに実装できて記事書けるかなって思います。


at 2011-6-17 8:04 | Comment(0)
SunMonTue WedThuFri Sat
12 34
567 89 10 11
12 1314 1516 1718
1920 21 2223 24 25
26 2728 29 30
required 0.0242 sec