Как я могу преобразовать массив с двойными элементами в изображение, с которым я могу работать? - PullRequest
0 голосов
/ 21 октября 2011

Я использую XCode с Objective C, и мне интересно, как я могу преобразовать массив с элементами типа double в изображение, с которым я могу легко работать в xCode?

Массив определяется следующим образом:

double x [50][100];

Кроме того, я не уверен, как освободить эту переменную (x).Нужно ли беспокоиться о его освобождении?

1 Ответ

0 голосов
/ 21 октября 2011

Я использую XCode с Objective C и мне интересно, как я могу преобразовать массив с элементами типа double в изображение, с которым я могу легко работать в xCode?

Числа должны представлять компоненты пикселей.Для цвета RGB вам потребуется 3 или 4 компонента (числа) на пиксель, в зависимости от того, хотите ли вы прозрачность (альфа).Для монохромного (в оттенках серого) вам понадобится 1 или 2. Для цвета CMYK (для печати) вам понадобится 4 или 5. (На самом деле я не уверен, что вы можете сделать CMYKA.)

Кроме того, они должны быть в определенном порядке.Распространенные заказы на цвет RGB включают RGBA (последний альфа) и ARGB (первый альфа).

Наконец, они должны быть в плоском массиве.Вы можете обойтись без многомерного массива, но я не уверен, что вы можете на это положиться.

Как только вы все это удовлетворите, вам нужно будет передать массив чисел либо в CGImage, либо вCGBitmapContext, в зависимости от того, что вы делаете.Оба они являются частью Core Graphics .

Кроме того, я не уверен, как освободить эту переменную (x).Нужно ли беспокоиться о его освобождении?

Нет, потому что вы не выделяли его динамически.Переменная, не объявленная иначе, имеет «автоматическую продолжительность хранения», что означает именно то, что вы ожидаете, и в вашем объявлении весь массив находится в переменной.

Сравните с объявлением, подобным этому:

 double *x = …;

В этом объявлении в переменной содержится только указатель;память, на которую он указывает, находится в другом месте и может или не может управляться автоматически, полностью в зависимости от того, как было выделено .

...