Я искал создание растровых изображений PARGB32. Кажется, это необходимо для создания изображений, которые полностью работают с элементами меню после XP.Предварительно умножить пиксели после вызова WIC «Копирование пикселей»
Этот пример http://msdn.microsoft.com/en-us/library/bb757020.aspx?s=6 очень интересен, но довольно сложный, поскольку я редко использовал когда-либо ранее интерфейсы OLE. Однако, тщательно изучив фрагмент кода, который использует WIC и OLE, я думаю, что понимаю, как это работает. Единственное, что меня смущает, это комментарий пользователя «Дэвид Хеллерман». Подводя итог, он утверждает, что этот пример не завершен. Он не принимает во внимание любую потенциальную альфа-информацию в исходном значке - и если есть альфа-данные, она должна быть предварительно умножена на пиксельную основу при сканировании через переменную ppvBuffer.
Мой вопрос состоит из двух частей. Как определить наличие альфа-данных в моих значках при использовании WIC вместо GDI и как я могу сделать предварительное умножение на пиксели, если оно существует?
ОТЛИЧНЫЙ ответ @Vincent и тот, который действительно дает мне несколько новых идей для использования этого материала COM. Для меня это совершенно новое! Более того, я думаю, что парень на странице MSN, который сказал, что код WIC был неправильным, был на самом деле неправ! Если бы он читал дальше страницы, он видел бы функцию-инициализацию 'Initialize', используемую в рабочем примере, которая делает то же самое, что, я думаю, вы предлагаете с помощью функции' IWICConvertBitmapSource'. Я прав? –
Да, похоже, они дважды написали код и сделали это правильно во второй раз (в AddIconToMenuItem), но код ближе к вершине (это все, что я видел при ответе на вопрос) ошибочен. Да, они сделали именно то, что я предлагал там. –