我有一个小型 Andriod 应用程序,它有一个搜索 PNG 文件中的绿色像素的子功能。
程序首先处理文件:
private Bitmap buildSource(Context context) {
Paint paint = new Paint();
Logger.info("buildSource");
Bitmap form = BitmapFactory.decodeResource(context.getResources(),
R.drawable.form);
// float d = context.getResources().getDisplayMetrics().density;
Bitmap source = Bitmap.createBitmap(form.getWidth(), form.getHeight(),
Config.ARGB_8888);
Canvas canvas = new Canvas(source);
canvas.drawBitmap(form, 0, 0, paint);
form.recycle();
Logger.info("buildSource done " + source);
}
然后它搜索绿色像素:
for (int y = 0; y < mSource.getHeight(); y++) {
for (int x = source.getWidth() - 1; x > 0; x--) {
int pixel = source.getPixel(x, y);
int green = Color.green(pixel);
int red = Color.red(pixel);
if (0 == red && green > 210 && green < 220) {
// Save pixel position
}
由于某种原因,在我正在运行的特定机器上,此代码不起作用,当我一个一个打印出像素时,没有像素与red
=0
和绿色为~215
. 到目前为止,这工作得很好。
附上图片本身:
我对 Android 编程很陌生,所以我有点卡住了。将不胜感激任何帮助。
更新:我已将源位图和表单位图保存到图库(Android 编程很有趣)。当我打开图像时,我清楚地看到绿色像素被替换为灰色像素。我应该调整某种背景过滤器吗?谢谢 附上表格图片: