Есть ли библиотека, которая поможет конвертировать GDI + GraphicsPath
в HTML5 canvas Path? Или мне нужно вручную запустить все GraphicsPath.PathPoints
и GraphicsPath.PathTypes
, чтобы исправить соответствующий код HTML5 (если да, пожалуйста, поделитесь любыми подсказками)?Как конвертировать GDI + GraphicsPath в HTML5 canvas Path?
ответ
К сожалению, я не нашел ничего полезного. Некоторые люди предложили использовать SVG как способ «переноса» кривых из GDI в Canvas, но я не смог найти подходящую библиотеку SVG для .NET. Мне потребовалось некоторое время, чтобы понять, как хранятся данные внутри GraphicsPath
, потому что это не так просто, как вы думаете. This is what I've came up to.
Зная, как на самом деле работает GraphicsPath, мне удалось воссоздать его, используя кучу функций HTML5: .moveTo()
, и .bezierCurveTo()
. Результат был довольно аккуратным, хотя окончательное строковое построение занимает некоторое время, и в результате JS-файлы иногда содержат десятые тысячи строк кода, если исходный GraphicsPath представляет собой длинный текст, написанный с фантастическим шрифтом. Удивительно, что Firefox справляется с ними без проблем.
Я не буду вставлять код, который я использую, поскольку он ничего особенного, пока вы читаете и понимаете my answer from another SO question.
- 1. Javascript HTML5 Canvas draw path issue
- 2. HTML5 Canvas to Facebook
- 3. Конвертировать вектор в HTML5 Canvas (координаты DXF в холст)
- 4. Canvas - Path выглядит как увеличенный
- 5. html5 canvas как приложение
- 6. Как установить идентификацию Canvas Path?
- 7. Конвертировать HTML5 Canvas + Приложение Javascript в исполняемый файл
- 8. Canvas change path
- 9. Canvas в HTML5
- 10. как двигаться GraphicsPath OnMouseMove
- 11. Нарисуйте GraphicsPath в PDF
- 12. Визуализация html5 canvas
- 13. Загрузить HTML5-файл в HTML5 Canvas
- 14. Как конвертировать flash в html5?
- 15. HTML5 Canvas: Как закрыть fillRect?
- 16. Как добавить контроль над GraphicsPath
- 17. как сбросить axix HTML5 Canvas
- 18. HTML5 Canvas - как увеличить изображение?
- 19. Как остановить HTML5 Canvas Ghosting?
- 20. HTML5 canvas: Как оживить контекст?
- 21. isMouseOver in Canvas with Path
- 22. HTML5 Canvas bitmaps
- 23. HTML5 Canvas Scale position
- 24. HTML5 Canvas Tileset Animation
- 25. html5 canvas visualize cluster
- 26. HTML5 Canvas Drawing История
- 27. HTML5 Canvas Color Text
- 28. html5 canvas kinetic textbox
- 29. HTML5 Canvas Image Clipping
- 30. HTML5 canvas fillText поля
Если это небольшой одноразовый проект, я бы построил крошечный парсер, вводящий либо необработанный код метода GraphicsPath.Add ...(), либо PathPoints + PathTypes. Прошло некоторое время с тех пор, как я использовал GDI, но я думаю, что я помню, что addPie и addText - это несколько методов пути gdi, не содержащих html-canvas. Довольно прямо, нет? – markE
@markE Это, вероятно, один проект, но некоторые пути очень сложны (созданы из текста) и содержат тысячи кривых. – SiliconMind
Когда вы говорите «создан из текста», вы имеете в виду .AddString(), или вы имеете в виду, что кто-то создал текстовые пути, используя кучу .AddCurve()? Кстати, смотрите ли вы с данными PathPoints + PathTypes или начинаете с кода, который генерировал путь (ы)? – markE