我有一张PNG图片(角落里有透明像素),我正在尝试提取这些透明像素的颜色代码,我使用了一个xxxx网站,它让我可以选择一个像素并返回其颜色代码;
选择透明像素后,得到:RGB代码:R:34 G:62 B:74
那不是逻辑
我在我的PNG图片中使用了BitmapDrawable //我觉得这不是一个正确的方法
Bitmap bitmap =((BitmapDrawable)image.getDrawable()) . getBitmap();
有没有办法检查像素是否透明?
谢谢
这个被接受的方法也是正确的我认为如果使用这个更好:
if(sourceBitmap1.getPixel(x,y)== Color.TRANSPARENT)
如果您想在触摸视图时知道透明度,我使用下面的功能检查触摸的像素是否透明:
public boolean isBitmapTransparent(ImageView imageview){ boolean isTransparent = false; final Bitmap bitmap = ((BitmapDrawable)imageview.getBackground()).getBitmap(); imageview.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { int eventPadTouch = event.getAction(); switch (eventPadTouch) { case MotionEvent.ACTION_DOWN: if (event.getX()>=0 & event.getY()>=0 & event.getX()<bitmap.getWidth() & event.getY()<bitmap.getHeight()) { if (bitmap.getPixel((int)event.getX(),(int)event.getY())!=0) { //TODO pixel not transparent isTransparent = false; } else{ //TODO pixel transparent isTransparent = true; } } return true; } return false; } }); return isTransparent; }
Bitmap bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap(); int transparency = ((bitmap.getPixel(x,y) & 0xff000000) >> 24);
transparency 将介于 0 ( completely transparent )和 255 ( completely opaque )之间 .
transparency
completely transparent
completely opaque
3 回答
这个被接受的方法也是正确的我认为如果使用这个更好:
如果您想在触摸视图时知道透明度,我使用下面的功能检查触摸的像素是否透明:
transparency
将介于 0 (completely transparent
)和 255 (completely opaque
)之间 .