在Button
或ListView
上显示时,32位ImageList
中的32位图像无法正确显示。图片边缘有一些黑色半透明像素(像PNG一样有Alpha通道)。
此外,图片已损坏,质量因线条而被降级(例如,无需重新取样即可调整图片大小)。
插入的图像质量为32位,尺寸与ImageList
图像相同。
我尝试使用Button
在Resources files
上放置相同的图片,但是对于ListView
,我必须使用ImageList
- 这不起作用好。
是否存在内存泄漏或与32位ImageList
相关的已知问题?
答案 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)并且它仍然被破坏。最后决定使用调整大小的选项(上面的解决方案)并解决了它。