在PNG图像中搜索绿色像素

时间:2013-03-04 07:57:22

标签: android image bitmap png

我有一个小型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的条件。到目前为止,这个工作很好。

图像本身已附上:

image with green pixels

我对Android编程很陌生,所以我有点卡住了。非常感谢任何帮助。

更新:我已将源位图和表单位图保存到库中(Android编程很有趣)。当我打开图像时,我清楚地看到绿色像素被灰色像素替换。我应该调整某种背景滤镜吗?谢谢 附件是表格图片: enter image description here

0 个答案:

没有答案