Я работаю над простым проектом с использованием Pygame, и мне нужно получить и установить цвета пикселей.
С помощью pygame.get_at(())
а также pygame.set_at(())
ОЧЕНЬ медленно
Поэтому я попытался использовать PixelArray, чтобы получить и установить цвета вручную. Но это все еще очень медленно
Есть ли гораздо более быстрый способ сделать это?
Можно ли сделать функцию получения и установки пикселя в c ++, чтобы он был быстрее, или в python / pygame есть способ сделать это?
Например:
функция c ++, которая возвращает цвет пикселя по заданной координате, и другая функция, которая устанавливает пиксель по заданной координате в заданный цвет.
Тогда я мог бы как-нибудь вызвать эти функции в Pygame.
Большое спасибо.
C ++ SetPixel и функция GetPixel
Часть библиотеки window.h
Установить пиксель в координатах с цветом
COLORREF SetPixel(
_In_ HDC hdc,
_In_ int X,
_In_ int Y,
_In_ COLORREF crColor
);
Возвращает цвет пикселя в указанных координатах
COLORREF GetPixel(
_In_ HDC hdc,
_In_ int nXPos,
_In_ int nYPos
);
SDL:
Получить цвет
Uint32 rawpixel = getpixel(surface, x, y);
Uint8 red, green, blue;
SDL_GetRGB(rawpixel, surface->format, &red, &green, &blue);
SetPixel в координатах
void setpixel(SDL_Surface *screen, int x, int y, Uint8 r, Uint8 g, Uint8 b)
{
Uint32 *pixmem32;
Uint32 colour;
colour = SDL_MapRGB( screen->format, r, g, b );
pixmem32 = (Uint32*) screen->pixels + y + x;
*pixmem32 = colour;
}