Есть ли способ быстро изменить отдельные значения цвета в изображении? - PullRequest
2 голосов
/ 17 июня 2011

Например, у меня есть CGImageRef, и я хочу сдвинуть все пиксели с красного на оранжевый. Или, говоря другими словами: я хочу применить функцию значения к каждому пикселю в изображении, который изменяет пиксель на основе значений RGBA, которые он имеет. Таким образом, функция значения будет вычислять новые значения компонентов для этого пикселя на основе текущих значений компонентов и некоторого алгоритма, примененного к нему.

Я знаю, как я мог бы написать это вручную с помощью примерно 100 строк кода, но мне интересно, есть ли более простой и, может быть, даже более быстрый способ?

Я полагаю, что Брэд Ларсон где-то упоминал, что подобные вещи можно легко и быстро сделать на GPU. Тем не менее, я должен поддерживать iOS 3.2, поэтому он не должен быть слишком модным.

Был бы рад любым идеям. Спасибо!

1 Ответ

1 голос
/ 17 июня 2011

Насколько я знаю, нет встроенных функций для достижения того, что вы хотите.

Самый простой способ получить ускорение графического процессора при выполнении пользовательских манипуляций с изображением на уровне пикселей - это использование Accelerate.framework . Accelerate будет использовать «лучший путь выполнения» на основе доступного оборудования.

Однако ... порт для iOS был сделан только для iOS4

(отказ от ответственности: у меня мало опыта или знаний обо всем, что возможно в OpenGL, поэтому примите мой ответ как ограниченный в основных графических сферах iOS)

...