π
<-
Chat plein-écran
[^]

Mise à jour img2calc images Python monochromes transparentes

Mise à jour img2calc images Python monochromes transparentes

Unread postby critor » 18 Jan 2023, 12:54

13917 est notre service en ligne gratuit de conversion d'images pour tes projets sur calculatrices.

Un large choix de formats cible t'est proposé :
  • fichiers à appeler depuis tes programmes en langage
    Basic
    :
    • pour
      Casio Graph 90+E
      et
      fx-CG50/20/10
    • pour
      Casio fx-CP400
      et
      fx-CG500
    • .8ca
      ou
      .8ci
      pour
      TI-82 Advanced Edition Python
      ,
      TI-83 Premium CE
      ,
      TI-84 Plus CE
      et
      TI-84 Plus C Silver Edition
    • .8xi
      pour
      TI-83 Plus
      (compatible
      TI-82 Plus
      ,
      TI-82 Advanced
      monochrome et
      TI-84
      monochrome)
      ,
    • .83i
      pour
      TI-83
      (compatible
      TI-82 Stats
      et
      TI-76.fr
      )
    • .82i
      pour
      TI-82
    • .86i
      pour
      TI-86
    • .85i
      pour
      TI-85
    • .73i
      pour
      TI-73
  • fichiers à appeler depuis tes scripts en langage
    Python
    :
    • pour les éditions
      Python
      des
      TI-83 Premium CE
      et
      TI-84 Plus CE
  • scripts
    Python
    pour les différentes bibliothèques de tracé par pixels disponibles selon les modèles :
    • ti_draw
      (
      TI-Nspire CX II
      )
    • graphic
      (
      TI-Nspire CX II
      avec
      KhiCAS
      ,
      TI-Nspire CX
      avec
      KhiCAS
      ,
      NumWorks
      avec
      KhiCAS
      ,
      Casio Graph 90+E
      et
      fx-CG50
      avec )
    • nsp
      (
      TI-Nspire
      avec )
    • ti_graphics
      (
      TI-83 Premium CE
      et
      TI-84 Plus CE
      éditions
      Python
      )
    • casioplot
      (
      Casio Graph 90/35+E II
      ,
      fx-9750/9860GIII
      et
      fx-CG50
      )
    • hpprime
      (
      HP Prime
      )
    • kandinsky
      (
      NumWorks
      )

Aujourd'hui, parlons donc de la conversion d'images en scripts
Python
pour calculatrices graphiques munies d'un écran monochrome.

Il s'agit de :
  • la dernière génération
    USB Power Graphic 3
    de calculatrices graphiques
    Casio
    monochromes
    (depuis 2019)
    :
    Graph 35+E II
    ,
    fx-9750GIII
    et
    fx-9860GIII
  • la première génération monochrome de
    TI-Nspire
    (2007-2011)
    :
    TI-Npspire
    ,
    TI-Npspire CAS
    ,
    TI-Npspire Touchpad
    et
    TI-Npspire CAS Touchpad
Autrement dit de nos jours, les conversions
Python
pour écran monochrome concernent essentiellement les modèles
Casio
.

Les
Graph 35+E II
,
fx-9750GIII
et
fx-9860GIII
étant pourvues d'un écran
128×64
pixels, voici ce que cela pouvait te donner :

Mais dans ce contexte, cela se passait parfois mal. C'était le cas lorsque tu fournissais une image utilisant de la transparence. Tu obtenais alors une forme entièrement noire, entièrement blanche, ou pire entièrement vide :


Le problème venait du fait que lorsqu'il devait générer un script
Python
pour calculatrice monochrome,
img2calc
travaillait sur 2 couleurs. Or pour ce genre d'image la transparence compte comme une 3ème couleur, et en conséquence une couleur était perdue lors de la conversion.

Et bien bonne nouvelle, la dernière mise à jour sortie ce jour corrige ce problème.

Désormais lorsque tu lui fournis une image transparente à convertir en script
Python
pour un écran monochrome,
img2calc
travaille bien sur 3 couleurs.

Il t'est donc enfin possible d'utiliser des images transparentes pour tes projets
Python
sur
Casio Graph 35+E II
et
fx-9750/9860GIII
! :bj:
Code: Select all
#image converted on TI-Planet
#tiplanet.org/img2calc

from casioplot import set_pixel


