Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Récupérer une icone hébergé sur un serveur web

4 réponses
Avatar
Bull
Bonjour,

J'ai déjà posté un post sur ce sujet mais ayant fait preuve de maladdresse,
ça a été un peu confu.

Je re post donc en étant plus clair et plus précis.

J'ai une icone hébergée sur un serveur web par ex. ici :
http://www.clubic.com/favicon.ico

J'aimerais récupérer cette icone dans un objet "System.Drawing.Icon"

J'ai essayé comme suit :

Dim hwebrequest As System.Net.WebRequest =
System.Net.WebRequest.Create("http://www.clubic.com/favicon.ico")
Dim hwebresponse As System.Net.WebResponse = hwebrequest.GetResponse
Dim readstr As System.IO.Stream = hwebresponse.GetResponseStream
Dim icone As New System.Drawing.Icon(readstr)

Mais mon icone reste à nothing et j'ai une erreur :

Length <error: an exception of type: {System.NotSupportedException}
occurred> Long

Quelqu'un peut-il m'aider ?

Merci d'avance,
Bull

4 réponses

Avatar
Ghislain Proulx
Salut,

Google fait des miracles tu sais ! ;-) Voici ce que j'ai trouvé (premier
lien avec favicon.ico et WebResponse)
Source : http://www.thecodeproject.com/csharp/Favalias.asp
Favorites
Your favorite URLs are also stored in an XML file. I use it to generate the
favorites menu. I sort the favorites using an XSLT style sheet. You can
quickly add a favorite by drag'n drop (with the Ctrl key pressed) a link
from your browser onto the Favalias form. To manage your favorites, go to
"Options-Edit favorites".

To load the favicons (if the web sites provide one), click "Options-Load
favicons". It will launch asynchronous web requests to retrieve them. To do
that I have used the PriorityThreadPool developed by Stephen Toub. This is a
managed ThreadPool which works far better than the .NET framework ThreadPool
(which is quite buggy when you attempt to do asynchronous web requests).
First I look for a <link rel="shortcut icon"> (using Regex) because some web
sites don't use the name favicon.ico. Then I do a second web request to
download the favicon ; it's so simple in C# :

WebRequest requestIcon = WebRequest.Create(TheURL);
requestIcon.Timeout = 15000;
using(WebResponse response = requestIcon.GetResponse())
{
Stream myStream = response.GetResponseStream();
using(Image img = Image.FromStream(myStream))
{
saveFavicon(rs.faviconName, img);
}
}The saveFavicon method saves the icon in a Hashtable to use it during the
menu creation.

Plus (en bonus, la 'traduction' en VB.Net !) ;-)

Dim requestIcon As WebRequest = WebRequest.Create(TheURL)
requestIcon.Timeout = 15000
Dim myStream As Stream = response.GetResponseStream()
Dim img As Image = Image.FromStream(myStream)
Try
saveFavicon(rs.faviconName, img)
Finally
img.Dispose()
End Try


Bonne journée

Ghislain Proulx

"Bull" a écrit dans le message de
news:
Bonjour,

J'ai déjà posté un post sur ce sujet mais ayant fait preuve de


maladdresse,
ça a été un peu confu.

Je re post donc en étant plus clair et plus précis.

J'ai une icone hébergée sur un serveur web par ex. ici :
http://www.clubic.com/favicon.ico

J'aimerais récupérer cette icone dans un objet "System.Drawing.Icon"

J'ai essayé comme suit :

Dim hwebrequest As System.Net.WebRequest > System.Net.WebRequest.Create("http://www.clubic.com/favicon.ico")
Dim hwebresponse As System.Net.WebResponse = hwebrequest.GetResponse
Dim readstr As System.IO.Stream = hwebresponse.GetResponseStream
Dim icone As New System.Drawing.Icon(readstr)

Mais mon icone reste à nothing et j'ai une erreur :

Length <error: an exception of type: {System.NotSupportedException}
occurred> Long

Quelqu'un peut-il m'aider ?

Merci d'avance,
Bull




Avatar
Bull
Salut,

J'avais vu ce petit script.

