Мое приложение загружает и отображает значки для определенных сайтов. Я последовал за Bing's solution для обнаружения формата изображения из потока, но ударил еще одну загвоздку. Предполагая, что фактическое изображение значка, код выглядит следующим образом:Загрузка определенного размера значка в TIcon из потока
var
icon : TIcon;
begin
icon := TIcon.Create;
try
icon.LoadFromStream(faviconStream);
spFavicon.Glyph.Assign(icon);
finally
icon.Free;
end;
end;
(spFavicon является TRzGlyphStatus от Raize компонентов Его свойство Glyph является TBitmap.)
Теперь, это работает, но иногда загруженный значок содержит несколько изображений разных размеров, например 32x32 в дополнение к ожидаемому 16x16. По какой-то причине свойство Glyph элемента управления выбирает больший размер.
Как я могу загрузить только размер 16x16 в TIcon или из TIcon в TBitmap?
Тест Favicon: http://www.kpfa.org/favicon.ico
На редактирования: Если это вообще возможно, я предпочел бы избежать сохранения значок в файл первой.
Я знаю, что могу использовать значок.SetSize (16, 16), чтобы уменьшить значок, но эффект не совсем такой, как если бы было загружено исходное изображение 16x16. –
Проверьте этот вопрос http://stackoverflow.com/questions/3813845 – RRUZ