簡體   English   中英

iOS 使用 CIFilter 縮放/扭曲圖像的特定部分

[英]iOS Zoom/Distort a particular part of the image using CIFilter

用例是檢測圖像中的某些內容並向外縮放\/扭曲它,就像您通過放大鏡查看一樣。

現在我知道放大的點,但我需要一個可以做同樣事情的 CIFilter。

嘗試過CIHoleDistortion<\/a>但它沒有用。 該文檔對我來說似乎很好,它應該可以工作,但它只會創建一個黑洞並且它周圍的區域是扭曲的。

let distortion = CIFilter(name: "CIHoleDistortion")
distortion.setValue(sourceImage, forKey: kCIInputImageKey)
distortion.setValue(CIVector.init(cgPoint: CGPoint.init(x: 200, y: 200)), forKey: "inputCenter")
distortion.setValue(NSNumber.init(value: 100), forKey: "inputRadius")

上面 Frank 提到的CIBumpDistortion ,但scale參數實際上是這樣工作的: scale < 0 -> concave; scale > 0 -> 凸的。

另一個(也許更好)的選擇是使用CIGlassLozenge過濾器:

  1. inputRefraction設置為略大於 1 的值(例如 1.06)
  2. inputPoint0inputPoint1都與縮放點的坐標對齊
  3. 玩半徑以獲得所需的效果。 所附示例使用半徑 1000。 在此處輸入圖像描述

如果您想實時使用此過濾器(以及 250 個 CIFilter 中的任何其他過濾器),請查看此應用: https ://apps.apple.com/us/app/filter-magic/id1594986951

暫無
暫無

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

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