[C#.NET] Data in byte[] koppelen aan imageobject

Pagina: 1
Acties:

  • Yucon
  • Registratie: December 2000
  • Laatst online: 21:54
Ik ben bezig met een fotogallery te bouwen (C#.NET). Op dit moment heb ik de images in de database opgeslagen ik weet dat de meningen daarover verdeeld zijn en de communicatie tussen client-service-db werkt goed. De image data wordt als byte[] die weer een property van een image object is heen en weer gestuurd.

Ik zit nu een beetje in m'n maag met hoe ik de foto's op m'n scherm kan krijgen, en dan met name als er meerdere foto's op 1 scherm moeten staan. Het lukt prima om een los script te schrijven dat het contenttype veranderd en daarna dmv binarywrite de imagedata schrijft en zo de image toont. Maar dat wil ik liever niet omdat ik de data al voorhanden heb op het moment dat ik de gallery oproep en zo'n 2de script het nog eens zou moeten ophalen. Ook heb ik wat voorbeelden gezien waarbij de data opgehaald wordt, er ff een file van geschreven wordt en deze aan een imageobject gekoppeld wordt en vervolgens de file weer gewist. Wil ik ook niet, lijkt me een beetje overbodig.

Wat ik nu graag wil weten: is het op de een of andere manier mogelijk om die byte[] aan een image object te koppelen zonder een file te schrijven of zonder een extern script aan te roepen? Ik kan er nergens iets over vinden, zowel google als gotsearch geven aardig wat hits terug maar het is steeds net niet wat ik zoek. Of is het nu werkelijk zo vreemd wat ik wil bereiken?


edit: had er ff bij moeten zetten dat het om webforms gaat. Bij onderstaande (voor winforms?) kan ik me wel wat voorstellen maar wat ik nu net niet voor elkaar krijg is om zo'n bitmap op het scherm te krijgen. Afaik is het immers geen UI class.

* Yucon zegt er eerlijk bij dat hij in dit deel niet zo thuis is.

[ Voor 14% gewijzigd door Yucon op 19-03-2004 15:26 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:56
Yucon schreef op 19 maart 2004 @ 14:12:
Wat ik nu graag wil weten: is het op de een of andere manier mogelijk om die byte[] aan een image object te koppelen zonder een file te schrijven of zonder een extern script aan te roepen? Ik kan er nergens iets over vinden, zowel google als gotsearch geven aardig wat hits terug maar het is steeds net niet wat ik zoek. Of is het nu werkelijk zo vreemd wat ik wil bereiken?
Je kan die byte toch in een memory stream gooien, en dan geef je die stream mee als constructor voor je Image object ofzo.

Zo dus:
code:
1
2
3
4
5
6
7
byte[] myByteArray;

myByteArray = aDALclass.GetImage();

MemoryStream myStr = new MemoryStream (myByteArray);

Bitmap myBitmap = new Bitmap(myStr);

[ Voor 14% gewijzigd door whoami op 19-03-2004 14:34 ]

https://fgheysels.github.io/


  • sander_g
  • Registratie: Juli 2002
  • Laatst online: 16:48
Inline images zoals
[img]"data:image/gif;base64,...."[/img]
werken alleen onder html 4.01 compliant browsers (Opera?).
Maar niet in Internet Explorer.

Tenzij je controle hebt op de gebruikte browser, gaat dit niet lukken en zal je toch een extern script moeten gebruiken voor het tonen van het image.

Misschien kan je de imagedata wel via cache of sessie van de hoofdpagina naar het image-script doorgeven. Dan hoef je het niet opnieuw uit de database op te halen.

Garmin Fēnix 7 Pro | https://www.strava.com/athletes/30783039