0

私のアプリケーションは、特定のWebサイトのファビコンをダウンロードして表示します。ストリームから画像形式を検出するためのBingのソリューションに従いましたが、別の問題が発生しました。実際のアイコン画像を想定すると、コードは次のようになります。

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

spFaviconはRaizeコンポーネントのTRzGlyphStatusです。そのGlyphプロパティはTBitmapです)

現在、これは機能しますが、ダウンロードされたアイコンに、予想される16x16に加えて、32x32など、さまざまなサイズの複数の画像が含まれる場合があります。何らかの理由で、コントロールのGlyphプロパティは大きいサイズを選択します。

16x16サイズのみをTIconにロードする、またはTIconからTBitmapにロードするにはどうすればよいですか?

ファビコンのテスト:http ://www.kpfa.org/favicon.ico

編集時:可能であれば、最初にアイコンをファイルに保存することは避けたいと思います。

4

1 に答える 1

0

.icoファイルのファイル形式の主なソースはMSDNにあります。あなたはこれからそれを解決することができるはずです。

Graphics.pasのReadIcon手順は役立つかもしれませんが、ファビコンを探しているので、16x16を見つけるだけでよいと思います。

本当にかわいくなりたい場合は、たとえばFirefoxにソースをダウンロードして、ファビコンがどのように処理されるかを正確に確認できます。

于 2011-01-04T19:22:50.180 に答える