Специальный режим смешивания цветов для тонирования изображения - PullRequest
0 голосов
/ 10 сентября 2011

Я пытаюсь тонировать изображение.Но на этот раз более хитрый вариант.

  • Изображение содержит информацию saturation, brightness и alpha (к сожалению, как RGBA), которая должна не отбрасывается (насыщенность для черной тени).

  • Цвет оттенка содержит информацию hue, saturation, brightness и alpha (к сожалению, также как RGBA), котораятакже не следует сбрасывать.

  • Как мне представляется, каждый компонент HSBA (кроме оттенка) должен быть умножен на , чтобы иметь полный контроль над тонированным изображением - например,когда я предоставляю менее яркий оттенок, яркость изображения также следует уменьшить.

Итак, что-то вроде:

(h,s,b,a) = (h_tint, s_tint*s_image, b_tint*b_image, a_tint*a_image)

Я искал в интернете, ноэта процедура , кажется, не является обычной , даже если на данный момент игнорируется альфа-канал (или даже насыщенность).

Мне это нужно в iOS, но я не сделалдаже не найти такой режим наложения слоев в Photoshop.Я пробовал (в iOS и, если есть в Photoshop):

  • Multiply - не похоже на то, что я хочу
  • Darken - не совсем
  • Color Dodge - хотя бы в некоторой степени пригодный для использования, но не совсем правильный
  • Plus Darker - тоже нормально, но не совсем
  • Color / Luminosity / Hue- это были бы мои любимые, но они отбрасывают значения насыщенности и яркости оттенка вместо их умножения.Но может быть, если есть способ применить пропущенную насыщенность и яркость впоследствии?

Итак, имеет ли описанный режим наложения общее название / будет ли это иметь смысл?

Есть какие-нибудь идеи о том, как это сделать в iOS? (мне известны Apple Developer Guide и Reference и вопросы о переполнении стека о тонировании и с наложением )

1 Ответ

0 голосов
/ 10 сентября 2011

Вы можете создать CGBitmapContextRef, который поддерживается данными под вашим контролем в известном формате.Затем вы можете нарисовать свое изображение в этом контексте.Теперь у вас есть данные для изображения в известном формате.Теперь вы можете делать любую математику на пикселях.Как только вы закончите копаться с пикселями, вы можете создать CGImageRef из CGContextRef.

Математика зависит от вас.

...