我在Objective C中使用xCode,我想知道如何将具有双精度类型元素的数组转换为可以在XCode中轻松处理的图像?
该数组的定义如下:
double x [50][100];另外,我不确定如何释放这个变量(x)。我需要担心它的回收吗?
发布于 2011-10-21 08:55:58
我正在使用Objective C的xCode,我想知道如何将具有双精度类型元素的数组转换为可以在XCode中轻松处理的图像?
这些数字需要表示像素的组成部分。对于RGB颜色,您需要每个像素3或4个分量(数字),这取决于您是否需要透明度(alpha)。对于单色(灰度),你会想要1或2。对于CMYK颜色(用于打印),你会想要4或5。(实际上,我不确定你是否可以做CMYKA。)
此外,它们需要按定义的顺序排列。RGB颜色的常见顺序包括RGBA (alpha最后)和ARGB (alpha优先)。
最后,它们应该在平面数组中。您可以使用多维数组,但我不确定您是否可以依赖它。
一旦您满足了所有这些条件,您将需要将数字数组传递给CGImage或CGBitmapContext,具体取决于您所做的工作。这两个都是Core Graphics的一部分。
还有,我不确定如何释放这个变量(x)。我需要担心它的回收吗?
不,因为你没有动态分配它。没有声明的变量有“自动存储持续时间”,这意味着您所期望的,并且在您的声明中,整个数组都在变量中。
与下面这样的声明形成对比:
double *x = …;在该声明中,变量中只有一个指针;它所指向的内存位于其他地方,可能会自动管理,也可能不会自动管理,这完全取决于分配的方式。
https://stackoverflow.com/questions/7843161
复制相似问题