Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Картинки в ToolBar'е 
V
    Опции темы
artsb
Дата 17.11.2009, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Всем привет!

Столкнулся с проблемой некорректной отрисовки изображений на кнопках ToolBar'а.
Если использовать битмапы, то тут всё понятно, всё нормально, но нужно изображение делать с "порубленными краями". 
Это смотрится не красиво. Я решил воспользоваться иконками. Но вместо полупрозрачных пикселей увидел артефакты. Они 
особенно заметны на второй кнопке слева, т.к. там больше всего полупрозрачных пикселей (должно было быть). Вот 
скрин:
user posted image

Не знаю как теперь быть :( Что можете подсказать? Может кто-то сталкивался с этой проблемой?
Вообще, моё мнение, что ImageList косячный компонент...

На счёт битмапов.
Странно, но у uTorrent изображения для кнопок хранятся в битмапе, причём, если этот битмап открыть любым редактором 
или просмотрщиком, то там творится хаос. Тем не менее, прога отрисовывает их отлично. Как это??? O_o
Вот исходное изображение:
user posted image
ipicture.ru перегнал его в jpg почему-то...
Вот скрин:
user posted image

Делаю всё на ВСВ 6.
Всем спасибо за помощь!

ЗЫ я как-то создавал подобную тему и там мы остановились на использовании AlphaControls. Но сейчас я не хочу использовать сторонние компоненты. Нужно решить эту проблему стандартными средствами.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
artsb
Дата 17.11.2009, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Ни у кого нет мыслей?


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
ИванМ
Дата 17.11.2009, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 5
Всего: 23



artsb, проблема не в ImageList, а в картинках. Открой иконку каким-нибудь редактором и подредактируй, чтобы не было пикселей левого цвета. Полупрозрачных пикселей в формате ico не бывает.
PM MAIL   Вверх
artsb
Дата 17.11.2009, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



ИванМ, спасибо за участие! Иконки рисовал я сам, так что с ними всё ОК. В TImage они нормально отрисовываются.
Цитата(ИванМ @  17.11.2009,  20:24 Найти цитируемый пост)
Полупрозрачных пикселей в формате ico не бывает. 

Полностью не согласен. Как тогда системные иконки smile


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
THandle
Дата 18.11.2009, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 25
Всего: 372



artsb, прозрачность для картинок у тебя включена?

Залей тестовый проект, посмотрю.
PM   Вверх
Usper
Дата 18.11.2009, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 13.4.2007

Репутация: 15
Всего: 15



Стандартные компоненты шестого билдера не поддерживают полупрозрачность. Можно рисовать иконку вместе с фоном, однако если фон иконки не совпадает с фоном компонента на которой лежит иконка, то получится опять же некрасиво. Я, в своё время, просто обвёл иконку с фоном рамкой, вроде получилось неплохо smile
user posted image  user posted image


--------------------
На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник.
PM MAIL   Вверх
artsb
Дата 18.11.2009, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



THandle, привет ;)

Цитата(THandle @  18.11.2009,  16:22 Найти цитируемый пост)
прозрачность для картинок у тебя включена?

да. но с прозрачность проблем то и не было. а вот полупрозрачности нет :(
Цитата(THandle @  18.11.2009,  16:22 Найти цитируемый пост)
Залей тестовый проект, посмотрю. 

сделаю пример и выложу.


Цитата(Usper @  18.11.2009,  17:04 Найти цитируемый пост)
Я, в своё время, просто обвёл иконку с фоном рамкой

Я уже тоже подготовился к такому варианту. Но пока он запасной smile Только я немного не так сделал. Я сделал обводку по контуру белым цветом.

Это сообщение отредактировал(а) artsb - 18.11.2009, 18:04


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
artsb
Дата 18.11.2009, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Ура!!! Товарисчи!!!
Результат:
user posted image
Код:
Код

void __fastcall TForm1::FormCreate(TObject *Sender)
{
  Longint Mask[2] = {0, ILC_MASK};
  TIcon *TempIcon = new TIcon();
  __try
    {    
       ImageList1->Handle = (unsigned)ImageList_Create(ImageList1->Width,
           ImageList1->Height, ILC_COLOR32 | Mask[ImageList1->Masked],
         0, ImageList1->AllocBy);
       // Заполняем иконками из диска
       TempIcon->LoadFromFile("C:\\info.ico");
       ImageList1->AddIcon(TempIcon);
    }
  __finally
    {
      delete TempIcon;
    }
}

Естественно, можно брать иконки и из ресурсов.

Все благодарности направляем -> Rrader

Это сообщение отредактировал(а) artsb - 18.11.2009, 18:57


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1677 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.