Форум: "Основная";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];
Вниз«Мягкие» границы для Битмапа… Найти похожие ветки
← →
Matrex © (2006-02-19 20:40) [0]Коллеги, как реализовать «мягкие» границы для битмапа. Т.е. конкретная ситуация – есть битмапы логических устройств (диск C, D, E и т.д. для WXP) как сделать «мягкие» границы при прорисовке этих картинок, например, на TSpeedButton, т.к. создание маски с белым цветом оставляет кант вокруг картинки…
← →
API (2006-02-19 21:06) [1]А зачем Вы оставляете кант?
← →
Matrex © (2006-02-19 21:18) [2]:) А они сами по себе получаются... Может я не достаточно ясно объяснился: т.е. у меня есть ImageList c иконками логических устройств, я хочу их прорисовать на кнопках ToolButton, из-за того что XP предполагает тени на иконках, отображение на кнопках имеет не четкие границы: белый цвет скрывается, а вот граница серого цвета (он очень похож на белый) остается. Система при прорисовке этих иконок, например в проводнике, учитывает граниу, и прорисовывает ее очень "мягко" т.е. этот серый цвет перекрывается и кнопка кажется как "литая" без всяких границ и т.д. с тенью...
← →
Fenik © (2006-02-19 21:45) [3]Надо переписать функцию отрисовки картинки на кнопке, с учетом прозрачности. Или лучше при старте заготовить картинки, наложив их с прозрачностью на фон, имеющий цвет кнопок, а потом уже выводить на кнопки простым копированием.
← →
Matrex © (2006-02-19 22:09) [4]Fenik, создание собственной функции - это вариант номер 1, второй вариант - отрисовка кнопок с известной "подложкой" не решает проблемы т.к. внешний вид кнопок может быть аля 2000 или аля XP или аля XXX. Рискну предположить что есть какая то встроенноя функция, которая может прорисовать битмап с учетом фона, т.к., например, стандартный компонент TPopupMenu успешно справляется с этой задачей, хотя и перекрывает картинку каким-то слижком уж "ярким" синим цветои при наведении мыши, а в остальном картинка прорисована с учетом тени... Кстати, а TotalComander отрисовывает кнопки дисков своими собственными иконками... Неужели это такой уж страшный секрет?
← →
API (2006-02-19 22:26) [5]белый цвет скрывается, а вот граница серого цвета (он очень похож на белый) остается
А кто Вам мешает границу серого цвета, который очень похож на белый, зарисовать настоящим белым цветом?
Т. е., вопрос только в правильной подготовке исходной картинки.
Совет: Чтобы хорошо был заметен кант, во время редактирования изображения используйте в качестве заливки фона не белый, а какой-то более контрастный, по отношению к белому, цвет. Например, оливковый (clOlive)... То есть, конечно, какой сами выберете...
← →
Matrex © (2006-02-19 22:59) [6]Я не знаю, возможно, я создаю проблему на ровном месте, но зарисовать «границу серого цвета, который очень похож на белый» это уже алгоритм (я сейчас как раз пытаюсь это сделать) но тут возникает другая проблема – если тупо перерисовать «серые» оттенки иконки то получается «рваная» картинка (пробовал в PhotoShop, с другой стороны как быть с серым цветом который может находится внутри иконки?)… Я прекрасно понимаю - реализуй алгоритм для того, что бы серые границы преобразовывались в фон, на котором расположена картинка, по какому-то алгоритму и все – проблема решена… Однако я все таки думал что, возможно, есть стандартная функция которая это все реализует…
← →
Defunct © (2006-02-20 01:23) [7]> Я не знаю, возможно, я создаю проблему на ровном месте, но зарисовать «границу серого цвета, который очень похож на белый» это уже алгоритм
Это не алгоритм. Это лень..
Берете Image Editor в поставке Delphi и кисточкой прорисовываете иконки к свое программе. Должно быть стыдно тырить чужие рисунки и даже не найти время на то, чтобы эти тыреные рисунки подправить под свою программу.
← →
antonn © (2006-02-20 06:44) [8]Defunct © (20.02.06 1:23) [7]
Берете Image Editor в поставке Delphi и кисточкой прорисовываете иконки к свое программе.
ну-ну, лучше уж в пайнте:) Microangelo на этом поприще рулит.
по сабжу - там иконки с альфаканалом, потому и мягкие переходы наличествуют. Можно подыскать иконки в png и передрать их в 32бит битмап, а его уже без лишних библиотек и выводить. По крайней мере я так и делаю в одном своем проекте:)
можно попытаться найти алгоритм типа "Directional smooth" из Корел:ФотоПайнт, очень хорошо резкие переходы сглаживает.
или создать маску для иконки и слегка размыть ее Гаусом, собрать в 32битный битмап и выводить.
← →
Compton's G © (2006-02-21 16:00) [9]Defunct ©
Да, по-любому, стыдно, меня так совесть грызёт за каждую "стыренную" иконку, что аж спать ночью не могу. :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.044 c