我正在使用以下代码从文件加载图像:
BitmapImage BitmapImg = null;
BitmapImg = new BitmapImage();
BitmapImg.BeginInit();
BitmapImg.UriSource = new Uri(imagePath);
BitmapImg.CacheOption = BitmapCacheOption.OnLoad;
BitmapImg.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
BitmapImg.EndInit();
它按预期工作,除了以下事实:无论我加载哪种类型的图像(24位RGB,8位灰色,12位灰色,...),在.EndInit()之后,BitmapImage始终具有格式bgr32。我知道网上有讨论,但我还没有找到解决这个问题的方法。
请问有人知道问题已经解决了吗?
Thanks,
tabina
从备注部分BitmapCreateOptions:
如果未选择 PreservePixelFormat,则图像的 PixelFormat
由系统根据系统确定的内容进行选择
产生最佳性能。启用此选项会保留文件
格式,但可能会导致性能下降。
因此您还需要设置PreservePixelFormat
flag:
var bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.UriSource = new Uri(imagePath);
bitmap.CacheOption = BitmapCacheOption.OnLoad;
bitmap.CreateOptions = BitmapCreateOptions.IgnoreImageCache
| BitmapCreateOptions.PreservePixelFormat;
bitmap.EndInit();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)