如何用StretchDIBits模拟缩略图周围的阴影?

发布于 2024-07-11 02:25:53 字数 286 浏览 14 评论 0原文

我现在正在编写一个图像查看器,它用于查看缩略图。 由于它很丑,我决定在缩略图周围画阴影。

有背景颜色。 我正在使用 StretchDIBits 在缩略图的位置绘制阴影图像。 但它覆盖了背景颜色真的很烦人...... 当背景是白色时,它看起来很完美。 但如果背景不是白色,则有白色边框。

所以我使用AlphaBlend,首先将阴影图像绘制到DC上,然后使用AlphaBlend到背景上。 但是,我仍然可以看到白色边框。

无论背景是什么,有什么理由要生成完美的阴影吗?

I am now writing a image viewer, It is used for view thumbnails.
As it is ugly, I decide to draw shadow round thumbnail.

There is background color.
I am using StretchDIBits to draw a shadow image at the location of thumbnail.
However it is really annoying that it cover the background color...
When the background is white, it looks perfect.
but if the backgound is not white, it has a white border.

so I make use of AlphaBlend, first draw the shadow image onto a DC, then use AlphaBlend onto the background. However, I can still see the white border.

Is there any why to generate a perfect shadow , no matter what background is.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

饮湿 2024-07-18 02:25:54

您确定阴影位图包含 Alpha 通道的 Alpha 值吗? Iow:您如何创建阴影位图:您是通过模糊透明目标或白色目标上的正方形来实现的吗? 如果是第一个,则阴影位图包含 Alpha 通道,并且应该与背景很好地混合。 如果是第二种,您的阴影位图包含白色片段,因此会将白色与背景混合。

Are you sure the shadow bitmap contains alpha values for the alpha channel ? I.o.w.: how are you creating the shadow bitmap: are you doing that by blurring a square on a transparent target or a white target? If the first, the shadow bitmap contains an alpha channel and should blend fine with the background. if the second, your shadow bitmap contains white fragments and thus will blend that white with the background.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文