#the image drawing function
#- rle : image RLE-compressed data
#- w : width of image
#- pal : palette of colors to use with image
#- zoomx : horizontal zoom
#- zoomy : vertical zoom
#- itransp : index of 1 transparent color in palette or -1 if none
def draw_image(rle, x0, y0, w, pal, zoomx=1, zoomy=1, itransp=-1):
  i, x = 0, 0
  x0, y0 = int(x0), int(y0)
  nvals = len(pal)
  nbits = 0
  nvals -= 1
  while(nvals):
    nvals >>= 1
    nbits += 1
  maskval = (1 << nbits) - 1
  maskcnt = (0xFF >> nbits >> 1) << nbits
  while i<len(rle):
    v = rle[i]
    mv = v & maskval
    c = (v & maskcnt) >> nbits
    if (v & 0b10000000 or nbits == 8):
      i += 1
      c |= rle[i] << (7 - nbits + (nbits == 8))
    c = c + 1
    while c:
      cw = min(c, w - x)
      if mv != itransp:
        col = pal[mv]
        for l in range(0, zoomy, zoomy < 0 and -1 or 1):
          for k in range(cw):
            for p in range(0, zoomx, zoomx < 0 and -1 or 1):
              set_pixel(x0 + (x + k)*zoomx + p - (zoomx < 0), y0 + l - (zoomy < 0), col)
      c -= cw
      x = (x + cw) % w
      y0 += x == 0 and zoomy
    i += 1


#palette for your image
#3 RGB-888 colors
palette_pplan = (
(0,0,0),(248,252,248),(0,0,0),
)

#your image data
#72x64 RLE-2 pixels
image_pplan = (
b'H\21&\1\xd8\1\5\22\t\6\t\2\5\xd0\1\5\6-\6\5\xcc\1\5\x025\6\5\xc8\1\1\69\2\5\xc8\1\1\2=\6\1\xc8\1\1\2A\2\1\xc8\1\1\x025\2\5\2\1\xc8\1\1\2\r\n\t\6\1\6\5\2\1\xc8\1\1\2\25\2\t\16\5\6\5\xc4\1\1\6!\n\t\n\t\xbc\1\5\2\t\2\25\n\r\6\t\xb8\1\5\2\5\6\25\n\25\2\t'
b'\xb0\1\t\2\1\n\21\22\25\2\t\x84\1)\n\t\2\x012\t\6\5\x80\1\1*\25\16\r\32\t\6\1\xfc\0\5\2\25\6!\16!\6\t\2\1\xfc\0\1\6%\2\25\26-\2\1x\5\2%\16\21\26\t\16\r\2\1x\1\6\t\6\25\26\t\26\5\2\5\26\1t\5\2\t\32\r\16\25\n\5\2!t\1\6\t\6\5\22\t\6\31\16\5\6\5\x84\1\5\2'
b'\r\6\r\26\35\22\t\6\1\x84\1\1\6\t\16\1"\21\36\t\2\5\xfc\0\5\2\r\36\1\32\5&\5\6\5x\1\6\tF\5&\5\6\tl\5\2\r\2\1B\5\16\1\22\5\n\td\5\2\t\6\t*\1\16\1\16\1\26\t\6\21X\1\6\t\6\r&\5\n\1\16\5\26\t\16\rP\1\2\r\6\r\2\5*\1\22\r\16\25\16\1P\6\t\n\t\2\1.\5\22\5\2\5'
b'\6\t\2\25\2\1P\2\r\n\21.\1\26\5\6\5\2\5\32\1\2\5L\2\t\22\r*\1\36\5\6\t\36\1\6\5H\2\t\26\t&\5"\5\6\5\22\21\6\t@\2\t\32\5&\1\26\t\2\t\2\5\2\t\2\25\6\t<\2\21\2\5\6\1&\1\26]\6\t4\2\21\2\1\6\5"\5\22\31\2\5\22)\n\x050\2\25\n\1&\1\22\25\2\21\6\1\n)\6\t(\2\25'
b'\n\1"\1\22\r\6\31\6\t\n%\n\5$\6\35"\5\22\t\2%\2\21\6)\6\t\34\6\25&\5\16=\6\21\n%\n\t\24\1\2\21\32\1\6\5\2\25\n-\6\1\4\t\6)\6\t\20\1\2\21\22\t\2\5\2\25\6\1\6-\2\1\f\5\n%\n\t\b\5\2\r\16\25\2\25\6\t\n%\2\5\f\t\6)\6\t\4\5\2M\6\5\0\t\6!\6\1\24\5\n)\2\5\b\1'
b'\6%\2\r\2\5\6\5\f\5\2%\2\1\30\t\6%\6\5\4\5\6\35\6\r\2\5\2\5\20\5\2\31\6\1\2\1 \5\n!\6\5\4\5\26\5\16\5\n\1\2\5\20\1\6\1\36\1\2\5 \t\6!\6\1\b\25\2\5\36\5\2\1\24\1\2\5\2\t\16\1\6\1(\t\n\31\2\1\34\1\2\1\6\5\22\5\2\1\24\1\2\5\2\t\16\5\2\1,\r\n\21\2\1\30\5\2'
b'\1\n\1\22\1\6\1\24\1\2\5\36\5\2\18\t\16\1\6\1\30\1\6\1\36\5\2\5\24\1\2\t\26\5\6\1@\r\n\5\24\5\2\5\32\t\2\1\30\1\6\5\22\5\6\5L\25\20\5\6\5\26\5\n\1\30\5\2\5\22\5\2\5\xfc\0\1\6\5\32\5\2\t\34\1\2\5\22\5\2\1\x80\1\1\2\t\26\5\2\5$\1\2\5\26\1\2\5x\5\2\5\32\1'
b'\6\5$\1\2\1\32\1\6\tp\5\2\5\32\1\2\5(\1\2\1\32\5\n\td\5\2\t\32\1\2\5(\1\2\1\36\t\6\tX\t\6\5\32\5\2\1,\1\2\1"\r\6\5T\5\6\5\36\5\2\1,\1\2\1*\t\6\1T\1\2\t"\5\2\1,\1\2\x012\5\2\1T\1\2\5\36\t\2\5,\1\2\35\26\5\2\1T\1\2\5\32\t\6\5,\1\n5\2\1P'
)

