Étape par étape: Comment convertir votre image au format disquette Amstrad CPC (DSK)

En détail, le process de conversion de votre image pour l'Amstrad peut être divisé en 3 étapes: Vous aurez besoin d'Image-To-Amstrad-CPC

Télécharger Image-To-Amstrad-CPC

Fondu enchaîné Image d'homme avec casquette en palette orange Amstrad

Convertir votre image (pré-visualiser puis convertir)

Dans une invite de commande Windows, tapez:
ImgToCPC -blue "D:\Mon dossier\MaPhoto.jpg"
ImageToAmstradCPC vous permet de prévisualiser la conversion de votre image dans la palette souhaitée. Par exemple, -blue pour une palette bleue et -red pour une palette rouge.
Davantage de palettes pré-configurées ou définir votre propre palette sont également possibles.
Par défaut c'est le mode "4 couleurs" qui est utilisé (Amstrad MODE 1). Mais vous pouvez indiquer en option -mode0 pour le mode 0 (16 couleurs), ou -mode2 pour le mode 2 (2 couleurs). Aide pour choisir le mode 0,1,2 qui convient le mieux.

Récupérer le fichier disquette ".DSK"

Lorsque que vous avez lancé ImgToCPC, il doit avoir également généré un fichier "MaPhoto.DSK". Il s'agit du fichier au format disquette Amstrad qui est compréhensible par un émulateur Amstrad CPC comme WinAPE ou CPCBox. Faites un copier-coller de ce fichier DSK dans le dossier "roms" de votre émulateur Amstrad. Normalement l'émulateur Amstrad indique «Ready» au démarrage, comme un Amstrad d'origine qui vient d'être mis sous tension. Insérer la disquette (menu Lecteur A: sélectionner fichier DSK)

Lancer l'affichage de l'image sur l'écran Amstrad

Taper run"imgtocpc"
L'image va se charger et s'afficher en quelques secondes.
Appuyer 2 fois sur ESC pour sortir du programme.
Par curiosité, vous pouvez aussi taper "cat" pour voir le contenu de la disquette.
Notez que si disposez encore d'un Amstrad en état de fonctionnement, vous pouvez aussi copier le contenu de ce fichier DSK sur une disquette Amstrad 3,0” d'origine. Lorsque l'Amstrad indique «Ready», insérer la disquette dans le lecteur et taper run"imgtocpc"

Choisir le "bon" post-process

Il existe 3 types de post-process:
1) Dégradé par bruit aléatoire “Dégradés de bruit” -grad
2) Dégradé par tramage (dithering) “Tramage” -dither
3) Dégradé par arrondi au plus proche “Au plus proche” -sharp = -nearest
chacun de ces types calcule différemment la bonne couleur à afficher pour chaque pixel.
Ceci est combiné avec 2 types de mapping vers la palette:
a) “par affinité de couleur” -affinity
b) “par niveaux de gris” (intensités de luminosité) -grayscale
Ce qui donnera 6 résultats différents au total pour une même image et palette.
Image d'origine à convertir
Bol de framboises appétissantes - image d'origine à convertir
Images 1a, 2a, 3a montrant les 3 types
“Dégradés de bruit” (-grad), “Tramage” (-dither), et “Au plus proche” (-nearest)
—avec le mapping “par affinité de couleur” (-affinity):
Photo d'un bol de framboises convertie au format Amstrad CPC par ImgToCpc option dégradé avec affinitéPhoto d'un bol de framboises convertie au format Amstrad CPC par ImgToCpc option tramage avec affinitéPhoto d'un bol de framboises convertie au format Amstrad CPC par ImgToCpc option au plus proche avec affinité
Images 1b, 2b, 3b montrant les 3 types
“Dégradés de bruit” (-grad), “Tramage” (-dither), et “Au plus proche” (-nearest)
—avec le mapping “par niveaux de gris” (-grayscale)
Photo d'un bol de framboises convertie au format Amstrad CPC par ImgToCpc option dégradé avec niveaux de grisPhoto d'un bol de framboises convertie au format Amstrad CPC par ImgToCpc option tramage avec niveaux de grisPhoto d'un bol de framboises convertie au format Amstrad CPC par ImgToCpc option au plus proche avec niveaux de gris

