Как имитировать тени вокруг миниатюр по StretchDIBits? - PullRequest
0 голосов
/ 29 декабря 2008

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

Есть цвет фона. Я использую StretchDIBits, чтобы нарисовать теневое изображение в месте миниатюры. Однако действительно раздражает, что он покрывает цвет фона ... Когда фон белый, он выглядит идеально. но если фон не белый, он имеет белую рамку.

поэтому я использую AlphaBlend, сначала нарисую теневое изображение на DC, затем использую AlphaBlend на фоне. Тем не менее, я все еще вижу белую рамку.

Есть ли необходимость генерировать идеальную тень, независимо от того, какой фон.

1 Ответ

0 голосов
/ 30 декабря 2008

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

...