Le problème est que bizarrement, il ne marche pas avec des favicon qui font
plus de 16*16 par ex pour ce site :

http://www.koreus.com/favicon.ico

Or, Mozilla, lui trouve le favicon de ce site sans pb.

Une idée d'où pourrait venir le pb ?
Merci

Bull

"Ghislain Proulx" <http://cerbermail.com/?WdR52BEISJ> a écrit dans le
message de news:
Salut,

Google fait des miracles tu sais ! ;-) Voici ce que j'ai trouvé (premier
lien avec favicon.ico et WebResponse)
Source : http://www.thecodeproject.com/csharp/Favalias.asp
Favorites
Your favorite URLs are also stored in an XML file. I use it to generate


the
favorites menu. I sort the favorites using an XSLT style sheet. You can
quickly add a favorite by drag'n drop (with the Ctrl key pressed) a link
from your browser onto the Favalias form. To manage your favorites, go to
"Options-Edit favorites".

To load the favicons (if the web sites provide one), click "Options-Load
favicons". It will launch asynchronous web requests to retrieve them. To


do
that I have used the PriorityThreadPool developed by Stephen Toub. This is


a
managed ThreadPool which works far better than the .NET framework


ThreadPool
(which is quite buggy when you attempt to do asynchronous web requests).
First I look for a <link rel="shortcut icon"> (using Regex) because some


web
sites don't use the name favicon.ico. Then I do a second web request to
download the favicon ; it's so simple in C# :

WebRequest requestIcon = WebRequest.Create(TheURL);
requestIcon.Timeout = 15000;
using(WebResponse response = requestIcon.GetResponse())
{
Stream myStream = response.GetResponseStream();
using(Image img = Image.FromStream(myStream))
{
saveFavicon(rs.faviconName, img);
}
}The saveFavicon method saves the icon in a Hashtable to use it during the
menu creation.

Plus (en bonus, la 'traduction' en VB.Net !) ;-)

Dim requestIcon As WebRequest = WebRequest.Create(TheURL)
requestIcon.Timeout = 15000
Dim myStream As Stream = response.GetResponseStream()
Dim img As Image = Image.FromStream(myStream)
Try
saveFavicon(rs.faviconName, img)
Finally
img.Dispose()
End Try


Bonne journée

Ghislain Proulx

"Bull" a écrit dans le message de
news:
> Bonjour,
>
> J'ai déjà posté un post sur ce sujet mais ayant fait preuve de
maladdresse,
> ça a été un peu confu.
>
> Je re post donc en étant plus clair et plus précis.
>
> J'ai une icone hébergée sur un serveur web par ex. ici :
> http://www.clubic.com/favicon.ico
>
> J'aimerais récupérer cette icone dans un objet "System.Drawing.Icon"
>
> J'ai essayé comme suit :
>
> Dim hwebrequest As System.Net.WebRequest > > System.Net.WebRequest.Create("http://www.clubic.com/favicon.ico")
> Dim hwebresponse As System.Net.WebResponse = hwebrequest.GetResponse
> Dim readstr As System.IO.Stream = hwebresponse.GetResponseStream
> Dim icone As New System.Drawing.Icon(readstr)
>
> Mais mon icone reste à nothing et j'ai une erreur :
>
> Length <error: an exception of type: {System.NotSupportedException}
> occurred> Long
>
> Quelqu'un peut-il m'aider ?
>
> Merci d'avance,
> Bull
>
>




Avatar
Ghislain Proulx
Salut,

Aucune idée.... selon les 'normes' (je sais... je sais...) de Microsoft pour
IE5 (même chose pour IE6 je suppose), le format 'obligatoire' (je sais... je
sais...) est de 16x16.
Réf.: http://minilien.com/?AydjOdMGB4

Alors... utiliser des images 16x16 ? Je sais que ce n'est pas terrible
comme solution mais rien trouver de mieux.

Bonne journée

Ghislain Proulx

"Bull" a écrit dans le message de
news:%
Salut,

J'avais vu ce petit script.

Le problème est que bizarrement, il ne marche pas avec des favicon qui


font
plus de 16*16 par ex pour ce site :

