在我们的应用程序中,我们希望能够裁剪、缩放和平移图像,但我似乎无法弄清楚应该如何在 UIImageView 上绘制裁剪区域。
我试着弄乱 coregraphics,我可以在我的图像上渲染一个带有黑色笔划的区域,但图像会翻转。不仅如此,因为我已经在图像上绘制了,我担心如果我用手势移动和缩放它,该区域也会受到影响!
朝着正确的方向推动将不胜感激!
这是我的代码并没有真正做我想要的,以展示一些研究工作。
// Aspect ration - Currently 1:1
const int arWidth = 1;
const int arHeight = 1;
UIGraphics.BeginImageContext(ImgToCrop.Frame.Size);
var context = UIGraphics.GetCurrentContext();
// Set the line width
context.SetLineWidth(4);
UIColor.Black.SetStroke();
// Our starting points.
float x = 0, y = 0;
// The sizes
float width = ImgToCrop.Frame.Width, height = ImgToCrop.Frame.Height;
// Calculate the geometry
if(arWidth == arHeight){
// The aspect ration is 1:1
width = ImgToCrop.Frame.Width;
height = width;
x = 0;
y = ImgToCrop.Frame.GetMidY()-height/2;
}
// The rect
var drawRect = new RectangleF(x,y,width,height);
context.DrawImage(new RectangleF(
ImgToCrop.Frame.X,
ImgToCrop.Frame.Y,
ImgToCrop.Frame.Width,
ImgToCrop.Frame.Height),ImgToCrop.Image.CGImage);
// Draw it
context.StrokeRect(drawRect);
ImgToCrop.Image = UIGraphics.GetImageFromCurrentImageContext();