2012-04-03 6 views
4

Was ist der effizienteste Weg, um auf die Pixeldaten eines PIL-Bildes von einer C-Erweiterung aus zuzugreifen? Ich brauche nur Lesezugriff darauf, wenn das einen Unterschied macht.Zugriff auf PIL-Bilddaten von der C-Erweiterung

+0

Eine der [diese] (http://effbot.org/zone/pil-extending.htm) in umgekehrter Reihenfolge kann helfen. Aber Sie müssen immer noch profilieren. – fraxel

+0

Diese Antwort auf eine ähnliche Frage http://stackoverflow.com/a/6539393/235698 könnte Ihnen helfen. –

Antwort

0

C-Level-Bindungen für PIL sind verfügbar, aber es gibt sehr wenig Dokumentation für sie. Sie müssen die Quelleninformationen zur Verwendung konsultieren.

0

Neben C-Erweiterung können Sie versuchen numpy. Es braucht ein bisschen, um zu lernen, obwohl. Überprüfen Sie zunächst Convert RGBA PNG to RGB with PIL und http://effbot.org/zone/pil-numpy.htm.

Meiner Erfahrung nach ist die numpige Leistung großartig, wenn der Code richtig geschrieben ist. Die Verarbeitung von Bilddaten kann mit der C-Erweiterung immer noch langsam sein. Aber numpy verwendet SIMD-Befehle wie SSE2, was die Bedienung, wie Histogramm-Erhöhung oder Alpha-Blending, erheblich verbessert.

+0

Ich muss ein PIL-Bild an einen in C geschriebenen Bildkompressor eines Drittanbieters übergeben, also ist dies für mich keine Option. –

Verwandte Themen