Re: [問題] VB6-照片轉參數
※ 引述《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
07/21 18:45, 1F
→
07/21 18:46, , 2F
07/21 18:46, 2F
討論串 (同標題文章)
Programming 近期熱門文章
PTT數位生活區 即時熱門文章