我創建了一個應用程序,我需要通過套接字發送圖像的剪切部分。我已經使用StretchBlt()裁剪了圖像,我也能夠將裁剪後的圖像顯示並保存到位圖文件中。如何使用WIN32和C++通過套接字發送HBITMAP?
接下來,我想通過Socket連接發送這個cropepd圖像。套接字之間的連接已建立,我的問題是如何通過Socket發送/接收此圖像,因爲send()和recv()函數需要char *。
一個想法是,如果我選擇HBITMAP到一個memDC對象比我可以直接發送到遠程套接字的memDC?
任何更簡單的方法來實現這項任務?
謝謝@Simon:它相當於使用GetDIBits()和SetDIBits()嗎?文檔說明「注意此功能僅用於兼容16位版本的Windows,應用程序應使用GetDIBits函數」,我應該使用哪組函數? – aProgrammer 2011-05-16 08:46:18
@TheAmitKumar - 這是一箇舊的API,但它仍然存在。我肯定會嘗試它,否則Get/Set DIBits很好。 – 2011-05-16 10:12:24
另一個問題是如何獲得HBITMAP的大小?如果我使用舊的API而不是單獨發送BITMAPHEADER,或者GetBitmapBits()返回的字節數組也會照顧頭文件?我嘗試使用更新的API獲取/設置DI位,但對大小和頭文件無能爲力操縱。感謝好友... – aProgrammer 2011-05-16 10:29:11