32位ImageList图像无法正确显示

时间:2011-08-17 09:21:01

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

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

此外,图片已损坏,质量因线条而被降级(例如,无需重新取样即可调整图片大小)。

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

我尝试使用ButtonResources files上放置相同的图片,但是对于ListView,我必须使用ImageList - 这不起作用好。

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

2 个答案:

答案 0 :(得分:0)

仅在导入(32位16x16)ICO文件时才会出现此问题。如果导入32位16x16 PNG文件,则没有问题。

现在你知道了!

答案 1 :(得分:0)

我正在使用Velcro的评论..似乎是32位System.Drawing dll的问题。

我有同样的问题(在32位系统上可怕的缩略图质量),结果证明它不是Listview控件,而是我们的thumbNail生成。我们删除了此SO answer中提供的代码:resizing-an-image-in-asp-net-without-losing-the-image-quality并且效果很好!

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

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