Toon posts:

[vb.net] vraag over GDI script, ik mis een stap...

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb in VisualStudio het volgende vb.net scriptje gemaakt aan de hand van een c# codevoorbeeld dat ik ergens heb gevonden.

Het script resized een .jpg foto, en werkt prima! Ik ben net begonnen met .Net en kan het script alleen niet helemaal volgen.

In onderstaand codevoorbeeld heb ik commentaar geschreven wat ik begrijp, en er is 1 stap die ik niet kan volgen, nl. hoe het door het object myGraphic getekende plaatje in het object myThumb terecht is gekomen:

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim myImage As System.Drawing.Image
Dim myThumb As System.Drawing.Image
Dim myGraphic As System.Drawing.Graphics
Dim myRectangle As Rectangle
Dim myNewImageWidth As Integer
Dim myNewImageHeight As Integer

'Plaatje inlezen en loskoppelen van bronbestand
myImage = System.Drawing.Image.FromFile("C:\Inetpub\wwwroot\test\img\Afbeelding 008.jpg")
myImage = myImage.Clone

myNewImageWidth = 500
myNewImageHeight = myImage.Height / (myImage.Width / myNewImageWidth)

'myThumb is het kader waarop het gerisizede plaatje getekend gaat worden (leeg zwart vlak)
myThumb = New System.Drawing.Bitmap(myNewImageWidth, myNewImageHeight, myImage.PixelFormat)

myGraphic = Graphics.FromImage(myThumb)
myGraphic.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighSpeed
myGraphic.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighSpeed
myGraphic.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Low

'myRectangle is het plaatje wat op myThumb geplaatst gaat worden
myRectangle = New Rectangle(0, 0, myNewImageWidth, myNewImageHeight)

'Het plaatje (myImage) gerisized tekenen op myRectangle
myGraphic.DrawImage(myImage, myRectangle)
myGraphic.Dispose()
myImage.Dispose()

'Deze stap volg ik niet: hoe komt het plaatje van myGraphic.DrawImage(myImage, myRectangle)
'in het myThumb object?

myThumb.Save("C:\Inetpub\wwwroot\test\img\thumbnail.jpg")

End Sub

Verwijderd

gebruik code tags. aub.

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 01-05 19:09

pjvandesande

GC.Collect(head);

Je creeerd hier een Graphics object van de myThumb:

Visual Basic .NET:
1
myGraphic = Graphics.FromImage(myThumb)

  • MrSleeves
  • Registratie: Februari 2004
  • Laatst online: 10-04 19:23

MrSleeves

You'll thank me later.

Het Graphics-object is het tekengebied van de thumbnail. Daar ga je vervolgens op tekenen.
Indirect teken je dus op myThumb.

30Drie Web Design & IT Consultancy | Raven Consultancy Services


Verwijderd

Topicstarter
MrSleeves schreef op donderdag 09 juni 2005 @ 12:12:
Het Graphics-object is het tekengebied van de thumbnail. Daar ga je vervolgens op tekenen.
Indirect teken je dus op myThumb.
Oke, dus zo moet ik die link zien. Dat is mooi!

Nu heb ik nog iets ineens: ik wil het bestand niet opslaan op de HD maar in een variabele zodat ik die naar de client kan sturen.

Weet iemand hoe ik dat moet doen? Ik heb al een streamobject (System.IO.Stream) aangemaakt, maar krijg de binaire data daar niet in.

  • MrSleeves
  • Registratie: Februari 2004
  • Laatst online: 10-04 19:23

MrSleeves

You'll thank me later.

IO.Stream is de basisclass.
Neem één van de classen die Stream overerven, System.IO.MemoryStream bijvoorbeeld.

En het is natuurlijk asp.net. 8)7
Dus dan is Response een beter plan ja..

[ Voor 32% gewijzigd door MrSleeves op 09-06-2005 12:28 ]

30Drie Web Design & IT Consultancy | Raven Consultancy Services


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 21:45

TeeDee

CQB 241

Verwijderd schreef op donderdag 09 juni 2005 @ 12:21:
[...]


Oke, dus zo moet ik die link zien. Dat is mooi!

Nu heb ik nog iets ineens: ik wil het bestand niet opslaan op de HD maar in een variabele zodat ik die naar de client kan sturen.

Weet iemand hoe ik dat moet doen? Ik heb al een streamobject (System.IO.Stream) aangemaakt, maar krijg de binaire data daar niet in.
Response. Outputstream :?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • whoami
  • Registratie: December 2000
  • Laatst online: 06-05 15:36
Verwijderd schreef op donderdag 09 juni 2005 @ 12:21:
[...]


Oke, dus zo moet ik die link zien. Dat is mooi!

Nu heb ik nog iets ineens: ik wil het bestand niet opslaan op de HD maar in een variabele zodat ik die naar de client kan sturen.

Weet iemand hoe ik dat moet doen? Ik heb al een streamobject (System.IO.Stream) aangemaakt, maar krijg de binaire data daar niet in.
bekijk de classes StreamWriter, MemoryStream, etc.... eens.

https://fgheysels.github.io/

Pagina: 1