Cet article suppose que vous avez installé ev3dev sur votre EV3 et que vous disposez d'une connexion SSH. Si vous n'avez pas créé l'environnement, reportez-vous à cet article.
Je vais vous montrer comment afficher une image bmp sur l'écran LCD en utilisant ev3dev-lang-python de la bibliothèque python ev3dev. La méthode décrite dans la documentation officielle n'a pas fonctionné, j'espère donc que cet article vous sera utile.
Une image bmp d'une taille adaptée à l'affichage LCD a été fournie sur la page d'accueil de la bibliothèque. Téléchargez le fichier zip, décompressez-le et enregistrez-le dans EV3. BMP image collection
Affichons l'image bmp sur l'écran LCD.
La documentation officielle (https://media.readthedocs.org/pdf/python-ev3dev/latest/python-ev3dev.pdf) décrit la méthode image.
image Returns a handle to PIL.Image class that is backing the screen. This can be accessed for blitting images to the screen. Example:
screen.image.paste(picture, (0, 0))
Cependant, lorsque j'essaye de l'exécuter, il semble que la méthode image n'est pas définie et qu'une erreur se produit.
robot@ev3dev:~$ python
Python 2.7.9 (default, Aug 13 2016, 17:33:18)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>from PIL import Image, ImageDraw, ImageFont, ImageOps
>>>import ev3dev.auto as ev3
>>> screen = ev3.Screen()
>>>logo = Image.open('test.bmp')
>>> screen.image.paste(logo,(0,0))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'Screen' object has no attribute 'image'
Cela a bien fonctionné avec le programme suivant.
bmp_lcd.py
mport ev3dev.auto as ev3
from PIL import Image, ImageDraw, ImageFont, ImageOps
screen = ev3.Screen()
logo = Image.open('EV3_BMPs/Awake.bmp')
#screen.draw.bitmap((0, 0), logo.convert("L")) #La couleur est inversée
screen.draw.bitmap((0, 0), ImageOps.invert(logo.convert("L"))) #Succès
screen.update()
logo.convert("L")8 images dans-Conversion en monochrome de bits de pixels.
Cependant, dans cet état, il y a une diminution du noir et blanc inversé lorsque l'écran LCD est affiché, donc ```ImageOps.invert () `` `est utilisé pour le restaurer.
C'était affiché comme ça.
![awake.png](https://qiita-image-store.s3.amazonaws.com/0/149019/51f9fc2c-2323-86d1-bbad-7c3a95d45896.png)
## référence
>
[https://sites.google.com/site/ev3python/learn_ev3_python/screen/bmp-image-collection](https://sites.google.com/site/ev3python/learn_ev3_python/screen/bmp-image-collection)
>
[http://pillow.readthedocs.io/en/3.3.x/handbook/concepts.html#modes](http://pillow.readthedocs.io/en/3.3.x/handbook/concepts.html#modes)
>
[[Ev3dev] Créez un programme qui capture l'écran LCD (écran) en utilisant python](http://qiita.com/murotani/items/8f301c57d3e5741ea8f7)
Recommended Posts