我想用一個.png描畫一個路徑,但我只是不知道如何生成一個CGPatternRef。有人能告訴我如何創建一個CGPattern,我可以用它來描述一個圖像的路徑?
3
A
回答
4
請參閱the relevant chapter of the Quartz 2D Programming Guide和the reference documentation for CGPattern。
編程指南中隱藏的「LOOK PRETTY PATTERNNS」的頁面和頁面中的基本細節是,您需要編寫一個回調函數來繪製該模式的一個實例,並將該指針傳遞給CGPatternCreate
。當你繪製圖案時,Quartz會調用你的回調函數,然後平鋪你繪製的任何東西。
6
這裏有一個小片段
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
[self patternMake2:rect context:context];
}
//-------------------------------------------------------------------
// patternMake2
//-------------------------------------------------------------------
void pattern2Callback (void *info, CGContextRef context) {
UIImage *image = [UIImage imageNamed:@"NavBarBg.png"];
CGImageRef imageRef = [image CGImage];
CGContextDrawImage(context, CGRectMake(0, 0, 320, 44), imageRef);
}
- (void)patternMake2:(CGRect)rect context:(CGContextRef)context
{
static const CGPatternCallbacks callbacks = { 0, &pattern2Callback, NULL };
//NSLog(@"rect: %f %f %f %f", rect.origin.x, rect.origin.x, rect.size.width, rect.size.height);
//CGContextSaveGState(context);
CGColorSpaceRef patternSpace = CGColorSpaceCreatePattern(NULL);
CGContextSetFillColorSpace(context, patternSpace);
CGColorSpaceRelease(patternSpace);
CGSize patternSize = CGSizeMake(315, 44);
CGPatternRef pattern = CGPatternCreate(NULL, self.bounds, CGAffineTransformIdentity, patternSize.width, patternSize.height, kCGPatternTilingConstantSpacing, true, &callbacks);
CGFloat alpha = 1;
CGContextSetFillPattern(context, pattern, &alpha);
CGPatternRelease(pattern);
CGContextFillRect(context, rect);
//CGContextRestoreGState(context);
}
相關問題
- 1. 有人可以告訴我它從哪裏採摘圖像?
- 2. 有人可以告訴我如何創建這個非常簡單的makefile嗎?
- 3. 我可以創建一個函數告訴按鈕打開
- 4. 有人可以告訴我如何使用jQuery添加到一個.css值
- 5. 有人可以告訴我如何創建一個帶有參數的url的QR碼
- 6. 有人能告訴我XCode到iPhone的路徑嗎?
- 7. 可能有人幫我檢查如何創建一個列表?
- 8. 有人可以告訴我我可能會做錯什麼
- 9. 誰能告訴我如何在tfs下創建一個分支,如圖所示
- 10. 有人能告訴我如何在java中創建一個線程組中有n個線程的數組?
- 11. 任何人都可以告訴我如何爲頁面排名JUNG創建一個圖表
- 12. 如何告訴BitmapFactory.decodeStream給我一個完整的質量圖像?
- 13. 我可以遞歸地在Zookeeper中創建一個路徑嗎?
- 14. 任何人都可以告訴我如何使用smartgit創建一個REMOTE分支?
- 15. 有人能告訴我一個簡單的方法來比較字符串
- 16. 請告訴我如何創建一個小部件
- 17. 有人可以告訴我這個腳本有什麼問題
- 18. 我可以強調一個URL路徑
- 19. 我如何繪製一個圖像到另一個UIImage來創建一個UIImage
- 20. 有人可以告訴我它是什麼樣的加密嗎?
- 21. 如何創建一個類來描述元素的XML屬性?
- 22. 任何人都可以告訴我怎麼做這個圖像加載?
- 23. 如何在一個單一的路徑合併多來創建一個圖形
- 24. 有人能告訴我如何實現這個Javascript? HTML CSS
- 25. 我可以告訴我的泛型,關於它應該只是一個函數?
- 26. 我是一個新來Python的人制作我的第一個代碼。有人能告訴我以下代碼有什麼問題嗎?
- 27. 使用Spring 3.0,我可以創建一個可選的路徑變量嗎?
- 28. 我有一個圖像路徑(圖像在另一臺服務器上)。我想從android中的服務器獲取圖像。請告訴我
- 29. Python/C++/Java:有沒有一個庫可以識別字符並告訴我它們在圖像中的位置?
- 30. 我可以用圖像列表創建一個JFrame嗎?
我們一定要NULL傳遞給信息? – kelin 2015-08-31 09:08:12