亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我應該如何使用 GetDIBits 函數

我應該如何使用 GetDIBits 函數

Go
慕婉清6462132 2022-05-18 13:47:34
var bitmap win.BITMAPwin.GetObject(win.HGDIOBJ(hBitmap), unsafe.Sizeof(bitmap), unsafe.Pointer(&bitmap))var bmpInfo win.BITMAPINFObmpInfo.BmiHeader.BiSize = uint32(unsafe.Sizeof(Info.BmiHeader))....................Width = width....................Height = height....................Planes = 1....................BitCount = 24....................Compression = win.BI_RGBvar hdc win.HDChdc = win.GetDC(0)win.GetDIBits(hdc, bitmap, 0, uint32(bitmap.BmHeight), bitmapInfo, nil, 0)pBits := make([]byte, imageSize)win.GetDIBits(hdc, bitmap, 0, uint32(bitmap.BmHeight), bitmapInfo, (*byte)(unsafe.Pointer(&pBits)), 0)使用包github.com/lxn/win首先,在獲取GetDIBits函數之前,我們已經完成了所有的工作。之后,我終于嘗試使用 GetDIBits 函數獲取圖像數據,但它一直返回 0。我將 pBits 的數據類型更改為“unsafe.Pointer”或“* byte”并嘗試過,但它返回 nil 或 0。如何從 GetDIBits 函數中獲取圖像數據?
查看完整描述

1 回答

?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

我對 Go 語言不太了解,但是當你使用 時GetDIBits,參數的位置是不正確的。

lpvBits

指向緩沖區以接收位圖數據的指針。如果此參數為 NULL,則函數將位圖的尺寸和格式傳遞給 lpbi 參數指向的 BITMAPINFO 結構。

lpbmi

指向指定 DIB 數據所需格式的 BITMAPINFO 結構的指針。

您可以像這樣修改它:

win.GetDIBits(hdc, bitmap, 0, uint32(bitmap.BmHeight), nil, bitmapInfo, 0)

pBits := make([]byte, imageSize)


win.GetDIBits(hdc, bitmap, 0, uint32(bitmap.BmHeight), (*byte)(unsafe.Pointer(&pBits)), bitmapInfo, 0)


查看完整回答
反對 回復 2022-05-18
  • 1 回答
  • 0 關注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號