Я ищу программное обеспечение, которое может взять FEN и сгенерировать высококачественную диаграмму в формате PDF, Postscript, метафайл Windows или что-то еще, что будет хорошо выглядеть при разрешении 1200x1200 точек на дюйм или лучше. Я думал, что различные шахматные движки сделают это, но их диаграммы - все растровые изображения (насколько я могу судить) и выглядят как мусор при произвольном изменении размера. Кроме того, их собственный экспорт публикации не может быть отредактирован ни в каком стандартном, AFAICT.
Готовы платить.
Ответы:
Как указывалось, вам нужны векторы. Я предлагаю вам использовать Python-шахматы для генерации векторных изображений SVG.
Предпосылки:
pip install python-chess[uci,gaviota]
Создание сценария
Поскольку вам может потребоваться сгенерировать несколько SVG, давайте создадим скрипт. Таким образом, вы можете использовать скрипт для создания нескольких шахматных досок легко. Следующее написано в Python 3.x. Создайте скрипт Python, например, FENtoSVG.py. Вставьте следующий код:
Если вы используете Linux, запустите скрипт с
#!/usr/bin/env python3
.использование
Это очень простой скрипт, если вы знаете Python, но я хочу, чтобы он был прост для тех, кто не кодирует. Чтобы использовать скрипт, откройте CMD / Terminal, где вы сохранили скрипт. Затем используйте следующее:
./FENtoSVG.py "examplefen" "morefen"
Скажем, я хочу два SVG для FEN,
"8/8/8/8/4N3/8/8/8 w - - 0 1"
и"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"
Это создаст два файла:
88884N3888 w - - 0 1.SVG
и88884Q3888 w - - 0 1.SVG
Я предлагаю python-chess из-за настроек, которые можно легко сделать на диаграмме с помощью встроенных функций. Это также хорошо задокументировано.
источник
Подойдет векторный формат .
Как вы, возможно, знаете, векторный формат представляет графику не как растровое изображение, а геометрически, как математическое описание, которое может быть представлено в любом масштабе.
Для отображения в Интернете вы можете использовать формат SVG. Вот несколько шахматных фигур в формате SVG. (Если вы перейдете по ссылке, для каждого шахматиста перейдите к «исходному файлу (SVG-файлу)». Пока вы не щелкнете по ссылке, все, что вы получите, - это растровое PNG-приближение к SVG. Вам нужен настоящий SVG.)
Для отображения PDF у TeX есть несколько пакетов, которые вы можете использовать. Вот список. (Это удобно, только если вы знакомы с TeX или LaTeX; но результирующие диаграммы хороши. Например, см. Стр. 4 этого примера PDF в стиле Skak. Более того, я считаю, что на стр. 4 этого примера PDF показано стиль шахмат Швальбе, который вы могли бы предпочесть, хотя его документация, кажется, все на немецком языке. Все они, во всяком случае, с открытым исходным кодом.)
источник
Мое решение было использовать шахматный шрифт, как Chess Merida или Chess Cases .
Например, с таким шрифтом начальная позиция записывается так:
И (при условии, что высота строки установлена на высоту шрифта) это выглядит следующим образом (Здесь используется Chess Merida в качестве шрифта):
Поэтому я написал этот скрипт на Python, который конвертирует из FEN в этот формат. Вызовите этот скрипт (при условии, что вы назвали его fen2diag.py ),
python fen2diag.py "<the fen>"
и он выведет строку диаграммы.Эти шрифты Diagram также поддерживают квадраты, отмеченные точками или звездами, границы другого типа, закругленные углы границ, цифры / буквы слева / снизу, обозначающие строки / столбцы. Я не включил это в сценарий. Не стесняйтесь обновлять мой код.
Chessbase также создал семейство шрифтов (начинающееся с 'DiagramTT ...'), которое поддерживает еще больше вещей (например, кусочки, повернутые на 180 °), но этот шрифт отображает вещи в разные кодовые точки, также для черных квадратов берут две буквы, одну для фона и один для куска.
источник