![](/img/trans.png)
[英]Crop image displayed in UIScrollview to rect displayed in overlay
[英]Crop Image With Desire Rect
SO上有很多問題,但是不幸的是我無法使用它們解決問題。 我已經在相機上添加了疊加視圖,現在想在藍色邊框(僅限於水瓶)內獲取圖像。
我嘗試了如下的代碼塊
CGImageRef imageRef = CGImageCreateWithImageInRect([largeImage CGImage], cropRect);
[UIImageView setImage:[UIImage imageWithCGImage:imageRef]];
CGImageRelease(imageRef);
但是有兩個問題
對於第1點,我認為我提供的cropRect
太小,這就是為什么它在縮放視圖中只顯示很小一部分圖像的原因。 在我的另一個viewController
我有UIImageView
(需要顯示裁剪的圖像),其尺寸與藍色邊框內的攝影機矩形相同。 那么問題是如何裁剪圖像,我應該為cropRect
提供哪些值?
假設圖像尺寸為1280 * 1080,裁切視圖尺寸為320 * 480,則需要執行以下操作
通過找到比例因子將裁剪視圖的幀轉換為圖像大小rect(0、0、1280、1080)
float xScale = 1280 / 320; float yScale = 1080 / 480; float scaleFactor = (xScale < yScale) ? xScale : yScale;
將cropView幀乘以比例因子。 這會將屏幕坐標映射到圖像尺寸坐標。 然后將新的cropRect與
CGImageCreateWithImageInRect([largeImage CGImage], cropRect);
方向不同的問題是,與視圖的坐標系相比,CoreGraphics使用的坐標系不同。 Quartz 2D坐標系 ,請嘗試設置
[UIImage imageWithCGImage:imageRef].imageOrientation = largeImage.imageOrientation
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.