ImageList中:32位图像质量损失(ImageList: 32-bit Images lose

2019-06-24 01:18发布

我使用ImageListTreeViewListView 。 我首先设置图像质量设置为32位,然后加入其是半透明的图像。 质量看起来不错,但一两分钟的编码,编译和执行申请后,质量很糟糕。

见截图:

使用的属性

ColorDepth: Depth32Bit
ImageSize: 16; 16
TransparentColor: Transparent

有哪些是半透明的,但不是完全透明的像素背后的黑色像素。

重新添加的所有图像恢复原来的质量,但几分钟后,它看起来像在截图的右侧。

Answer 1:

它看起来像时的图像被存储为alpha通道数据丢失ImageStream (VS设计器的默认行为)。 所以,如果你确定以停止使用设计器来设置图像ImageList ,您可以使用半透明图像可达ColorDepth.Depth32Bit 。 这是非常不方便的,但它的工作原理。

所以,你可以把你的图像Resources.resx文件,并在其添加到代码中适当的位置。 例如在你构造UserControl / Form ,调用后InitializeComponent()通过这样的代码:

  _imageList.Images.Add(Resources.Image32);
  _imageList.Images.SetKeyName(0, "Image32");
  _myButton.Image = 0;

(此信息是在注释中标明响应提供答案,我已经添加了这个作为答案所以这将是难以错过另一个可用的选项)



文章来源: ImageList: 32-bit Images lose quality