我想加載一個PNG圖像,並獲取它的一些像素的顏色(以32位RGBA格式)。我搜索了很多,但沒有找到一個好的工作解決方案。如何使用SDL2讀取像素顏色?
我發現,使用SDL_LockTexture
進行像素處理。但不想改變圖像,只需讀取一些像素即可。
我想加載一個PNG圖像,並獲取它的一些像素的顏色(以32位RGBA格式)。我搜索了很多,但沒有找到一個好的工作解決方案。如何使用SDL2讀取像素顏色?
我發現,使用SDL_LockTexture
進行像素處理。但不想改變圖像,只需讀取一些像素即可。
因爲您沒有指定,我假設您使用SDL_image
加載圖像。因此IMG_Load
是一個很好的候選人討論。
正如您從鏈接中看到的那樣,它會返回一個SDL_Surface
(您可能希望將其轉換爲紋理,但不需要這樣做即可讀取其像素)。
有了這樣一個對象,你可以使用:
使用此功能可設置一個表面直接訪問像素。
使用此功能後,直接訪問像素釋放的表面。
的文檔狀態也是:
調用之間SDL_LockSurface()/ SDL_UnlockSurface(),可以寫入和從表面 - >像素讀,使用存儲在表面 - >像素格式格式。
像素和格式都在您的處置。它看起來是一個很好的候選人,可以按照你的要求去做。
但是......
我想加載PNG圖像,[...]
注意IMG_LoadPNG_RW
返回SDL_Surface
以及IMG_Load
。
SDL的任何特定原因? –