[ASP.net/C#] Opvragen van groote van een plaatje

Pagina: 1
Acties:

  • MetalfanBlackness
  • Registratie: Oktober 2001
  • Niet online
Weet iemand of een functie in c#/asp.net zit die hetzelfde doet als getimagesize bij php
Het moet d.m.v. een url opgevraagt worden.
Je kunt de groote wel opvragen door middel van een bitmap,
maar dan moet je de path op je lokale pc aangeven bijv. @"c:\wwwroot\test\test.gif"

Solarboiler: Top Senz 200 Nero-3 ⣿⣿ Photovoltaics: 9x LG 320N1K-A5, SE 3000H


  • whoami
  • Registratie: December 2000
  • Laatst online: 30-04 15:31
Dat hoeft helemaal niet; je kan een bitmap maken dmv de Bitmap constructor die een stream als argument neemt. Die stream is dan bv een networkstream die naar jouw plaatje wijst.

https://fgheysels.github.io/


  • MetalfanBlackness
  • Registratie: Oktober 2001
  • Niet online
whoami schreef op dinsdag 20 september 2005 @ 14:30:
Dat hoeft helemaal niet; je kan een bitmap maken dmv de Bitmap constructor die een stream als argument neemt. Die stream is dan bv een networkstream die naar jouw plaatje wijst.
Dit moet via een url, ik heb dus een url van een plaatje en daarvan wil ik de height en/of width van weten in c#

Ik wil dus geen Bitmap maken, maar van een plaatje (gif) opvragen

[ Voor 8% gewijzigd door MetalfanBlackness op 20-09-2005 14:34 . Reden: toevoeging ]

Solarboiler: Top Senz 200 Nero-3 ⣿⣿ Photovoltaics: 9x LG 320N1K-A5, SE 3000H


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 27-04 18:17

gorgi_19

Kruimeltjes zijn weer op :9

MetalfanBlackness schreef op dinsdag 20 september 2005 @ 14:32:
[...]


Dit moet via een url, ik heb dus een url van een plaatje en daarvan wil ik de height en/of width van weten in c#
Dat zegt whoami :? Je pakt de stream, zet die in een Bitmap (= een class) en je kan de height / width er uit krijgen.

[ Voor 3% gewijzigd door gorgi_19 op 20-09-2005 14:36 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 30-04 15:39

pjvandesande

GC.Collect(head);

MetalfanBlackness schreef op dinsdag 20 september 2005 @ 14:32:
[...]


Dit moet via een url, ik heb dus een url van een plaatje en daarvan wil ik de height en/of width van weten in c#

Ik wil dus geen Bitmap maken, maar van een plaatje (gif) opvragen
Door er een Bitmap object van te maken kun je de Size van het plaatje opvragen.
Aan de ctor van Bitmap geef je de stream mee die naar je plaatje linkt en daarna vraag je de Size op via je Bitmap object.
Dat het een Gif is maakt geen verschil, want dat is alleen maar de compressie techniek.

  • MetalfanBlackness
  • Registratie: Oktober 2001
  • Niet online
Kunnen jullie een klein voorbeeldje geven, want ik weet niet waar ik de url moet meegeven.
Bijv voor het openen van http://gathering.tweakers...kers/images/icons/rss.gif in een networkstream

[ Voor 4% gewijzigd door MetalfanBlackness op 20-09-2005 14:53 ]

Solarboiler: Top Senz 200 Nero-3 ⣿⣿ Photovoltaics: 9x LG 320N1K-A5, SE 3000H


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 30-04 15:39

pjvandesande

GC.Collect(head);

MetalfanBlackness schreef op dinsdag 20 september 2005 @ 14:49:
Kunnen jullie een klein voorbeeldje geven, want ik weet niet waar ik de url moet meegeven.
Bijv voor het openen van http://gathering.tweakers...kers/images/icons/rss.gif in een networkstream
NetworkStream Class

  • MetalfanBlackness
  • Registratie: Oktober 2001
  • Niet online
Deze pagina is mij niet onbekend, opzoeken op msdn is imo standaard voor zoiets.
Ik ga niet eerst roepen en dan pas kijken.

Solarboiler: Top Senz 200 Nero-3 ⣿⣿ Photovoltaics: 9x LG 320N1K-A5, SE 3000H


Verwijderd

Kom eens met wat code die je schreven hebt om dit werkend te krijgen dan? Ik neem aan dat je begrijpt dat dit onderdeel is van de oplossing, en dat je er dus iets mee geprobeerd hebt te maken.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Je kan ook zelf dan wel aangeven wat er niet wil lukken. Maar je kan beter even naar de WebRequest en WebResponse classes kijken. Dan hoef je niet zelf het http protocol te implementeren.

C#:
1
2
3
WebRequest myRequest = WebRequest.Create("http://www.url.com");
WebResponse myResponse = myRequest.GetResponse();
Stream ReceiveStream = myResponse.GetResponseStream();

[ Voor 9% gewijzigd door Woy op 20-09-2005 15:37 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • MetalfanBlackness
  • Registratie: Oktober 2001
  • Niet online
code:
1
2
3
4
5
Socket testSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
NetworkStream testStream = new NetworkStream(testSocket, FileAccess.Read, false);
            
System.Drawing.Image testBitmap = new System.Drawing.Bitmap(testStream, false);
int width = testBitmap.Width;


Exception Details: System.IO.IOException: Operation not allowed on non-connected sockets.

----------------------------------------------------

Bedankt voor de hulp, dit werkt:

code:
1
2
3
4
5
6
WebRequest myRequest = WebRequest.Create(BarUrl);
WebResponse myResponse = myRequest.GetResponse();
Stream ReceiveStream = myResponse.GetResponseStream();

System.Drawing.Image testBitmap = new System.Drawing.Bitmap(ReceiveStream, false);
int width = testBitmap.Width;

[ Voor 48% gewijzigd door MetalfanBlackness op 20-09-2005 15:58 . Reden: layout, oplossing gevonden ]

Solarboiler: Top Senz 200 Nero-3 ⣿⣿ Photovoltaics: 9x LG 320N1K-A5, SE 3000H


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 30-04 15:39

pjvandesande

GC.Collect(head);

Je vergeet te connecten. Je zal eerst testSocket.Connect( EndPoint ) moeten aanroepen.

  • whoami
  • Registratie: December 2000
  • Laatst online: 30-04 15:31
Maar de methode van rwb zou wel een betere oplossing kunnen zijn....

https://fgheysels.github.io/


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 30-04 15:39

pjvandesande

GC.Collect(head);

whoami schreef op dinsdag 20 september 2005 @ 15:56:
Maar de methode van rwb zou wel een betere oplossing kunnen zijn....
rwb schreef op dinsdag 20 september 2005 @ 15:36:
Je kan ook zelf dan wel aangeven wat er niet wil lukken. Maar je kan beter even naar de WebRequest en WebResponse classes kijken. Dan hoef je niet zelf het http protocol te implementeren.
Ik gebruik zelf ook altijd een WebRequest, werkt prima. Zeker omdat je ook met de ErrorCode en Exceptions werkt van het HTTP protocol.
Is wel makkelijker te implementeren dan een NetworkStream.

  • MetalfanBlackness
  • Registratie: Oktober 2001
  • Niet online
questa schreef op dinsdag 20 september 2005 @ 15:55:
Je vergeet te connecten. Je zal eerst testSocket.Connect( EndPoint ) moeten aanroepen.
Heb ik naar gekeken, maar kon niet bedenken wat hier zou moeten komen.
questa schreef op dinsdag 20 september 2005 @ 16:00:
Ik gebruik zelf ook altijd een WebRequest, werkt prima. Zeker omdat je ook met de ErrorCode en Exceptions werkt van het HTTP protocol.
Is wel makkelijker te implementeren dan een NetworkStream.
Inderdaad veel makkelijker zekers als je niet zo'n held bent met sockets O-)

Solarboiler: Top Senz 200 Nero-3 ⣿⣿ Photovoltaics: 9x LG 320N1K-A5, SE 3000H


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 30-04 15:39

pjvandesande

GC.Collect(head);

MetalfanBlackness schreef op dinsdag 20 september 2005 @ 16:02:
[...]


Heb ik naar gekeken, maar kon niet bedenken wat hier zou moeten komen.
Als je even naar de members van de Socket class had gekeken had je de Connect method gezien. Als parameter accepteerd deze een EndPoint waar jij in jou geval een IPEndPoint zou moeten gebruiken.

[ Voor 1% gewijzigd door pjvandesande op 20-09-2005 16:34 . Reden: typo ]


  • MetalfanBlackness
  • Registratie: Oktober 2001
  • Niet online
hartelijk dank voor uw hulp.

Solarboiler: Top Senz 200 Nero-3 ⣿⣿ Photovoltaics: 9x LG 320N1K-A5, SE 3000H

Pagina: 1