私がsamsung galaxy s2で写真を撮ると、写真は3264 x 2448 pxになります。 私はそれに色の範囲のチェックを使用したいが、それは動作しません。getPixelsを使用するには、ビットマップを大きくするには?
しかし、画像をたとえば2500x2500(それほど小さいピクセル)より小さくすると、動作します。しかし、私は、銀河s2(3264 x 2448)の画像サイズを使用します。 私はそれが記憶上の問題だと思いますか? 私は限界が何であるか正確には分かりません。 しかし、この問題を「回避」する別の方法はありますか?
これは、私は今それを行う方法、コードの一部です:
bmp = BitmapFactory.decodeResource(getResources(),
R.drawable.four_colors);
int width = bmp.getWidth();
int height = bmp.getHeight();
int[] pixels = new int[width * height];
bmp.getPixels(pixels, 0, width, 0, 0, width, height);
for (int y = 0; y < height; y++){
for (int x = 0; x < width; x++){
int index = y * width + x;
int R = (pixels[index] >> 16) & 0xff; //bitwise shifting
int G = (pixels[index] >> 8) & 0xff;
int B = pixels[index] & 0xff;
total++;
if ((G > R)&&(G > B)){
counter++;
}
}
}
画像が大きい、小さい写真の仕事にあるので、それがクラッシュ。 この問題を「迂回する」ものがありますか?小さい画像を使用する代わりに
私はいくつかのことを試しました。
イメージを2つにカットして、別々にスキャンしようとしました(機能しませんでした)。
と私はその半分(1632 x 1224)をスキャンしてから画像(180度)を回転して再びスキャンしようとしましたが、これもうまくいかなかった。
- は私に:)ヒット
どこがクラッシュしますか? – ethan
ねえ、私は明日の答えを試してみるつもりです。 私はそれから来たものを聞かせてくれます – Bigflow