http://www.koreus.com/favicon.ico

Or, Mozilla, lui trouve le favicon de ce site sans pb.

Une idée d'où pourrait venir le pb ?
Merci

Bull

"Ghislain Proulx" <http://cerbermail.com/?WdR52BEISJ> a écrit dans le
message de news:
> Salut,
>
> Google fait des miracles tu sais ! ;-) Voici ce que j'ai trouvé


(premier
> lien avec favicon.ico et WebResponse)
> Source : http://www.thecodeproject.com/csharp/Favalias.asp
> Favorites
> Your favorite URLs are also stored in an XML file. I use it to generate
the
> favorites menu. I sort the favorites using an XSLT style sheet. You can
> quickly add a favorite by drag'n drop (with the Ctrl key pressed) a link
> from your browser onto the Favalias form. To manage your favorites, go


to
> "Options-Edit favorites".
>
> To load the favicons (if the web sites provide one), click "Options-Load
> favicons". It will launch asynchronous web requests to retrieve them. To
do
> that I have used the PriorityThreadPool developed by Stephen Toub. This


is
a
> managed ThreadPool which works far better than the .NET framework
ThreadPool
> (which is quite buggy when you attempt to do asynchronous web requests).
> First I look for a <link rel="shortcut icon"> (using Regex) because some
web
> sites don't use the name favicon.ico. Then I do a second web request to
> download the favicon ; it's so simple in C# :
>
> WebRequest requestIcon = WebRequest.Create(TheURL);
> requestIcon.Timeout = 15000;
> using(WebResponse response = requestIcon.GetResponse())
> {
> Stream myStream = response.GetResponseStream();
> using(Image img = Image.FromStream(myStream))
> {
> saveFavicon(rs.faviconName, img);
> }
> }The saveFavicon method saves the icon in a Hashtable to use it during


the
> menu creation.
>
> Plus (en bonus, la 'traduction' en VB.Net !) ;-)
>
> Dim requestIcon As WebRequest = WebRequest.Create(TheURL)
> requestIcon.Timeout = 15000
> Dim myStream As Stream = response.GetResponseStream()
> Dim img As Image = Image.FromStream(myStream)
> Try
> saveFavicon(rs.faviconName, img)
> Finally
> img.Dispose()
> End Try
>
>
> Bonne journée
>
> Ghislain Proulx
>
> "Bull" a écrit dans le message de
> news:
> > Bonjour,
> >
> > J'ai déjà posté un post sur ce sujet mais ayant fait preuve de
> maladdresse,
> > ça a été un peu confu.
> >
> > Je re post donc en étant plus clair et plus précis.
> >
> > J'ai une icone hébergée sur un serveur web par ex. ici :
> > http://www.clubic.com/favicon.ico
> >
> > J'aimerais récupérer cette icone dans un objet "System.Drawing.Icon"
> >
> > J'ai essayé comme suit :
> >
> > Dim hwebrequest As System.Net.WebRequest > > > System.Net.WebRequest.Create("http://www.clubic.com/favicon.ico")
> > Dim hwebresponse As System.Net.WebResponse = hwebrequest.GetResponse
> > Dim readstr As System.IO.Stream = hwebresponse.GetResponseStream
> > Dim icone As New System.Drawing.Icon(readstr)
> >
> > Mais mon icone reste à nothing et j'ai une erreur :
> >
> > Length <error: an exception of type: {System.NotSupportedException}
> > occurred> Long
> >
> > Quelqu'un peut-il m'aider ?
> >
> > Merci d'avance,
> > Bull
> >
> >
>
>




Avatar
Bull
J'ai chercher un peu plus et en fait, le problème ne vient pas de la taille
de l'image mais du fait qu'elles ne sont pas en 16bits (mais en True).

Etrange, tant pis, on fera avec :)

Merci en tout cas
@+

"Ghislain Proulx" <http://cerbermail.com/?WdR52BEISJ> a écrit dans le
message de news:
Salut,

Aucune idée.... selon les 'normes' (je sais... je sais...) de Microsoft
pour
IE5 (même chose pour IE6 je suppose), le format 'obligatoire' (je sais...
je
sais...) est de 16x16.
Réf.: http://minilien.com/?AydjOdMGB4

