Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[FINAL][EXE/BAT]Hex2Png.exe Pixel (ascii) vers Binaire (PNG)
Auteur Message
Répondre en citant
Message [FINAL][EXE/BAT]Hex2Png.exe Pixel (ascii) vers Binaire (PNG) 
Voilà un petit projet que j'avais commencé il y a quelques temps déjà et qui peut éventuellement intèresser
quelques membres.

Ce projet utilise ma commande externe HEX2PNG.EXE
Documentation ICI

Nous allons essayer de reconstruire litéralement des caractères ASCII en mode graphique. Donc de créer un BAT FONT Very Happy

exemple :

...._/......_/...._/_/......_/_/.................._/_/_/.._/_/_/_/_/..
....._/.._/...._/...._/.._/...._/..................._/......._/.......
......_/......_/...._/.._/...._/...._/_/_/_/_/....._/......._/........
..._/.._/...._/...._/.._/...._/..................._/......._/.........
_/......_/...._/_/......_/_/..................._/_/_/....._/..........


Et si vous voulez tester avec votre nom voici le site qui vous permet de faire pas mal de truc sympa : ASCII ART GENERATOR

Les points sont utiliser pour compter les espaces donc ne seront pas traités.

En sortie nous auront un fichier PNG :



Voici le code pour le traitement du - et du /.


::://DEFINITION DES FORMES

:::// / = 10 pixels en diagonal sur la droite

::://cHAQUE POINT CORESPONDRA À 1 PIXEL ICI 10 LIGNES

::: :
::: :
::: :
::: :
::: :
:::

:::// - = 5 pixels sur la droite

::: ..........


::://DONC NOTRE PREMIERE LIGNE SERA NO 10
:::CREERONS DYNAMIQUEMENT UN FICHIER À CHAQUE AVEC UN POINT POUR LES BLANCS.

:::RECUPERATION DES LIGNES 1 PAR 1

@echo off
if exist *.out del *.out
setlocal enabledelayedexpansion

set $totf=
set $width=
SET $HEIGTH=
set $LargCar=5
SET $CONST=10
set $CONSTLOOP=1

FOR /F "DELIMS=" %%A IN ('TYPE ASCII.TXT') DO (set $l=
SET $VAR=%%A
SET $Countx=0
CALL:TEST
call:algo
SET /A $CONSTLOOP=!$CONST!+1
SET /A $CONST+=10)

goto:build


::://L'algorithme :

:algo


for %%a in (!$l!) do (set /a $INT$=!$CONST!-1
if [%%a]==[.] for /l %%b in (!$constloop!,1,!$const!) do for /l %%c in (1,1,%$LargCar%) do echo EEFFFFFF>>%%b.out

if [%%a]==[_] for /l %%b in (!$constloop!,1,!$INT$!) do for /l %%c in (1,1,%$LargCar%) do ECHO FFFFFFFF>>%%b.out
if [%%a]==[_] for /l %%c in (1,1,%$LargCar%) do ECHO 000000FF>>!$CONST!.out

if [%%a]==[/] for /l %%b in (!$constloop!,1,!$const!) do (set $File=%%b
if !$File:~-1! equ 1 (set /a $temp=%$LargCar%-1
for /l %%c in (1,1,!$Temp!) do echo FFFFFFFF>>%%b.out
echo 00000000>>%%b.out)

if !$File:~-1! equ 2 (set /a $temp=%$LargCar%-1
for /l %%c in (1,1,!$Temp!) do echo FFFFFFFF>>%%b.out
echo 00000000>>%%b.out)

if !$File:~-1! equ 3 (set /a $temp=%$LargCar%-2
for /l %%c in (1,1,!$Temp!) do echo FFFFFFFF>>%%b.out
echo 000000FF>>%%b.out
echo FFFFFFFF>>%%b.out)

if !$File:~-1! equ 4 (set /a $temp=%$LargCar%-2
for /l %%c in (1,1,!$Temp!) do echo FFFFFFFF>>%%b.out
echo 000000FF>>%%b.out
echo FFFFFFFF>>%%b.out)

if !$File:~-1! equ 5 (set /a $temp=%$LargCar%-3
for /l %%c in (1,1,!$Temp!) do echo FFFFFFFF>>%%b.out
echo 000000FF>>%%b.out
echo FFFFFFFF>>%%b.out
echo FFFFFFFF>>%%b.out)

if !$File:~-1! equ 6 (set /a $temp=%$LargCar%-3
for /l %%c in (1,1,!$Temp!) do echo FFFFFFFF>>%%b.out
echo 000000FF>>%%b.out
echo FFFFFFFF>>%%b.out
echo FFFFFFFF>>%%b.out)

if !$File:~-1! equ 7 (echo FFFFFFFF>>%%b.out
echo 00000000>>%%b.out
echo FFFFFFFF>>%%b.out
echo FFFFFFFF>>%%b.out
echo FFFFFFFF>>%%b.out)

if !$File:~-1! equ 8 (echo FFFFFFFF>>%%b.out
echo 000000FF>>%%b.out
echo FFFFFFFF>>%%b.out
echo FFFFFFFF>>%%b.out
echo FFFFFFFF>>%%b.out)

if !$File:~-1! equ 9 (echo 000000FF>>%%b.out
echo FFFFFFFF>>%%b.out
echo FFFFFFFF>>%%b.out
echo FFFFFFFF>>%%b.out
echo FFFFFFFF>>%%b.out)

if !$File:~-1! equ 0 (echo 000000FF>>%%b.out
echo FFFFFFFF>>%%b.out
echo FFFFFFFF>>%%b.out
echo FFFFFFFF>>%%b.out
echo FFFFFFFF>>%%b.out)))

if exist 0.out del 0.out

exit /b

:Build

for /f "delims=" %%a in ('dir *.out /b') do set /a $totf+=1
set /a $width=!$countx!*%$LargCar%
set /a $PixTot=!$width!*!$totf!
echo !$width!;!$totf!;sortie.png;!$PixTot!>testpixel.txt
for /l %%a in (1,1,!$totf!) do (type %%a.out>>testpixel.txt)
hex2png testpixel.txt
del *.out

exit /b

:::Decomposition de la liste ([_/] DEVIENT [_ /])

:test
if defined $var (
set $car=%$var:~0,1%
set $l=!$l! !$car!
set $var=%$var:~1%
SET /A $countx+=1
goto:test)



Si vous avez envie de completer l'algorithme pour les autres caractères, c'est un super exercice pour vous améliorer en BAT.
Et nous serons là pour vous aider.

A bon entendeur

Okay



Dernière édition par sachadee le Mar 20 Sep 2016 - 17:30; édité 4 fois

______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [FINAL][EXE/BAT]Hex2Png.exe Pixel (ascii) vers Binaire (PNG) 
Salut, c'est un super logiciel Mr. Green





______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message [FINAL][EXE/BAT]Hex2Png.exe Pixel (ascii) vers Binaire (PNG) 
Bravo il est génial Okay



Visiter le site web du posteur
Message [FINAL][EXE/BAT]Hex2Png.exe Pixel (ascii) vers Binaire (PNG) 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch