// 手机上ui坐标转换为内存坐标的转换
/*
@para inCoord 输入ui坐标
@para outCoord 输出对应在内存的坐标
@para orcation 手机角度 0、90、180、270
@para camId 后置相机为0,前置为1
@para inW 输入坐标系的宽
@para inH 输入坐标系的高
@para outWH 输出宽高
*/
int UiCoord2MemCoord(int inCoord[2], int outCoord[2], int orcation, int camId, int inW, int inH, int outWH[2])
{
int outW = 0;
int outH = 0;
if (orcation == 90 || orcation == 270)
{
outW = inW;
outH = inH;
}
else
{
outW = inH;
outH = inW;
}
outWH[0] = outW;
outWH[1] = outH;
if (0 == camId)
{
if (0 == orcation)
{
outCoord[0] = inCoord[1];
outCoord[1] = outH - 1 - inCoord[0];
}
else if (90 == orcation)
{
outCoord[0] = inCoord[0];
outCoord[1] = inCoord[1];
}
else if (270 == orcation)
{
outCoord[0] = outW - 1 - inCoord[0];
outCoord[1] = outH - 1 - inCoord[1];
}
else if (180 == orcation)
{
outCoord[0] = outW - 1 - inCoord[1];
outCoord[1] = inCoord[0];
}
}
else if (1 == camId) // 前置摄像头
{
if (0 == orcation)
{
outCoord[0] = outW - 1 - inCoord[1];
outCoord[1] = outH - 1 - inCoord[0];
}
else if (90 == orcation)
{
outCoord[0] = outW - 1 - inCoord[0];
outCoord[1] = inCoord[1];
}
else if (270 == orcation)
{
outCoord[0] = inCoord[0];
outCoord[1] = outH - 1 - inCoord[1];
}
else if (180 == orcation)
{
outCoord[0] = inCoord[1];
outCoord[1] = inCoord[0];
}
}
return 0;
}
// 手机上内存坐标的转换ui坐标转换为
/*
@para inCoord 输入内存坐标
@para outCoord 输出对应在ui的坐标
@para orcation 手机角度 0、90、180、270
@para camId 后置相机为0,前置为1
@para inW 输入坐标系的宽(内存图像)
@para inH 输入坐标系的高(内存图像)
@para outWH 输出宽高
*/
int MemCoord2UiCoord(int inCoord[2], int outCoord[2], int orcation, int camId, int inW, int inH, int outWH[2])
{
int outW = 0;
int outH = 0;
if (orcation == 90 || orcation == 270)
{
outW = inW;
outH = inH;
}
else
{
outW = inH;
outH = inW;
}
outWH[0] = outW;
outWH[1] = outH;
if (0 == camId)
{
if (0 == orcation)
{
outCoord[0] = inH - 1 - inCoord[1];
outCoord[1] = inCoord[0];
}
else if (90 == orcation)
{
outCoord[0] = inCoord[0];
outCoord[1] = inCoord[1];
}
else if (270 == orcation)
{
outCoord[0] = inW - 1 - inCoord[0];
outCoord[1] = inH - 1 - inCoord[1];
}
else if (180 == orcation)
{
outCoord[0] = inCoord[1];
outCoord[1] = inW - 1 - inCoord[0];
}
}
else if (1 == camId) // 前置摄像头
{
if (0 == orcation)
{
outCoord[0] = inH - 1 - inCoord[1];
outCoord[1] = inW - 1 - inCoord[0];
}
else if (90 == orcation)
{
outCoord[0] = inW - 1 - inCoord[0];
outCoord[1] = inCoord[1];
}
else if (270 == orcation)
{
outCoord[0] = inCoord[0];
outCoord[1] = inH - 1 - inCoord[1];
}
else if (180 == orcation)
{
outCoord[0] = inCoord[1];
outCoord[1] = inCoord[0];
}
}
return 0;
}
安卓ui坐标和底层内存图坐标的转换关系
猜你喜欢
转载自blog.csdn.net/baidu_31872269/article/details/77868682
今日推荐
周排行