Alors... utiliser des images 16x16 ? Je sais que ce n'est pas terrible
comme solution mais rien trouver de mieux.

Bonne journée

Ghislain Proulx

"Bull" a écrit dans le message de
news:%
Salut,

J'avais vu ce petit script.

Le problème est que bizarrement, il ne marche pas avec des favicon qui


font
plus de 16*16 par ex pour ce site :

http://www.koreus.com/favicon.ico

Or, Mozilla, lui trouve le favicon de ce site sans pb.

Une idée d'où pourrait venir le pb ?
Merci

Bull

"Ghislain Proulx" <http://cerbermail.com/?WdR52BEISJ> a écrit dans le
message de news:
> Salut,
>
> Google fait des miracles tu sais ! ;-) Voici ce que j'ai trouvé


(premier
> lien avec favicon.ico et WebResponse)
> Source : http://www.thecodeproject.com/csharp/Favalias.asp
> Favorites
> Your favorite URLs are also stored in an XML file. I use it to generate
the
> favorites menu. I sort the favorites using an XSLT style sheet. You can
> quickly add a favorite by drag'n drop (with the Ctrl key pressed) a
> link
> from your browser onto the Favalias form. To manage your favorites, go


to
> "Options-Edit favorites".
>
> To load the favicons (if the web sites provide one), click
> "Options-Load
> favicons". It will launch asynchronous web requests to retrieve them.
> To
do
> that I have used the PriorityThreadPool developed by Stephen Toub. This


is
a
> managed ThreadPool which works far better than the .NET framework
ThreadPool
> (which is quite buggy when you attempt to do asynchronous web
> requests).
> First I look for a <link rel="shortcut icon"> (using Regex) because
> some
web
> sites don't use the name favicon.ico. Then I do a second web request to
> download the favicon ; it's so simple in C# :
>
> WebRequest requestIcon = WebRequest.Create(TheURL);
> requestIcon.Timeout = 15000;
> using(WebResponse response = requestIcon.GetResponse())
> {
> Stream myStream = response.GetResponseStream();
> using(Image img = Image.FromStream(myStream))
> {
> saveFavicon(rs.faviconName, img);
> }
> }The saveFavicon method saves the icon in a Hashtable to use it during


the
> menu creation.
>
> Plus (en bonus, la 'traduction' en VB.Net !) ;-)
>
> Dim requestIcon As WebRequest = WebRequest.Create(TheURL)
> requestIcon.Timeout = 15000
> Dim myStream As Stream = response.GetResponseStream()
> Dim img As Image = Image.FromStream(myStream)
> Try
> saveFavicon(rs.faviconName, img)
> Finally
> img.Dispose()
> End Try
>
>
> Bonne journée
>
> Ghislain Proulx
>
> "Bull" a écrit dans le message de
> news:
> > Bonjour,
> >
> > J'ai déjà posté un post sur ce sujet mais ayant fait preuve de
> maladdresse,
> > ça a été un peu confu.
> >
> > Je re post donc en étant plus clair et plus précis.
> >
> > J'ai une icone hébergée sur un serveur web par ex. ici :
> > http://www.clubic.com/favicon.ico
> >
> > J'aimerais récupérer cette icone dans un objet "System.Drawing.Icon"
> >
> > J'ai essayé comme suit :
> >
> > Dim hwebrequest As System.Net.WebRequest >> > > System.Net.WebRequest.Create("http://www.clubic.com/favicon.ico")
> > Dim hwebresponse As System.Net.WebResponse = hwebrequest.GetResponse
> > Dim readstr As System.IO.Stream = hwebresponse.GetResponseStream
> > Dim icone As New System.Drawing.Icon(readstr)
> >
> > Mais mon icone reste à nothing et j'ai une erreur :
> >
> > Length <error: an exception of type: {System.NotSupportedException}
> > occurred> Long
> >
> > Quelqu'un peut-il m'aider ?
> >
> > Merci d'avance,
> > Bull
> >
> >
>
>