Может ли приложение Android взять на себя ответственность за динамическую раскраску ресурсов изображения с помощью кода? - PullRequest
1 голос
/ 09 ноября 2010

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

Скажем, вы создаете великолепное изображение в фотошопе, может быть, в автомобиле.Вы делаете автомобиль красным.Затем, используя дополнительные полупрозрачные слои, вы добавляете более яркие и темные пятна для достижения таких вещей, как затенение или блеск на солнце.Может быть, тогда вы добавите еще один слой, который является хромированной отделкой.

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

Прежде всего, возможно ли это?Если да, то о чем мне нужно начать читать, чтобы иметь возможность динамически регулировать цвет изображения, подобного этому.Какие классы доступны для использования, которые могут мне помочь?Есть ли какие-нибудь подводные камни, на которые мне нужно обратить внимание?

Во-вторых, и, возможно, самое главное, что мне конкретно нужно сказать моему графическому дизайнеру, который мне нужен, чтобы правильно настроить меня.Если я не могу передать то, что мне нужно, я вряд ли когда-нибудь смогу написать код, чтобы он выглядел великолепно!

Как всегда, спасибо за чтение и любую помощь, которую вы можете предоставить!

1 Ответ

2 голосов
/ 10 ноября 2010

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

Это можно сделать двумя способами.

Вы можете накладывать частично прозрачные изображения друг на друга.Я не знаю ваш вариант использования, но вы можете легко отобразить стопку изображений с прозрачными (и частично прозрачными областями), которые занимают то же пространство, что и ваши слои в Photoshop.В этот момент вы можете просто поменять местами разные слои.Вы также можете сделать это с помощью метода View.onDraw (Canvas) и нарисовать стопку частично прозрачных изображений.

Это один из способов.Еще бы подумать о том, что вы можете сделать в Photoshop для плоского изображения.Вы можете изменить различные аспекты цвета изображения так же, как и элементы в меню Изображение -> Настроить в фотошопе (яркость и контракты, оттенок и насыщенность, баланс цвета, уровни, кривые и т. Д.).Это всего лишь уравнения для пикселей, а в некоторых случаях довольно простые (в других случаях, хотя и довольно сложные).

Если ваше изображение относительно маленькое, вы можете фактически просматривать все его пиксели и выполнять операции над ними.если их это устраивает (может быть, это излишне).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...