안녕하세요.
이미지뷰의 이미지를 비트맵으로 변환하여 비트맵의 pixcel값을 추출> rgb값으로 변환하는 코드 입니다.
그런데 자꾸 IllegalArgumentException: x must be < bitmap.width() 에러가 뜹니다.
코드 첨부합니다. 지적 바랍니다. 감사합니다.
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView iv = (ImageView) findViewById(R.id.imageView);
iv.setOnClickListener(this);
}
@Override
public void onClick(View v) {
BitmapDrawable D = (BitmapDrawable)((ImageView)findViewById(R.id.imageView)).getDrawable();
Bitmap bitmap = D.getBitmap();
Bitmap bm= bitmap.copy(Bitmap.Config.ARGB_8888, true);
int bValue = bm.getPixel(x, y) & 0x000000FF;
int gValue = (bm.getPixel(x, y) & 0x0000FF00) >> 8;
int rValue = (bm.getPixel(x, y) & 0x00FF0000) >> 16;
TextView tv = (TextView)findViewById(R.id.textView2);
tv.setText("R = " + rValue + "," + "G = " + gValue+ "," + "B = " + bValue);
}
}