Re: [問題] VB6-照片轉參數

看板Programming作者 (睡魔)時間18年前 (2007/07/21 18:43), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串5/14 (看更多)
※ 引述《CuckooBoy (阿書)》之銘言: : ※ 引述《leicheong (睡魔)》之銘言: : : vb6要做到這種事, 你需要用到Win32API中, 關於GDIPlus的部份. : : 請把PictureBox的hWnd和hDC值餵給需要hwnd和hdc的地方, : : PictureBox的Image的Handle值餵給需要hBitmap的地方. 例如: : : Private Declare Function GetPixel Lib "gdi32.dll" (ByVal hdc As Long, ByVal x : : As Long, ByVal y As Long) As Long : : Long pix00 = GetPixel(Picture1.Hdc, 0, 0); : : 至於怎樣把ARGB其4個8 byte的值由32-bit integer中分離出來就要自己 : : 想辦法了. : 感謝 : 剛試了一下,是我要的 : 不過有個疑問 : 顏色不是會有RGB XXX,XXX,XXX : 為什麼得到的都是一個值 : 譬如 : 255 有時又65280 : 255 因為我放紅色 , 65280就不知道為何跑出這麼大的數字 : 藍色跟綠色也應該不是這數字吧? : 不能一次印三個值嗎? : SORRY!我影像處理與VB底子不夠好.... : 可否請大大指點一下 : 感恩 那API傳回的是unsigned int32, VB6不支援unsigned long所以要點技巧. 要速度的話需要用到bitwise arithmatics, 不過不要求速度的話可以 先把它轉成Hex string (也就是用Hex$()) 再在後面補零至 6 個字元. Red是最後兩個字元. (可以觀察 RGB(255, 0, 0) = 255) Green是中間兩個. (RGB(0, 255, 0) = 65280) Blue是開始兩個 (RGB(0, 0, 255) = 16711680) Alpha值好像被忽略了...... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.152.218.98

07/21 18:45, , 1F
對了... OpenGL中好像有說Windows
07/21 18:45, 1F

07/21 18:46, , 2F
palette是RGBA的...
07/21 18:46, 2F
文章代碼(AID): #16eUDVQd (Programming)
討論串 (同標題文章)
文章代碼(AID): #16eUDVQd (Programming)