詳細を見つけることができなかった簡単な質問です。python win32api を使用して、コンピューターのスクリーンショットをキャプチャしています。独自の画像圧縮アルゴリズムを展開したいのですが (楽しみのために、プロレベルの結果は期待していません)、ビットマップ自体から取得しているピクセルデータを理解するのに苦労しています。関連するコードは次のとおりです。
width = win32api.GetSystemMetrics(win32con.SM_CXVIRTUALSCREEN)
height = win32api.GetSystemMetrics(win32con.SM_CYVIRTUALSCREEN)
left = win32api.GetSystemMetrics(win32con.SM_XVIRTUALSCREEN)
top = win32api.GetSystemMetrics(win32con.SM_YVIRTUALSCREEN)
hwin = win32gui.GetDesktopWindow()
hwindc = win32gui.GetWindowDC(hwin)
srcdc = win32ui.CreateDCFromHandle(hwindc)
memdc = srcdc.CreateCompatibleDC()
bmp = win32ui.CreateBitmap()
bmp.CreateCompatibleBitmap(srcdc, width, height)
memdc.SelectObject(bmp)
memdc.BitBlt((0, 0), (width, height), srcdc, (left, top), win32con.SRCCOPY)
bmpinfo = bmp.GetInfo()
bmpInt = bmp.GetBitmapBits(False)
GetBitmapBits(False) は整数配列/タプルを返します。しかし、bmpInt がピクセル データにどのように関連しているかについての情報は見つかりません。出力は次のようになります。
123,1,-1,-13,-55,2,23,123 ...
これらは各ピクセルの RGB 値にどのように対応していますか? 3 int ごとに 1 ピクセルですか? それともアルファチャンネルはありますか?また、なぜ負の数があるのですか?参考までに、ドキュメントは次のとおりです。http://docs.activestate.com/activepython/2.4/pywin32/PyCBitmap__GetBitmapBits_meth.html 説明はありません...