所以我讀過StretchBlt可以通過取消nWidthSrc/Dest和nHeightSrc/Dest參數來水平和/或垂直鏡像圖像。我希望這個功能沒有StretchBlt的性能開銷。我嘗試了與BitBlt相同的技術,但沒有奏效。Win32 BitBlt - 水平鏡像
有什麼方法可以用像BitBlt一樣簡單的方式來鏡像圖像,而沒有StretchBlt的矯枉過正?或者,如果源和目標大小相同,StretchBlt不會影響性能?
所以我讀過StretchBlt可以通過取消nWidthSrc/Dest和nHeightSrc/Dest參數來水平和/或垂直鏡像圖像。我希望這個功能沒有StretchBlt的性能開銷。我嘗試了與BitBlt相同的技術,但沒有奏效。Win32 BitBlt - 水平鏡像
有什麼方法可以用像BitBlt一樣簡單的方式來鏡像圖像,而沒有StretchBlt的矯枉過正?或者,如果源和目標大小相同,StretchBlt不會影響性能?
BitBlt將只對所討論的單個像素進行數學運算(或者xor等),它不會以任何方式調整圖像的大小,這正是StretchBlt是和StretchBlt(與任何其他圖形大小調整操作相比)是非常快速的大多數情況下,它可以使用顯卡來加速其性能。
要鏡像圖像,您只需以相反的順序循環顯示像素。這樣,如果你想反映的水平,你只需要做到以下幾點:
我不知道你在用什麼語言,但其中的大多數允許你使用GDI來操縱像素或位。
所有的Win32函數都可能會被極度優化。
是什麼讓你覺得StretchBlt會是一個很大的表現?
您是否使用StretchBlt分析了您的應用程序?
您可以自己反轉所有的位圖數據,看看您是否可以做得更好,StretchBlt。
這裏有一個鏈接,可以幫助您解決:
http://www.codeguru.com/cpp/g-m/bitmap/specialeffects/article.php/c1739
沒辦法,你將要更高效,StretchBlt,除非你知道有關圖像一些額外的信息(例如,有一個邊界所以你不必翻轉某些像素