2017-07

スポンサーサイト

このエントリーをはてなブックマークに追加
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

GAE Image APIの画像合成をローカルでテストすると画像がかすれる?

このエントリーをはてなブックマークに追加
クラウド将棋盤ジェネレーター(略:クラ将)に局面図をツイート出来る機能やponanza_shogiに局面の分析を(※生きていれば)お願い出来る機能、画像の大きさをリアルタイムプレビュー出来る機能などを追加しました。

http://sfenreader.appspot.com/

普段はローカルにPython PIL ライブラリをインストールして、Google App Engine (GAE)上のImage APIのテストをします。そこで、ローカルのライブラリとGAEにデプロイした時に挙動が違う事例があったので書いておきます。

今回の局面図は本日の竜王戦決勝トーナメントの▲永瀬拓矢 対 △佐藤康光 の投了図です。
このエントリの主旨は局面がどうこうというのではなく、ライブラリの挙動の違いについてなので、生粋の将棋ファンは予めご了承ください。また、プログラマ向けのエントリなので、普段使用なさっている方には関係ありません。

以下は普通に張った時の画像


そしてこれがローカルでテストしている時の画像
sfen_local.png



駒の文字や表題がかすれているのがおわかりでしょうか?

駒のそれぞれの画像はアルファチャネル付きpngなのですが、それを複数回合成すると徐々にかすれてくるという現象が置きました。image.composite() 関数の引数の問題なのかとも思いましたが、説明通りにやってもダメで、GAEにデプロイすると良い結果になるという奇妙なことが置きました。またドキュメントには書いてありませんが、image.composite で合成出来る画像の個数は現段階で一度に15個が限界なので、将棋の駒が40個あることを考えるとどうしてもimage.composite 関数を複数回呼ぶ必要があります。

同様の事例をググってもなかったのでエントリを起こしました。
もしかして既知の事実なんでしょうか?

(追記:2011/07/23)
調べたらKnown Bugのようです。
というか、Images API にはアルファチャネルに関するバグは結構あるみたいですね。
スポンサーサイト

文字列を1文字ずつ分割して配列にするJavaScript

このエントリーをはてなブックマークに追加
prototype.js には String.toArray() という関数があって、文字列を一文字ずつ分割してくれるのですが、
jQueryじゃ使えないので自作しました。
日本語文字列も1文字ずつ分割してくれます。

String.prototype.toArray = function() {
var array = new Array;
for (var i=0 ; i < this.length; i++) {
array.push(this.charAt(i));
}
return array;
};


サンプル:

var string = "cba321飛車角銀桂香歩十八123abc";
var ary = string.toArray();

for (var i = 0;i < ary.length; i++)
{
document.write(ary[i] + '<br>');
}


結果:

prototype.jsの String.toArray を 自前で実装するテスト - jsdo.it - share JavaScript, HTML5 and CSS


«  | ホーム |  »

プロフィール

fantakeshi

Author:fantakeshi
Web:ここ
Twitter ID:fantakeshi
自作物やプログラムやまとまった技術的メモについて

RSSに追加

自作物

最新記事

Twitter

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

自作物 (26)
一般 (1)
将棋 (12)
BONANZA (1)
ponanza (1)
HTML5 (2)
Chrome (1)
WebAPI (1)
Webサイト (2)
プログラム (2)
Tips (1)

カウンター

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。