2012-03-20 4 views
3

У меня есть четыре объекта TSpeedButton, каждый из которых имеет BMP-файл, назначенный как символ для изображения кнопки. По какой-то причине delphi решил, что два изображения кнопок должны иметь прозрачный фон, а два должны иметь белый фон. Я сам создал растровые изображения, поэтому они все сохранены с одинаковой глубиной цвета и используют белый фон (не какой-то оттенок почти белого) для фона и имеют цвет фона во всех четырех угловых пикселях изображения.Сделать глиф кнопки имеют прозрачный фон в delphi 7?

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

+4

Обработка глифов Delphi использует пиксель в нижнем левом углу для определения прозрачного цвета. Все пиксели, соответствующие этому цвету, должны быть показаны как прозрачные. Совместим ли нижний левый пиксельный цвет во всех глифах и соответствует ли он тем областям, которые вы хотите быть прозрачными? (Без изображений трудно сказать, в чем проблема, но я думал, что опубликую это как возможность для исследования.) –

+0

Я пробовал простое изображение с белыми пикселями на всех четырех углах, и он работал здесь. –

ответ

2

Ken's comment

обработки глиф Delphi использует пиксель в левом нижнем углу, чтобы определить прозрачный цвет. Все пиксели, соответствующие этому цвету, должны быть показаны как прозрачные. Совместим ли нижний левый пиксельный цвет во всех глифах и соответствует ли он тем областям, которые вы хотите быть прозрачными? (Без изображений трудно сказать, в чем проблема, но я думал, что опубликую это как потенциальную возможность для расследования.)

оказалось правильным ответить (извините, не могу принять комментарий) как правильный ответ!). У изображения, которое я использовал, была тень, достигающая левого нижнего угла, поэтому она была почти белой в этом углу и ровно белой во всех остальных углах.

-1

У меня была аналогичная проблема с D5, и я включил исправление для этого, поскольку я не узнал, почему это происходит.

Определить размер изображения на одну строку выше фактического изображения/глифа. Это заставит изображение записываться начиная с левого верхнего положения и останавливаться перед последней строкой. Это заставит использовать непрозрачный цвет, а лишняя строка ниже изображения не будет визуально заметна.

Смежные вопросы