Загрузка значков определенного размера в TIcon из потока - PullRequest
0 голосов
/ 04 января 2011

Мое приложение загружает и отображает значки для определенных веб-сайтов.Я использовал решение Bing для определения формата изображения из потока, но столкнулся с еще одной ошибкой.Предполагая фактическое изображение значка, код выглядит следующим образом:

var
  icon : TIcon;
begin      
  icon := TIcon.Create;
  try
    icon.LoadFromStream( faviconStream );
    spFavicon.Glyph.Assign( icon );
  finally
    icon.Free;
  end;
end;

( spFavicon - это TRzGlyphStatus из Raize Components. Его свойство Glyph - TBitmap)

это работает, но иногда загруженный значок содержит несколько изображений разных размеров, например, 32x32 в дополнение к ожидаемому 16x16.По какой-то причине свойство Glyph элемента управления выбирает больший размер.

Как я могу загрузить только размер 16x16 в TIcon или из TIcon в TBitmap?

Тестовый значок: http://www.kpfa.org/favicon.ico

При редактировании: Если это вообще возможно, я бы предпочел не сохранять значок в файл первым.

1 Ответ

0 голосов
/ 04 января 2011

Основным источником для формата файла .ico является MSDN .Вы должны быть в состоянии решить это из этого.

Процедура ReadIcon в Graphics.pas может быть полезна, но я думаю, что вам нужно только найти 16x16, так как вы ищете значки.Вы можете загрузить исходный код, скажем, в Firefox, и посмотреть, как именно они обрабатывают значки.

...