Je suis à la recherche d'un logiciel capable de prendre FEN et de générer un diagramme de haute qualité , en PDF, Postscript, métafichier Windows ou autre qui aura une belle apparence à 1200x1200 dpi ou mieux. Je pensais que les différents moteurs d'échecs le feraient, mais leurs diagrammes sont tous des bitmaps (pour autant que je sache) et ressemblent à des ordures lorsqu'ils sont redimensionnés arbitrairement. De plus, leur propre exportation de publication ne peut pas être modifiée dans quelque chose de standard, AFAICT.
Prêt à payer.
Réponses:
Comme l'a souligné thb, vous avez besoin de vecteurs. Je vous suggère d'utiliser un échecs en python pour générer des images vectorielles SVG.
Conditions préalables:
pip install python-chess[uci,gaviota]
Création d'un script
Comme vous devrez peut-être générer plusieurs SVG, créons un script. Ainsi, vous pouvez utiliser le script pour générer facilement plusieurs échiquiers. Ce qui suit est écrit en Python 3.x. Créez un script Python, FENtoSVG.py par exemple. Insérez le code suivant:
Si vous êtes sous Linux, lancez le script avec
#!/usr/bin/env python3
.Usage
Maintenant, c'est un script très simple si vous connaissez python mais je veux le garder simple pour ceux qui ne codent pas. Pour utiliser le script, ouvrez CMD / Terminal où vous avez enregistré le script. Ensuite, utilisez comme suit:
./FENtoSVG.py "examplefen" "morefen"
Disons que je veux deux SVG pour le FEN
"8/8/8/8/4N3/8/8/8 w - - 0 1"
et j'entrerais"8/8/8/8/4Q3/8/8/8 w - - 0 1"
:./FENtoSVG.py "8/8/8/8/4N3/8/8/8 w - - 0 1" "8/8/8/8/4Q3/8/8/8 w - - 0 1"
Cela créerait deux fichiers:
88884N3888 w - - 0 1.SVG
et88884Q3888 w - - 0 1.SVG
Je suggère d'échecs en python en raison des personnalisations qui peuvent être facilement apportées au diagramme à l'aide de fonctions intégrées. Il est également bien documenté.
la source
Un format vectoriel conviendrait.
Comme vous le savez peut-être, un format vectoriel représente un graphique non pas comme un bitmap mais géométriquement, comme une description mathématique qui peut être rendue à n'importe quelle échelle.
Pour l'affichage Web, vous pouvez utiliser le format SVG. Voici quelques échecs au format SVG. (Si vous suivez le lien, pour chaque joueur d'échecs, cliquez sur "fichier d'origine (fichier SVG)". Jusqu'à ce que vous cliquiez dessus, tout ce que vous obtiendrez est une approximation PNG bitmap du SVG. Vous voulez le vrai SVG.)
Pour l'affichage PDF, TeX propose plusieurs packages que vous pouvez utiliser. Voici une liste. (Ceci n'est pratique que si vous êtes familier avec TeX ou LaTeX; mais les diagrammes résultants sont bons. Par exemple, voir p. 4 de cet exemple PDF dans le style Skak. De plus, je pense que la p. 4 de cet exemple PDF montre le style d'échecs Schwalbe, que vous préférerez peut-être, bien que sa documentation semble être entièrement en allemand. Tout cela est open source, en tout cas.)
la source
Ma solution a été d'utiliser une police d' échecs comme Chess Merida ou Chess Cases .
Avec une telle police par exemple, la position de départ est écrite comme ceci:
Et (en supposant que la hauteur de ligne est définie sur la hauteur de la police), cela ressemble à ceci (ici en utilisant Chess Merida comme police):
J'ai donc écrit ce script Python qui convertit de fen à ce format. Appelez ce script (en supposant que vous l'avez nommé fen2diag.py ) avec
python fen2diag.py "<the fen>"
et il imprime la chaîne du diagramme.Ces polices de diagramme prennent également en charge les carrés marqués de points ou d'étoiles, un autre type de bordure, les coins de bordure arrondis, les chiffres / lettres sur les bordures gauche / inférieure désignant les lignes / colonnes. Je n'ai pas inclus cela dans le script. N'hésitez pas à mettre à jour mon code.
Chessbase a également créé une famille de polices (commençant par 'DiagramTT ...') qui prend en charge encore plus de choses (comme des pièces tournées de 180 °) mais cette police mappe les choses à différents points de code, également pour les carrés noirs, deux lettres sont prises, une pour le fond et un pour la pièce.
la source