Ообновление 07.06.2022Github: Decard64 В программу добавлен редактор кривых (
path.d атрибут) и готовый фильтр Эмбоссинг.
Проект полностью написан на Delphi 10.4 Community Edition с использованием только стандартных и бесплатных компонентов.
Сборка win64.
Исходники выложены на github.
DeCardUTF.zip - проверочная сборка, с полной поддержкой юникода, доработана для совместимости с
WINE. Особенность - в качестве rendering engine может выбираться Skia / EXE, сделано для совместимости - во втором случае рендеринг выполняется запуском отдельной программы с сохранением во временном каталоге. Не удалось на всех компьютерах добиться рендеринга вызовом DLL. Просьба пользователям - проверить оба режима.
DeCardLib.zip - "Стабильная версия", с примером создания колоды обычных игральных карт.
На первой закладке справа внизу добавлен выбор rendering
Engine - Skia/Cairo.
Рендеринг Skia не работает на некоторых компьютерах! Закономерность не выявлена... Просто ошибка внутри dll.
Skia (в отличие от Cairo) умеет использовать локальные шрифты и позволяет объектам image ссылаться на другие SVG-файлы.
Описание с пошаговым примером (видео ниже)
Видео создания колоды карт, заранее найдены картинки и готов файл со списком карт (clubs<tab>2, clubs<tab>3...hearts<tab>10...spades<tab>K).
DeCardLib.exe: программа для дизайна/перевода/редизайна карточных игр.Позволяет создавать множество однотипных карт по шаблону, подменяя текст и картинки.
Интерфейс разделен на 4 закладки:
[Project]: выбор файлов, каталогов, настройка размера шаблона и пакетный рендеринг. Для готового проекта все операции - создание отдельных карт или компоновка их на лист выполняются на этой закладке.
[Card deck]: дизайн SVG-шаблона: добавление, копирование и удаление отдельных элементов SVG (текст, картинка, геометрический объект), изменение их свойств (цвет, шрифт, видимость, ссылка на изображение).
Главная особенность этой программы - любые свойства объекта могут назначаться из текстовой таблицы, с помощью макроса [
<номер столбца>]: [1], [2]...[21].
Для всех объектов (включая вложенные) доступен список замен: например, в ячейке текстовой таблицы напишем текст "
Получите [berries].", а в программе настраиваем замену:
[berries]=<use src="#berry" width="60" height="50"/> Oтдельные картинки использовать просто, но для картинок в тексте и его форматирование требуется некоторые знания HTML.Для точного размещения элементов область карты может быть поделена на заданное число строк и столбцов с рамкой. Выделение прямоугольного блока в области просмотра используется только для первоначального размера новых объектов или назначается выбранному объекту кнопкой Size. Опытные пользователи могут вносить исправления в редакторе XML.
Оригинальный SVG не поддерживает автоперенос многострочного текста и картинки в тексте, для этого в программе сделана обработка внешнего объекта foreignObject, отображающего упрощенный HTML.
Доступно редактирование ячеек текстовой таблицы.
[Clipart]: из дополнительного SVG-файла отображается список элементов с возможностью их просмотра, незначительного исправления (масштаб) и объединение нескольких SVG файлов. Предназначен для хранения векторных элементов, используемых многократно и в разных шаблонах.
[Preview]: рендеринг отдельных карт и элементов клипарта для просмотра, видимое изображение можно сохранить в файл. Есть редактирование ячеек текстовой таблицы.
SVG (от англ. Scalable Vector Graphics — масштабируемая векторная графика) — язык разметки
масштабируемой векторной графики, созданный Консорциумом Всемирной паутины (W3C) и входящий
в подмножество расширяемого языка разметки XML, предназначен для описания двумерной векторной
и смешанной векторно/растровой графики в формате XML.Программа работает с изображениями в формате SVG и текстовой таблицей с разделителем <Tab> (поддерживается GoogleTable):
используя макросы [<№ столбца>] - [1],[2]...[xxx] подставляет значения ячеек текстовой
таблицы в отображаемый текст или SVG-атрибуты (цвет, видимость, размер шрифта, ссылка на изображение... любые SVG-атрибуты!).
Оригинальный SVG 1.1 не поддерживает автоперенос текста и картинки в тексте
(более поздние версии пока на уровне черновиков и для них нет движка рендеринга),
но DeCard обрабатывает это самостоятельно:
Для текста <text> с (нестандартным) встроенным тэгом <rect width="
ширина" height="
высота"/> выполняется атоперенос,
макрос [P] начинает новую строку, а если тексту добавить префикс [Z] - то делается его масштабирование (уменьшением шрифта).
Для HTML-объектов типа <foreignObject> выполняется преобразование в нативный SVG.
Если заданной высоты не хватает - выполняется вертикальное центрирование.
Обрабатываются следующие HTML-тэги:
<b>...</b> <i>...</i> <u>...</u>
<p>...</p> <br/> <hr/>
<div align="left / center/ right">...</div>
<font size="1..7" face="Arial / Comic Sans MS / ..." color="" text-indent="">...</font>
<img src="bitmap file" width="xxx" height="yyy"/>
<use src="#defs ref" width="xxx" height="yyy"/>
<use src="clipart.svg#ref" width="xxx" height="yyy"/>
SVG-шаблон может быть разработан в стороннем SVG(или текстовом)-редакторе, в самой программе для этого минимальные возможности.
Так же для любого тэга (со всеми его вложенностями) в программе работает блок замены текста:
Например - в текстовой таблице в ячейке для HTML-блока пишем макрос "Получите [berries].", а в программе настраиваем замену:
[berries]=<use src="#berry" width="60" height="50"/>
[resin]=<use src="#resin" width="60" height="50"/>
...
Программа написана на Delphi7, исходники прилагаются.
Автор: Дмитрий Яценко
yatcenko@gmail.com
(готов безвозмездно помочь с шаблонами)
Программа не требует инсталяции, достаточно распаковать архив.
Библиотека рендеринга
https://github.com/RazrFalcon/resvgВ каталоге с программой 32-битная версия библиотек.
Библиотека работы с цветовыми профилями
LittleCMS color engineОписание формата SVG
https://www.w3.org/Graphics/SVG/
Post Merge: 23 Январь 2020, 12:13:52
Реализованные в Decard проекты этого форума:
Wingspan перевод-редизайнЛюбительский перевод дополнений Инновации в стиле IELLOEverdell 7 Чудес - редизайн карт в стиле 7WDuelGloomhavenРедизайн Терраформинга