Я использую XCode с Objective C и мне интересно, как я могу преобразовать массив с элементами типа double в изображение, с которым я могу легко работать в xCode?
Числа должны представлять компоненты пикселей.Для цвета RGB вам потребуется 3 или 4 компонента (числа) на пиксель, в зависимости от того, хотите ли вы прозрачность (альфа).Для монохромного (в оттенках серого) вам понадобится 1 или 2. Для цвета CMYK (для печати) вам понадобится 4 или 5. (На самом деле я не уверен, что вы можете сделать CMYKA.)
Кроме того, они должны быть в определенном порядке.Распространенные заказы на цвет RGB включают RGBA (последний альфа) и ARGB (первый альфа).
Наконец, они должны быть в плоском массиве.Вы можете обойтись без многомерного массива, но я не уверен, что вы можете на это положиться.
Как только вы все это удовлетворите, вам нужно будет передать массив чисел либо в CGImage, либо вCGBitmapContext, в зависимости от того, что вы делаете.Оба они являются частью Core Graphics .
Кроме того, я не уверен, как освободить эту переменную (x).Нужно ли беспокоиться о его освобождении?
Нет, потому что вы не выделяли его динамически.Переменная, не объявленная иначе, имеет «автоматическую продолжительность хранения», что означает именно то, что вы ожидаете, и в вашем объявлении весь массив находится в переменной.
Сравните с объявлением, подобным этому:
double *x = …;
В этом объявлении в переменной содержится только указатель;память, на которую он указывает, находится в другом месте и может или не может управляться автоматически, полностью в зависимости от того, как было выделено .