Sélectionner le mode graphique

Différents résultats selon le mode utilisés: Quelques exemples.
Lorsque vous utilisez le mode 0 (16 couleurs) le choix de la palette est important et vous préfèrerez probablement la détection de couleur par affinité (-affinity).
Paysage île de forêt tropicale convertie vers amstrad avec ImgToCpc (mode0)
Options/palettes utilisées: -mode0 -dither -affinity -pc0,1,2,11,20,26,14,15,16,22,25,3,9,12,10,13
Lorsque vous utilisez le mode 1 ou 2 (4 et 2 couleurs) vous opterez sûrement pour une des palettes prédéfinies associée à l'option -grad pour détecter les couleurs par niveaux de gris et ainsi faire ressortir le contraste.
Paysage île de forêt tropicale convertie vers amstrad avec ImgToCpc (mode1)
Options/palettes utilisées: -mode1 -dither -grad -pc0,2,11,26
Il n'y a pas de règle car cela dépend de vos images, de leurs couleurs et contrastes. N'hésitez pas à tester différentes options.

Comment le lanceur .BAS d'ImgToCpc anime t-il les pixels ?

Ce que fait le fichier lanceur IMGTOCPC.BAS en détail, lorsque vous le lancez par run"imgtocpc":
  • Il se positionne dans le MODE graphique Amstrad voulu.
  • Il définit les couleurs de la palette (fonction INK).
  • Avec la fonction LOAD, il charge l'image contenue dans le fichier binaire MAPHOTO.BIN, et va écrire à l'adresse mémoire de l'écran (c'est-à-dire 0xC000 en hexadécimal).
  • Il parcours une liste de pixels (ou plutôt une liste d'adresses mémoire d'écran) et va boucler dessus (fonctions DATA et READ).
  • Certains pixels sont modifiés en appliquant l'opération XOR (de telle sorte qu'en appelant XOR 2 fois on revienne à l'état initial). PEEK et POKE permettent d'altérer la valeur de la couleur du pixel à changer juste en passant l'adresse mémoire écran et le résultat du calcul XOR.
    Il est important de noter que ces positions de pixels ne sont pas données au hasard, celles-ci ont été pré-calculées losque vous avez lancé ImgToCpc sur votre image afin de rechercher des positions avec des contrastes forts, de telle sorte que le résultat soit intéressant.
  • Certains autres pixels ne sont pas altérés (bien qu'ls soient dans la liste), c'est le hasard (fonction RND).
méduse eau bleue animation de pixels sur Amstrad CPC
Les limitations de l'Amstrad nous obligent à ne pas être trop gourmands en terme de fluidité et de nombre de pixels à modifier. C'est pourquoi par défaut on ne peut donner que quelques pixels à altérer dans la liste, sinon le système mettrait trop de temps à parcourir la liste et nous n'aurions pas cette impression d'animation. Par défaut le nombre de pixels sur lesquels le lanceur va boucler est de 100. Vous pouvez réduire ce nombre (pour augmenter la fluidité) avec l'option -noisepts (par exemple -noisepts20), ou augmenter ce nombre mais attention aux performances.
Chat roux animation par mouvement de pixels sur Amstrad CPC
Historiquement les premières versions du lanceur BAS d'ImgToCpc utilisaient les fonctions MOVE et PLOT, mais les résultats étaient très lents! Après avoir réécrit ce code en utilisant les fonctions PEEK et POKE, cela a permis de doubler la vitesse, et donc dans un même laps de temps d'afficher 2 fois plus de pixels changeants.
Crédit Images:
- Homme avec casquette en palette orange : "Cette personne n'existe pas" ("This Person Does Not Exist") www.thispersondoesnotexist.com
- Bol de framboises : Tara Evans https://unsplash.com/@taradee
- Paysage d'île de forêt tropicale : Kyrylo Kholopkin https://unsplash.com/@kholopkin
- Méduse dans l'eau bleue : 贝莉儿 DANIST https://unsplash.com/@danist07
- Chat roux palette orange : "Ce chat n'existe pas" ("This Cat Does Not Exist") www.thiscatdoesnotexist.com
Voir aussi