在objective-c中澄清图像属性
Posted
技术标签:
【中文标题】在objective-c中澄清图像属性【英文标题】:clarification of image properties in objective-c 【发布时间】:2012-07-11 16:22:07 【问题描述】:我正在尝试为我在 Objective-c 中编写的一个类创建随机生成的图像,并且只是希望对不同的图像属性和类型有所了解。 我想创建以下函数:
-(UIImage*)randomlyGenerateAnImage;
此函数将使用成员数据创建一个准随机算法生成的 UIImage。
我真的很难理解 UIImages、CGRects 和 CGContextRefs 之间的关系。哪个是我绘制的,我应该为 UIImage 分配什么。
编辑 我正在尝试动态生成我的图像,例如:
UIImage * newImage = [[UIImage alloc] "initBlankImageWithSize(X, Y)"];
CGContextRef * newContext = "getContextFromImage(newImage)";
"在 newContext 上绘制......";
返回新图像;
【问题讨论】:
不是你问的,但是对于“创意编码”类型的练习,你可能会发现 openFrameworks (openframeworks.cc) 更容易管理,因为很多图形管道管道都被简化了 【参考方案1】:对于由UIImageView
填充的UIViewController
,您可以这样做
UIGraphicsBeginImageContext(self.view.frame.size);
[sigBox.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
//drawing code that says CGContext a lot
sigBox.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
利用UIImageView
“拥有”的UIImage
。因此,您使用由CGRect
定义的CGContext
,然后您可以从CGContext
返回UIImage
。我怀疑这种解释是否能让任何事情更清楚,但希望代码能做到。
【讨论】:
【参考方案2】:您需要一个可以绘制的上下文。您可以使用UIGraphicsGetCurrentContext()
获取当前上下文。
您可以通过UIGraphicsGetImageFromCurrentImageContext()
从当前上下文创建图像
CGRect
是您视图中的一个矩形。
您应该阅读 Apple 的绘图指南以获取更多信息。
【讨论】:
以上是关于在objective-c中澄清图像属性的主要内容,如果未能解决你的问题,请参考以下文章