LoginSignup
0
0

C#でのbmp画像の構造体のポインタの取得(再)

Posted at

「C#でのbmp画像の構造体のポインタの取得」で登録していたが、前のコードはポインタの操作のためにわざわざ数値型に変換して計算していた。
juner様からIntPtr.Add(IntPtr, Int32) を教えていただいたので修正した。

削除するつもりはなかったが、非表示のしかたが分からなくて、あわてて削除してしまいました。
編集でよかったように思います。

bitmapのフォーマット

現在のコード

            byte[] imageBytes = System.IO.File.ReadAllBytes(path);
            // 先頭から画像本体へのオフセット値取得
            int AtOffsetData = 10;
            int imgOffset = BitConverter.ToInt32(imageBytes, AtOffsetData);

            IntPtr bitMapPtr = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(byte)) * imageBytes.Length);
            Marshal.Copy(imageBytes, 0, bitMapPtr, imageBytes.Length);

            // BITMAP構造体へのオフセット
            int BitMapInfoOffset = 14;
            IntPtr bitMapInfoPtr = IntPtr.Add(bitMapPtr, BitMapInfoOffset); 
            IntPtr imagePtr = IntPtr.Add(bitMapPtr, imgOffset);  
            
            // 画像解析ライブラリへの関数へポインタ渡す。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0