我在Android应用程序开发方面不是很熟练,而且我正在开发测试应用程序。我检测到了脸部和眼睛,现在我将根据眼睛的坐标在脸上(例如脸颊上的眼睛下方)画出痤疮或疤痕。之后,我会把眼镜或帽子放在适当的位置。
我知道左眼和右眼的坐标(代码中的leftEyePosx ... [等等])。例如136x168 [左]和216x168 [右](镜像中)。现在,我正在计算比例:玻璃位图的宽度应缩放到80像素(216-136)或更大,80像素乘以原始图像的高度宽高比(例如80 * 0.7)。我有代码的位图:
glassBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.glass_01);
现在,我如何重新缩放眼镜并使用方法canvas.drawBitmap()并使用眼睛坐标并在脸上绘制玻璃?或者我应该用另一种方式?
提前致谢,抱歉我的英语不好:)
答案 0 :(得分:1)
首先缩放位图:
Bitmap scaledBitmap = Bitmap.createScaledBitmap(originalBitmap, targetWidth, targetHeight, false);
然后在xPos和yPos:
上绘制另一个位图Canvas canvas = new Canvas(baseBitmap);
Paint paint = new Paint(Paint.FILTER_BITMAP_FLAG);
canvas.drawBitmap(overlayBitmap, xPos, yPos, paint);
xPos和yPos是覆盖位图的左上角。例如,如果基本图像眼睛应该显示在叠加位图的中间,则必须通过减去宽度和高度的一半来调整此值,以找到所需的xPos和yPos。