これを実行する最適な方法は何ですか。私は長さの高さ*幅の配列を持っています。私は単純にビットマップをループインデックスに基づいて配列に各ピクセルを設定するループですか?ありがとうビットマップを整数配列に格納する
[更新] ビットマップに魚眼レンズの歪みを配置するアプリです。これは大規模なGCのオーバーヘッド
for (int j=0;j<dst.getHeight();j++) {
for (int i=0;i<dst.getWidth();i++) {
origPixel= input.getPixel(i,j);
getRadXStart = System.currentTimeMillis();
float x = getRadialX((float)j,(float)i,centerX,centerY,k);
float y = getRadialY((float)j,(float)i,centerX,centerY,k);
sampleImage(input,x,y);
color = ((s[1]&0x0ff)<<16)|((s[2]&0x0ff)<<8)|(s[3]&0x0ff);
// System.out.print(i+" "+j+" \\");
//if(Math.sqrt(Math.pow(i - centerX, 2) + (Math.pow(j - centerY, 2))) <= 150){
if (Math.pow(i - centerX, 2) + (Math.pow(j - centerY, 2)) <= 22500) {
// dst.setPixel(i, j, color);
arr[i]=color;
} else {
//dst.setPixel(i,j,origPixel);
arr[i]=origPixel;
}
}
}
Bitmap dst2 = Bitmap.createBitmap(arr,width,height,input.getConfig());
return dst2;
私たちを示すサンプルコードは何ですか?ピクセルをどこに設定していますか? –
@ted hopp hi、更新された投稿 – turtleboy