是否有將UIKit座標(0,0左上角)轉換爲Quartz/CoreImage(0,0左下角)的方法?在這裏找不到像這樣快速相關的任何東西。將UIKit座標轉換爲Quartz/CoreImage(Swift)
0
A
回答
2
您可以使用仿射變換矩陣,這個文檔片斷是從我的代碼取從核心圖片/核心圖形轉換成的UIKit:
CGAffineTransform t = CGAffineTransformMakeScale(1, -1);
t = CGAffineTransformTranslate(t,0, -imageView.bounds.size.height);
基本上你需要:
- 否定y軸
- 通過視圖高度
翻譯的原點後,您可以使用這些幾何函數來計算你的矩形或點
CGPoint pointUIKit = CGPointApplyAffineTransform(pointCI, t);
CGRect rectUIKit = CGRectApplyAffineTransform(rectCI, t);
在斯威夫特3.X:
var t = CGAffineTransform(scaleX: 1, y: -1)
t = t.translatedBy(CGAffineTransform(translationX: 0, y: -imageView.bounds.size.hieght)
let pointUIKit = CGPointApplyAffineTransform(pointCI, t)
let rectUIKIT = CGRectApplyAffineTransform(rectCI, t)
1
隨着在底部的起源左兌左上,你需要做什麼與X軸,但你需要翻轉軸右。 UIKit(或者在這種情況下,Core Graphics)使用CGPoints。核心圖像通常使用一個CIVectors,它可以有2,3或4個軸角度。
這裏有一個簡單的函數,會變成一個CGPoint(X,Y)爲CIVector(X,Y):
func createVector(_ point:CGPoint, image:CIImage) -> CIVector {
return CIVector(x: point.x, y: image.extent.height - point.y)
}
相關問題
- 1. 將地址轉換爲座標swift
- 2. 將CLLocationCoordinate2D座標轉換爲CGPoint Swift
- 3. 將屏幕座標轉換爲座標
- 4. 將座標轉換爲像素座標
- 5. 將座標調查座標轉換爲有效的esri座標
- 6. 將本地(=旋轉後的)座標轉換爲全局座標
- 7. 將座標轉換爲旋轉座標系
- 8. 將GPS座標轉換爲Swift中的城市名稱/地址
- 9. SWIFT - 將字符串轉換爲UIKit元素
- 10. Java Slick2d - 如何將鼠標座標轉換爲世界座標
- 11. Swift在UIView Coordinate System中轉換座標
- 12. 將字符串轉換爲Google座標
- 13. 將緯/長座標轉換爲ISN93
- 14. 將座標系轉換爲遊戲板
- 15. 將gps座標轉換爲AR
- 16. 將座標轉換爲地名
- 17. 將字符串轉換爲座標
- 18. Geopackage:將BLOB轉換爲座標
- 19. Java - 將MGRS座標轉換爲LatLon WGS
- 20. 將EMR_LINETO(X,Y)座標轉換爲緹
- 21. 將座標UTM轉換爲DMS
- 22. 如何將轉換後的座標轉換爲OpenGL中的世界座標?
- 23. 將相對座標轉換爲絕對座標的算法
- 24. OpenGL:如何將世界座標轉換爲屏幕座標?
- 25. 將直角座標轉換爲極座標的Java包
- 26. 將屏幕座標轉換爲模型座標
- 27. 將屏幕座標轉換爲世界座標
- 28. 將MKAnnotation座標轉換爲查看座標
- 29. 如何將本地對象座標轉換爲世界座標?
- 30. 將投影的座標轉換爲常規的GPS座標android
是,正如dfd所說。座標值之間的唯一區別就是視圖在y軸上的高度。 – Magnas