将预览图像坐标映射到图片图像坐标

时间:2013-01-16 21:10:55

标签: java android camera android-camera android-view

我用我的Google-fu对这个问题无济于事。我的问题:我有一个Android应用,它使用下面的Camera类在EllipseView预览的顶部覆盖椭圆:

public class EllipseView extends View {

    private Paint paint = new Paint();

    public EllipseView(Context context) {
        super(context);
        paint.setAntiAlias(true);
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeWidth(5.0f);
        paint.setColor(Color.GREEN);
        paint.setAlpha(0x60);
    }

    @Override
    public void onDraw(Canvas canvas) {
        Point canvasCenter = new Point(canvas.getWidth() / 2, canvas.getHeight() / 2);
        RectF oval = new RectF(canvasCenter.x - 100, canvasCenter.y - 75, canvasCenter.x + 100, canvasCenter.y + 75);

        canvas.drawOval(oval, paint);
        canvas.drawCircle(canvasCenter.x, canvasCenter.y, 5, paint);
    }

}

是否可以在捕获的图片中找到相同的oval坐标?或者,我是否必须手动确定变换?

1 个答案:

答案 0 :(得分:0)

  • 获取预览图面的宽度和高度
  • 获取位图的宽度和高度
  • 将一个除以另一个以获得宽度转换和高度转换率
  • 在预览表面中找到椭圆的位置
  • 使用比率计算在位图上的位置
  • 做你的魔法......

    更详细的帮助here