L'extension est un simple rasterizer 2D, basé (pour l'instant, au moins) sur la bibliothèque EGD. Les primitives disponibles comprennent les lignes, les rectangles, les arcs, les polygones et le support de police bitmap simple. Le dumping du bitmap résultant est pris en charge sous quelques formes, y compris un format à 4 bits en niveaux de gris utilisé par des dispositifs tels que des écrans OLED basés sur SSD1322.
La bibliothèque s'appuie fortement sur l'EGD pour l'instant, mais l'intention éventuelle est d'implémenter un magasin de support en mode conservé optimisé en utilisant quelque chose comme une table de binaires pour fournir des composits / dumping performants.
alias ExPaint . { Font , Color }
{ :ok , image } = ExPaint . create ( 128 , 64 )
font = Font . load ( "Helvetica20" )
ExPaint . clear ( image )
ExPaint . text ( image , { 10 , 30 } , font , "Hello World" , Color . black ( ) )
ExPaint . filled_rect ( image , { 10 , 10 } , { 20 , 20 } , % Color { r: 230 , g: 12 , b: 34 } )
ExPaint . filled_ellipse ( image , { 50 , 10 } , { 20 , 20 } , % Color { r: 12 , g: 12 , b: 230 } )
ExPaint . filled_triangle ( image , { 90 , 30 } , { 100 , 10 } , { 110 , 30 } , % Color { r: 230 , g: 230 , b: 34 } )
# Write to a png
{ :ok , png_data } = ExPaint . render ( image , ExPaint.PNGRasterizer )
File . write ( "foo.png" , png_data )
# If you're in iTerm, display inline
ExPaint . render ( image , ExPaint.InlineRasterizer )
# If you're pairing with https://github.com/mtrudel/ssd1322
{ :ok , four_bit_data } = ExPaint . render ( image , ExPaint.FourBitGreyscaleRasterizer )
SSD1322 . draw ( session , four_bit_data )Rendura l'image suivante:

Ce package peut être installé en ajoutant ex_paint et egd à votre liste de dépendances dans mix.exs :
def deps do
[
{ :ex_paint , "~> 0.2.0" } ,
{ :egd , github: "erlang/egd" }
]
endLes documents peuvent être trouvés sur https://hexdocs.pm/ex_paint.
Pour faciliter l'installation, ce package comprend le contenu de cette collection de polices dans le dossier /priv/fonts/ .