#palette for your image
#2 RGB-888 colors
palette_dplan = (
(248,252,248),(0,0,0),
)

#your image data
#114x64 RLE-1 pixels
image_dplan = (
b".\3\2\r\2\3\0\3\xb8\3\17\xdc\1\1\xf6\n\1\xe0\1\1\xde\1\3\xde\1\3\xe0\1\1\xe0\1\1\xde\1\3\xde\1\5\xda\1\a\xda\1\t\xd8\1\t\xd6\1\r\xd2\1\21\xce\1\25\xcc\1\25\xcc\1\25l\17N\25j\23\2\3\0\5>\23f)\0\x056\17f%\2\1\0\v0\rh'\6\t2\vh92\tj!\4\a\0\t,\r4\1>\27\6\17"
b"*\r6\5.\1\b\25\16\5\0\1\2\3\n\v\4\31,\v,\3\6\23\6\3\b\3\0?\"\3\0\21*\5\2\25\16\3\0\3\0\1\2\3\x041\269\22\3\6\33\b\1\0\3\20m\2\35\6\3\4\25\n\3\b\1\n9\0Y\4\1\2\25\6\31\4\x9d\1\4\33\2\31\4y\0\31\2\5\0\xbb\1\0\5\0\5\0\t\0\a\0\xc1\1\f\1\0\3\fy\0\27\6\27\0\3"
b"\24\5\22[\x001\0\23\"\a\0\a\n\35\n-\0\1\x001\f\1\n\a\16\23\22\3 \v\6\a\29\4\t\4\3\b\25\b\t\b\1\n\1 \v\b\5\6\3\0\31\x001\0\31\6\t\20\1\b\1\n\5\n\23\0\3\16\1\4\v\f\3\0\1\0?\4\v(\t\6\31\26\v\6\a\16)\20\a\2\1\22\1\30\5\4\25\0\1\16\1\2\37\x005\20\5@\5\n\1\f"
b"\5\2e\xfe\0O\b\tN\v$\27\6\5\2\1\0\a\0\25\b\r\0\t^\a\b\r\20\5\f\t\4\35\n\vf\21\0\1\f\5\n-\f\tF\3\20\33\n\1\4\3\6\1\2-\16\5T!\26\5\n-\16\3N%\32\3\f\21\6\21`%0\a\4\v\0\27\34\3\0\3.'.\1\x027\22\x036%83\20\3:%.\1\b/(\3&!.;*\1(\t\0\x1309"
)

#image drawing code sample
from casioplot import show_screen
draw_image(image_dplan, 0, 0, 114, palette_dplan, zoomx=1, zoomy=1, itransp=0)
draw_image(image_pplan, 0, 0, 72 , palette_pplan, zoomx=1, zoomy=1, itransp=0)
show_screen()

16354


Bonnes conversions à toi, et n'hésite surtout pas à nous montrer tes projets ! ;)

Liens
:

Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 31.1%
 
Posts: 40257
Images: 12291
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Return to News Casio

Who is online

Users browsing this forum: No registered users and 27 guests

-
Search
-
Social TI-Planet
-
Featured topics
Concours de dessin de Noël 2022 par Casio jusqu'au 30 janvier 2023 : programme ton menu de Noël sur ta fx-92+ Spéciale Collège ou Graph 90/35+E II
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
853 utilisateurs:
>833 invités
>14 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)