在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中澄清图像属性的主要内容,如果未能解决你的问题,请参考以下文章

Objective-c KVO:object vs changeDictionary

比较 Objective-C 中的 2 个对象

JavaScript原型 - 请澄清

在objective-c中上传挑选的图像

如何在 Objective-C 中保存图像列表

Objective-C 相关Category