π
<-
Chat plein-écran
[^]

Mise à jour img2calc images Python monochromes transparentes

Mise à jour img2calc images Python monochromes transparentes

Message non lude critor » 18 Jan 2023, 12:54

13917img2calc 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 :
    • .g3p pour Casio Graph 90+E et fx-CG50/20/10
    • .c2p 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 :
    • IM8C.8xv 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 KhiCAS)
    • nsp (TI-Nspire avec Micropython)
    • 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: Tout sélectionner
#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
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.4%
 
Messages: 41455
Images: 14353
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Retourner vers News Casio

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 26 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
798 utilisateurs:
>769 invités
>25 membres
>4 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)