Я пытаюсь извлечь миниатюру или значок, если миниатюра недоступна из файла или папки, например проводника Windows. Я использую IShellItemImageFactory, и когда миниатюра присутствует, она работает хорошо. Однако, если у файла нет миниатюры, значок, возвращенный методом, имеет черный фон.
Есть подозрение, что причина этого в том, что прозрачность теряется, когда я вызываю Bitmap.FromHbitmap
для преобразования hbitmap в растровое изображение. Можно ли конвертировать без потери прозрачности? Я даже не уверен, в этом ли проблема или нет. Единственная ссылка, которую я смог найти, - это комментарий к вопросу о IShellItemImageFactory , в котором говорится, что
"API иногда возвращает растровые изображения
которые используют предварительно умноженную альфа и
иногда те, которые используют нормальную альфу "
Есть ли какой-нибудь способ получить значок без черного фона или я должен просто придерживаться Icon.ExtractAssociatedIcon
, когда нет миниатюры?