如何在 Android 中的 RGB 轮中找到特定颜色的 X、Y 坐标
How to find X,Y coordinates of a particular color within a RGB wheel in Android
我在 Android Activity 上有一张 RGB Wheel Here PNG 图像,颜色类似于 #6DFFE0
。
我想在 RGB 轮中找到颜色的 X、Y 坐标(位置),以便我可以在 Android 中动态地将指示器移动到那里。
代码应仅在 Android/Java 中。
您可以循环所有像素并获取与您给定的颜色相匹配的像素
ArrayList<String> pixels_matching_color = new ArrayList<>();
int color_to_find = Color.RED; //#FF0000
ImageView imageView = new ImageView(this);
Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap();
int total_width = bitmap.getWidth();
int total_height = bitmap.getHeight();
for (int y = 0; y < total_height; y++) {
for (int x = 0; x < total_width; x++) {
int pixel = bitmap.getPixel(x,y);
//Reading colors
int redValue = Color.red(pixel);
int blueValue = Color.blue(pixel);
int greenValue = Color.green(pixel);
//finally creating the color for pixel
int pixel_color = Color.rgb(redValue, blueValue, greenValue);
if (pixel_color == color_to_find){
pixels_matching_color.add(String.format("%s,%s",x,y));
}
}
}
//the array will contans the pixels that are matching the color you given
System.out.println(pixels_matching_color);
我在 Android Activity 上有一张 RGB Wheel Here PNG 图像,颜色类似于 #6DFFE0
。
我想在 RGB 轮中找到颜色的 X、Y 坐标(位置),以便我可以在 Android 中动态地将指示器移动到那里。 代码应仅在 Android/Java 中。
您可以循环所有像素并获取与您给定的颜色相匹配的像素
ArrayList<String> pixels_matching_color = new ArrayList<>();
int color_to_find = Color.RED; //#FF0000
ImageView imageView = new ImageView(this);
Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap();
int total_width = bitmap.getWidth();
int total_height = bitmap.getHeight();
for (int y = 0; y < total_height; y++) {
for (int x = 0; x < total_width; x++) {
int pixel = bitmap.getPixel(x,y);
//Reading colors
int redValue = Color.red(pixel);
int blueValue = Color.blue(pixel);
int greenValue = Color.green(pixel);
//finally creating the color for pixel
int pixel_color = Color.rgb(redValue, blueValue, greenValue);
if (pixel_color == color_to_find){
pixels_matching_color.add(String.format("%s,%s",x,y));
}
}
}
//the array will contans the pixels that are matching the color you given
System.out.println(pixels_matching_color);