intptr型をinteger型の一次元配列にするには?

解決


.net初心者  2007-10-12 22:57:02  No: 143970

Dim gra As Graphics = Graphics.FromImage(capPictureBox.Image)
Dim hdc As IntPtr = gra.GetHdc()
Dim Int(100) As Integer
System.Runtime.InteropServices.Marshal.Copy(hdc, Int, 0, 99)
For i = 0 To 99
    ListBox1.Items.Add(i & "," & Int(i))
Next
とやっても
0,0
1,0

99,0
となってしまします。
どうのようにすれば画像のデータを配列に入れることができるでしょうか?


Hongliang  2007-10-13 04:55:08  No: 143971

DC にはお望みの情報は含まれていません。たぶん。
画像のデータってのがどんなのを指すのか分かりませんが、取りあえず各ピクセルの色情報だと仮定してお答えします。
Bitmap.LockBits で BitmapData を取得し、それの Scan0 から必要なサイズだけ Marshal.Copy します。
この辺調べればサンプルとかもあるでしょう。


.net初心者  2007-10-15 23:36:39  No: 143972

できました。
ありがとうございました。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加