こねこぺいんとを作っていたときに、
画像データのサイズをなんとか減らそうと思って、
いろいろと試行錯誤していました。
そのときにとある間抜けな罠にハマリました。。。
以下、プログラムのイメージ。
int colorRed = 1;
int colorGreen = 2;
int colorBlue = 0;
//3色を1byteに圧縮
byte color = (byte)(colorRed * 3^2 + colorGreen * 3^1 + colorBlue * 3^0);
//Red取り出し
int colorRedNew = (int)(color / 3^2);
↑だとうまくいきません。それもそのはず、累乗って「^」のイメージがあったのでなんとなく使ってみたのですが、Javaだと「^」は累乗ではなくて排他的論理輪なんですねぇ。
関数で計算するのもイヤなので、おとなしく直接値を書くことに。。。
未承認 2010年11月15日(月)08時51分 編集・削除
管理者に承認されるまで内容は表示されません。