0

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

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

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

Button我试图通过 using来放置相同的图像,Resources files并且效果很好,但是对于ListView,我必须使用ImageList-- 效果不佳。

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

4

2 回答 2

0

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

现在你知道了!

于 2011-09-03T14:01:07.577 回答
0

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

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

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

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

于 2012-02-24T00:20:53.690 回答