通过数学公式获取低分辨率位图的坐标(像素)并将它们放入与高分辨率位图相同的位置 Android

Via math formula get coords(pixels) of Low Resolution Bitmap and Put them into same location to High Resolution bitmap Android

所以我通过本机从相机制作图像 API。问题是,我也有一个算法来计算一些东西(使用位图)并且 问题 来了,当分辨率太高时(例如 3000x2500),因为我需要等待太多时间.

首先我想到的是解决方法:

  1. source 位图转换为低分辨率(例如 600x800)。
  2. 使用这个低分辨率位图(计算一些东西并计算位于这个低分辨率位图上的坐标)。
  3. 获取精确的像素坐标并通过一些数学公式(计算width/heights或像素?)将它们放在同一个位置,但在源位图(具有高分辨率).

那么我怎样才能实现这部分呢?我认为这是可能的,但无法理解到底需要做什么。
谢谢!

如果您知道 w,h 位图中的 x,y 位置,那么您在 W,H 位图中寻找的 X,Y 只是简单的比率

x/w = X/W 你可以轻松解决:X = x * W/w

同样你得到 Y = y * H/h

好的,这就是你需要的

假设您已经为低分辨率图像计算了一些 x、y 值:

int lowResX, lowResY;

比起将它们转换为高分辨率:

double scaleRatio = hiResImageWidth / lowResImageWidth; //be sure to use here double or float values as the result of integer division will be int, and not the double/float!
int hiResX = (int) (lowResX * scaleRatio);
int hiResY = (int) (lowResY * scaleRatio);

就这些了