Python — быстрый способ получить и установить цвет пикселя в Pygame

Я работаю над простым проектом с использованием Pygame, и мне нужно получить и установить цвета пикселей.
С помощью pygame.get_at(()) а также pygame.set_at(()) ОЧЕНЬ медленно

Поэтому я попытался использовать PixelArray, чтобы получить и установить цвета вручную. Но это все еще очень медленно

Есть ли гораздо более быстрый способ сделать это?

Можно ли сделать функцию получения и установки пикселя в c ++, чтобы он был быстрее, или в python / pygame есть способ сделать это?

Например:

функция c ++, которая возвращает цвет пикселя по заданной координате, и другая функция, которая устанавливает пиксель по заданной координате в заданный цвет.

Тогда я мог бы как-нибудь вызвать эти функции в Pygame.

Большое спасибо.

0

Решение

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;
}

Ссылка на сайт

0

Другие решения


По вопросам рекламы [email protected]