私は透明なTkinterウィジェットにぼかし効果を追加しようとしています。PythonまたはC++でピクセルカラーを取得する最速の方法は?
私は、ウィジェット内の個々のピクセルのRGB値を取得する必要が望む効果を追加するために、このライン(スニペット)
self.attributes("-alpha", 0.85)
とウィジェットが部分的に透明になりました。ウィジェットは部分的に不透明なので、.cgetメソッドを使用することはできません。実際のRGB値ではなく、部分的に透明になる前の色のRGB値を返すためです。
私は現在、しかし、それは私の目的のために遠く遅すぎるこの機能(スニペット)
def get_pixel_colour(self, i_x, i_y):
i_desktop_window_id = win32gui.GetDesktopWindow()
i_desktop_window_dc = win32gui.GetWindowDC(i_desktop_window_id)
long_colour = win32gui.GetPixel(i_desktop_window_dc, i_x, i_y)
i_colour = int(long_colour)
return (i_colour & 0xff), ((i_colour >> 8) & 0xff), ((i_colour >> 16) & 0xff)
を使用しています。ピクセルの色を取得する方法はありますか?
編集:
Pythonは、この目的のためにあまりにも遅い場合、私はまた、C++を使用することができます。 異なるx、y座標のピクセルのRGB値を取得するだけで済みます。
これは本当にPythonでやったときに遅すぎると思われるようです。そこに厄介なプラットフォーム依存関係を導入したようだ。また、リアルタイムグラフィックスに関しては、 'get_pixel_color'関数は通常、とにかく悪い考えです。 –
Editを参照してください.Windowsでも動作する必要があります。 – rectangletangle
ああ、もうちょっと待てない別のプラットフォームの依存関係はありますか? –