gpt4 book ai didi

java - 缩放图像并将其放置在Android的LinearLayout中的特定位置(坐标)

转载 作者:行者123 更新时间:2023-11-30 02:11:46 28 4
gpt4 key购买 nike

我在 android 应用程序开发方面不是很熟练,我正在开发一个测试应用程序。我检测到了脸和眼睛,现在我要根据眼睛的坐标在脸上画一些像粉刺或疤痕的东西(例如脸颊上的眼睛下方)。稍后,我会把眼镜或帽子放在适当的位置。

我知道左眼和右眼的坐标(代码中的 leftEyePosx... [等等])。例如 136x168 [左] 和 216x168 [右](镜像在图片中)。现在,我正在计算比例:玻璃位图的宽度应缩放约 80 像素 (216-136) 或更大,高度应为 80 像素乘以原始图像的纵横比(例如 80 * 0.7)。我有带代码的位图:

glassBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.glass_01);

现在,如何重新缩放眼镜并使用方法 canvas.drawBitmap() 并使用眼睛坐标并在脸上绘制眼镜?或者我应该使用其他方式?

提前致谢,抱歉我的英语不好:)

最佳答案

首先缩放位图:

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。

关于java - 缩放图像并将其放置在Android的LinearLayout中的特定位置(坐标),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29999606/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com