| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java ME (J2ME) > Замена определённых цветов картинки |
| Автор: Гость_Mihail 23.12.2005, 16:29 | ||
| Есть метод, меняющий определённый цвет на другой заданный. Вот он:
Глюк состоит в следующем: Если установить цвет, у которого в составляющей RGB один байт цвета(синего, красного или зелёного) равен нулю, а другой нет - то цвет шрифта невозможно поменять. Пример глюкавого цвета: 0xFF008000; Первые два байта (FF) - устанавливают прозрачность цвета(в данном случае абсолютно непрозрачен). Вторые: красный канал (на мой взгляд не проблемный). Третие (зелёный канал): первый байт не равен 0, второй = 0 - именно он вызывает глюк не только в эмуляторе, но и на телефоне(я так думаю). Четвёртый - соответственно синий канал. В чём проблема??? |
| Автор: Гость_Mihail 23.12.2005, 18:52 |
| Я ошибся - оно просто не может отобразить некоторые цвета. Я выяснил почему, и у меня возник другой вопрос. Телефон может отображать лишь 65536 цветов, т.е. два байта на пиксел. У меня же идет 1 байт на прозрачность(можно не учитывать) и по по 3 байта цвета на пиксел, т.е. 16777216 цветов, что превышает цвета телефона. В результате этого телефон принимает цвет ближайший заданному. Принатый цвет не совпадает с заданным и мой метод начинает работать не так как надо. Итак, новый вопрос: Как узнать, какой цвет примет телефон вместо задаваемого, до принятия цвета телефоном? |
| Автор: Guest 23.12.2005, 19:05 |
| Я сам во всём разобрался - необходимая мне функция относиться к классу Graphics. Нужен метод getDisplayColor(int). Правда он возвращает цвет без учёта степени прозрачности(не обрабатывает первый байт числа), но за этим дело не станет. Ну вот и всё - тему можно закрывать. |
| Автор: Dancer 23.12.2005, 20:03 |
| drawRGB(int[] rgbData, int offset, int scanlength, int x, int y, int width, int height, boolean processAlpha) Renders a series of device-independent RGB+transparency values in a specified region |
| Автор: MMA 24.12.2005, 10:37 |
| Это я - Guest и я же - Михаил. Рисунок PNG занимает чуть меньше 4 килобайта, если хранить его массивом целых чисел, не разрастётся ли он до 25 килобайт? Хотя всё равно он это делает при смене цвета шрифта. |