public int getPixelTotal(int i_x,int i_y)\r
{\r
int bp=(i_x+i_y*width)*3;\r
- return (ref_buf[bp] & 0xff)+(ref_buf[bp+1] & 0xff)+(ref_buf[bp+2] & 0xff);\r
+ byte[] ref=this.ref_buf;\r
+ return (ref[bp] & 0xff)+(ref[bp+1] & 0xff)+(ref[bp+2] & 0xff);\r
}\r
+ public void getPixelTotalRowLine(int i_row,int[] o_line)\r
+ {\r
+ final byte[] ref=this.ref_buf;\r
+ int bp=(i_row+1)*this.width*3-3;\r
+ for(int i=this.width-1;i>=0;i--){\r
+ o_line[i]=(ref[bp] & 0xff)+(ref[bp+1] & 0xff)+(ref[bp+2] & 0xff);\r
+ bp-=3;\r
+ }\r
+ } \r
public int getWidth()\r
{\r
return width;\r
{\r
return height;\r
}\r
- public void pickRgbArray(int i_x,int i_y,int[] i_rgb)\r
+ public void getPixel(int i_x,int i_y,int[] i_rgb)\r
{\r
- int bp=(i_x+i_y*width)*3;\r
- i_rgb[0]=(ref_buf[bp+red_idx] & 0xff);//R\r
- i_rgb[1]=(ref_buf[bp+green_idx] & 0xff);//G\r
- i_rgb[2]=(ref_buf[bp+blue_idx] & 0xff);//B\r
+ int bp=(i_x+i_y*this.width)*3;\r
+ byte[] ref=this.ref_buf;\r
+ i_rgb[0]=(ref[bp+this.red_idx] & 0xff);//R\r
+ i_rgb[1]=(ref[bp+this.green_idx] & 0xff);//G\r
+ i_rgb[2]=(ref[bp+this.blue_idx] & 0xff);//B\r
}\r
/**\r
* ピクセルの順序タイプを返します。\r
{\r
return ref_buf!=null;\r
}\r
-\r
+ public void getPixelSet(int[] i_x,int i_y[],int i_num,int[] o_rgb)\r
+ {\r
+ int ri=this.red_idx;\r
+ int bi=this.green_idx;\r
+ int gi=this.blue_idx;\r
+ int width=this.width;\r
+ byte[] ref=this.ref_buf;\r
+ int bp;\r
+ for(int i=i_num-1;i>=0;i--){\r
+ bp=(i_x[i]+i_y[i]*width)*3;\r
+ o_rgb[i*3+0]=(ref[bp+ri] & 0xff);//R\r
+ o_rgb[i*3+1]=(ref[bp+gi] & 0xff);//G\r
+ o_rgb[i*3+2]=(ref[bp+bi] & 0xff);//B\r
+ } \r
+ return;\r
+ }\r
}\r