如何序列化一個CGContext包含修改的CGMutablePathRef?序列化一個CGContext
我目前將上下文保存爲png表示形式並將其序列化,但這會導致視網膜顯示問題。
我想避免序列化視網膜版本,並在運行時調整它,因爲這將是低效的。
如何序列化一個CGContext包含修改的CGMutablePathRef?序列化一個CGContext
我目前將上下文保存爲png表示形式並將其序列化,但這會導致視網膜顯示問題。
我想避免序列化視網膜版本,並在運行時調整它,因爲這將是低效的。
如果只是撫摸或填充的單個路徑,則可以在一個UIBezierPath
包裹它,這符合NSCoding
協議,然後可以序列的UIBezierPath
:
UIBezierPath *uiPath = [UIBezierPath bezierPathWithCGPath:cgPath];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:uiPath];
然後就可以寫data
到一個文件或你的數據庫或其他。稍後,您可以轉換data
回UIBezierPath
然後CGPath
:
UIBezierPath *uiPath = [NSKeyedUnarchiver unarchiveObjectWithData:data];
CGPathRef cgPath = uiPath.CGPath;
如果你是畫的東西比一個單一的路徑,序列化繪圖在可伸縮(矢量)最簡單的方法更爲複雜的格式是畫到CGPDFContext
而不是CGBitmapContext
。 A CGPDFContext
將您的繪圖命令記錄爲PDF。稍後,您可以爲PDF創建一個CGPDFDocument
,並使用它將PDF繪製到位圖上下文中。詳情請閱讀PDF Document Creation, Viewing, and Transforming chapter of the * Quartz 2D Programming Guide*。
謝謝,請看看這個。我正在添加一個漸變來填充路徑。 – jarryd