mboost-dp1
Intptr problem
- Forside
- ⟨
- Forum
- ⟨
- Programmering
Jeg har lavet mit eget billede format men det billede format bliver læst meget langsomt fordi for at jeg kan bruge det til nået skal jeg have konverteret det til en bitmap og så skal jeg jo sætte alle de pixel der er i bitmapen og det tager lang tid, og så har jeg fundet ud af at man skulle bruge Bitmap.LockBits-funktionen man der skal man jo bruge intptr, men hvordan bruger man intptr?.
Public Sub New(ByVal Image As Image)
Dim Bitmap As New Bitmap(Image)
Dim Pixs(Bitmap.Height - 1)() As Color
For Y = 0 To Bitmap.Height - 1
Dim PixX(Bitmap.Width - 1) As Color
For X = 0 To Bitmap.Width - 1
PixX(X) = Bitmap.GetPixel(X, Y)
Next
Pixs(Y) = PixX
Next
Pixels = Pixs
End Sub
Public Function ToBitmap() As Bitmap
Dim a As New Bitmap(Pixels(0).Length, Pixels.Length)
For X = 0 To a.Width - 1
For Y = 0 To a.Height - 1
a.SetPixel(X, Y, Pixels(Y)(X))
Next
Next
Return a
End Function
Jeg har fundet ud af det. :)
Dim a As New Bitmap(1, 1)
Dim b As IntPtr = a.LockBits(New Rectangle(0, 0, a.Width, a.Height), Imaging.ImageLockMode.ReadWrite, Imaging.PixelFormat.Format32bppArgb).Scan0
Dim c(a.Width * a.Height * 4 - 1) As Byte
Marshal.Copy(b, c, 0, a.Width * a.Height * 4)
#5
Flot.
Og super at du skriver svaret herinde.
http://imgs.xkcd.com/comics/wisdom_of_the_ancients...
;-)
Flot.
Og super at du skriver svaret herinde.
http://imgs.xkcd.com/comics/wisdom_of_the_ancients...
;-)
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.