Comment convertir un CGImageRef en PIL sans enregistrer l'image sur le disque sous osx?Conversion de CGImageRef en PIL
Je pensais à obtenir les données brutes des pixels du CGImageRef et en utilisant Image.fromstring() pour rendre l'image PIL en faisant
import mss
import Quartz.CoreGraphics as CG
from PIL import Image
mss = mss.MSSMac()
for i, monitor in enumerate(mss.enum_display_monitors(0)):
imageRef = mss.get_pixels(monitor)
pixeldata = CG.CGDataProviderCopyData(CG.CGImageGetDataProvider(imageRef))
img = Image.fromstring("RGB", (monitor[b'width'], monitor[b'height']), pixeldata)
img.show()
mais cela ne me donne pas l'image correcte.
C'est l'image que je pense:
et c'est l'image que je reçois dans PIL:
Pourriez-vous s'il vous plaît ajouter un scénario minimal mais complet et reproductible pour nous de tester? Peut-être que vous obtiendrez de meilleures réponses si vous le faites. – Rachcha
Qu'est-ce que * ne donne pas une image correcte * signifie, est-ce juste de la camelote ou ressemble-t-il un peu à votre image? Si ce dernier vous pouvez au moins soumettre l'image attendue et réelle. –
@Rachcha J'ai mis à jour l'exemple de code qui est utilisé – nom3kop