【问题标题】:32-bit ImageList images are not displayed correctly32 位 ImageList 图像无法正确显示
【发布时间】:2011-08-17 09:21:01
【问题描述】:

ButtonListView 上显示时,32 位 ImageList 中的 32 位图像无法正确显示。图片边缘有一些黑色的半透明像素(像PNG一样有Alpha通道)。

此外,图片会损坏,并且质量会因上面的线条而降低(例如,当您调整图片大小而不重新采样时)。

插入的图像为 32 位质量,并且与 ImageList 图像具有相同的尺寸。

我尝试使用Resources files 将相同的图像放在Button 上,这很有效,但对于ListView,我必须使用ImageList——效果不佳。

是否存在与 32 位 ImageList 相关的内存泄漏或已知问题?

【问题讨论】:

    标签: .net-4.0 32-bit imagelist alpha-transparency


    【解决方案1】:

    此问题仅在您导入(32 位 16x16)ICO 文件时发生。如果您导入 32 位 16x16 PNG 文件,则没有问题。

    现在你知道了!

    【讨论】:

    【解决方案2】:

    我同意 Velcro 的评论..似乎是 32 位 System.Drawing dll 的问题。

    我遇到了同样的问题(32 位系统上的缩略图质量很差),结果发现不是Listview 控件,而是我们的thumbNail 生成。我们删除了SO answer:resizing-an-image-in-asp-net-without-losing-the-image-quality 中提供的代码,效果很好!

    我将此归因于 System.Drawing 的问题,因为我们最初让列表视图为我们进行缩放。我们解决问题的第二次尝试是使用开源ImageListView 控件。这也有完全相同的问题,它仍然使用 System.Drawing 来生成拇指。

    然后我们尝试以通用方式手动生成拇指(仍然使用 System.Drawing),但它仍然损坏。最后决定使用调整大小的选项(上述解决方案)并解决了它。

    【讨论】:

      猜你喜欢
      • 2011-10-09
      • 1970-01-01
      • 1970-01-01
      • 2015-09-02
      • 1970-01-01
      • 2013-10-31
      • 2020-08-27
      • 2021-09-26
      • 2018-12-10
      相关资源
      最近更新 更多