我需要的是在同一个地方以不同的分辨率裁剪图像。
例如:
使用 1024 x 768 创建的图像 1
使用 1440 x 900 创建的图像 2
现在我必须裁剪图像但在同一个地方让我们说它将是
X = 10% Y = 10% 宽度 = 30% 高度 = 20%
我使用下面的代码来做到这一点,但它不像我需要的那样工作。
有什么线索吗?
谢谢你!!!
int x = 0;
int y = 0;
int w = 0;
int h = 0;
int inputX = 10;
int inputY = 10;
int inputW = 20;
int inputH = 30;
x = int.Parse(Math.Round(decimal.Parse((__Bitmap.Width * inputX / 100).ToString()), 0).ToString());
y = int.Parse(Math.Round(decimal.Parse((__Bitmap.Height * inputY / 100).ToString()), 0).ToString());
w = int.Parse(Math.Round(decimal.Parse((__Bitmap.Width * inputW / 100).ToString()), 0).ToString());
h = int.Parse(Math.Round(decimal.Parse((__Bitmap.Height * inputH / 100).ToString()), 0).ToString());
Rectangle cropArea = new Rectangle(x, y, w,h);
Bitmap bmpCrop = __Bitmap.Clone(cropArea, __Bitmap.PixelFormat);
我的意思是如果有技术上的逻辑来做到这一点?
我想我可以这样做(伪代码)
if (Resolution == "1024x768")
int inputX = 10;
int inputY = 10;
int inputW = 20;
int inputH = 30;
else if (Resolution == "1440x900")
int inputX = 8;
int inputY = 8;
int inputW = 19;
int inputH = 28;
and etc...
我不确定是否有任何系数可以根据分辨率重新计算 % ......这就像一个crop-factor。
更新: