2012-04-03 75 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