簡體   English   中英

帶有渴望矩形的裁剪圖像

[英]Crop Image With Desire Rect

SO上有很多問題,但是不幸的是我無法使用它們解決問題。 我已經在相機上添加了疊加視圖,現在想在藍色邊框(僅限於水瓶)內獲取圖像。

我嘗試了如下的代碼塊

CGImageRef imageRef = CGImageCreateWithImageInRect([largeImage CGImage], cropRect);

[UIImageView setImage:[UIImage imageWithCGImage:imageRef]]; 

CGImageRelease(imageRef);

但是有兩個問題

  1. 裁切的圖像太大
  2. 方向更改為-90。

對於第1點,我認為我提供的cropRect太小,這就是為什么它在縮放視圖中只顯示很小一部分圖像的原因。 在我的另一個viewController我有UIImageView (需要顯示裁剪的圖像),其尺寸與藍色邊框內的攝影機矩形相同。 那么問題是如何裁剪圖像,我應該為cropRect提供哪些值?

在此處輸入圖片說明

假設圖像尺寸為1280 * 1080,裁切視圖尺寸為320 * 480,則需要執行以下操作

  1. 通過找到比例因子將裁剪視圖的幀轉換為圖像大小rect(0、0、1280、1080)

     float xScale = 1280 / 320; float yScale = 1080 / 480; float scaleFactor = (xScale < yScale) ? xScale : yScale; 
  2. 將cropView幀乘以比例因子。 這會將屏幕坐標映射到圖像尺寸坐標。 然后將新的cropRect與

     CGImageCreateWithImageInRect([largeImage CGImage], cropRect); 

方向不同的問題是,與視圖的坐標系相比,CoreGraphics使用的坐標系不同。 Quartz 2D坐標系 ,請嘗試設置

   [UIImage imageWithCGImage:imageRef].imageOrientation = largeImage.imageOrientation

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM