我有一个要求裁剪照片的要求。为了所有时态和目的,它进行一些图像处理,结果就像照片被扫描一样。
照片将是文件,并将是大图像(iPad,iPad Mini)
我已经构建了代码来在CoreImage lib的帮助下进行处理,但我仍然坚持裁剪照片。
浏览后我发现了一些我用C#部分实现的代码(monotouch) 内容大小与照片大小相匹配的Scrollview,滚动视图侧面的UIimageView(天体延伸超出屏幕范围),滚动视图顶部的固定黑色半透明视图。
我的滚动,缩放都很有效,但是......
我如何"切出"我的黑色透明视图(cropGuideView)中的裁剪指南我正在尝试剪切缩小的A4指南。
下面的代码似乎是我需要的,但我正在努力将其转换为monotouch。
谢谢
CGRect cropGuide = self.cropGuideView.visibleRect;
UIEdgeInsets edges = self.cropGuideView.edgeWidths;
CGPoint cropGuideOffset = self.cropScrollView.contentOffset;
CGPoint origin = CGPointMake( cropGuideOffset.x + edges.left, cropGuideOffset.y + edges.top );
CGSize size = cropGuide.size;
CGRect crop = { origin, size };
crop.origin.x = crop.origin.x / self.cropScrollView.zoomScale;
crop.origin.y = crop.origin.y / self.cropScrollView.zoomScale;
crop.size.width = crop.size.width / self.cropScrollView.zoomScale;
crop.size.height = crop.size.height / self.cropScrollView.zoomScale;
photo = [photo croppedImage:crop];
答案 0 :(得分:1)
试试这个(来自Xamarin forums)
UIImage cropImage(UIImage srcImage, RectangleF rect) {
using (CGImage cr = srcImage.CGImage.WithImageInRect (rect)) {
UIImage cropped = UIImage.FromImage (cr);
return cropped;
}
}
答案 1 :(得分:0)
我已经使用Scrollview的边界使用BeginImageContext解决了这个问题, 然后在上下文中渲染。