2012-04-03 77 views
-1

我試圖創建一個UIImage並將其保存到照片庫,圖像被創建,但它只是一個白色的平面,沒有任何顏色。有任何想法嗎?在UIImage上繪圖

UIGraphicsBeginImageContext(CGSizeMake(320,420)); 
CGContextRef ctx = UIGraphicsGetCurrentContext(); 

UIImage *image = [[UIImage alloc] init]; 

[image drawInRect:CGRectMake(0, 0, 100, 100)]; 

UIImage *newImage;  
newImage = UIGraphicsGetImageFromCurrentImageContext(); 

UIImageWriteToSavedPhotosAlbum(newImage, self, @selector(image:didFinishSavingWithError:ctx:), nil); 

也只是添加到上面。我加了這一行:

[self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; 

現在我得到一個灰度圖像,仍然沒有矩形,但它的東西不同,所以認爲它可能幫助

+0

就這麼你知道,第3-5行什麼都不做。你正在填補一條空白的道路。 – 2012-04-03 00:44:51

+0

這是我調試的一部分 - 我試圖讓某些東西顯示,從那以後它被刪除。所以,任何想法,爲什麼它不工作? – wonza 2012-04-03 00:58:48

回答

0

什麼UIImage的是你要展示?這個代碼僅初始化一個內存空間,但它沒有任何東西,使用[UIImage imageNamed:@「...」];字符串是一些文件的資源爲您的項目。然後,一旦您在上下文中打開並繪製了圖像,您將能夠繪製一個字符串或任何其他字符。

此外,請確保在您從圖像中獲取圖像後關閉上下文。

+0

我正試圖創建一個新的圖像並繪製到它上面,我不想在現有的圖像上繪畫。我認爲[image drawInRect:CGRectMake(0,0,100,100)]; 在指定的座標上畫一個矩形? – wonza 2012-04-03 12:10:04

+0

你正在創建一個沒有任何東西的UIImage。如果你使用CGRectMake創建一個矩形,然後爲它着色等,你可以使用下面的代碼:CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetLineWidth(context,15.0); CGContextSetStrokeColorWithColor(context, [UIColor blueColor] .CGColor); CGRect rectangle = CGRectMake(60,300,650,400); CGContextAddRect(context,rectangle); CGContextStrokePath(context); – tams 2012-04-03 13:02:31

+0

謝謝,我明顯誤解了這是如何工作的。 – wonza 2012-04-03 13:07:47