我试图用PHP创建矢量图形。我曾尝试过开罗,但我无法使其开始工作。我明白imageMagick具有矢量功能,但php.net上的文档非常差,有人能让我走向正确的方向吗?这些想法是能够将图形保存到EPS。我还需要能够使用不同的字体来输出文本。用PHP创建矢量图形
8
A
回答
0
4
尽管你希望创建EPS我仍然会致力于创建一个PDF。 PDF文件在任何主要包完全可编辑:Adobe Illustrator中,Corel绘图,Xara临等
TCPDF运作良好,并有一串代码样本,包括字体,并支持矢量图像的EPS和AI输出为PDF
EPS/AI例如http://www.tcpdf.org/examples/example_032.pdf
所有的例子和PHP代码http://www.tcpdf.org/examples.php
2
我知道这是很老的问题,但我几个星期前,有一些问题,并解决它为我自己,希望这个答案可以帮助别人。 开罗图书馆有PHP绑定,但它也有一些错误格式之间的转换 - 忘记它。我们在开始时需要一些本地的东西。查看SVG格式 - 在编辑器(我使用Inkscape)中打开您的矢量图像并将其保存为SVG文件。之后,你可以通过PHP来改变它,就像xml文件一样。在SVG 添加自定义字体:
$text_path = 'm 100,200'
$font_name = 'Some_font.ttf';
$font_size = '20px';
$font = base64_encode('font_file_content');
$text = 'Bla bla bla';
$font_svg = '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path d="' . $text_path . '" id="font_id_123"/>
<style type="text/css">
<![CDATA[
@font-face {
font-family: ' . $font_name . ';
src: url("data:font/ttf;charset=utf-8;base64,' . $font . '");
]]>
</style>
</defs>
<text style="font-family: ' . $font_name . '; font-size: ' . $font_size . ';">
<textPath xlink:href="#font_id_123">' . $text . '</textPath>
</text>
</svg>';
$content = file_get_contents($svg_file); // $svg_file - your vector image
$content = substr($content, 0, -6); // cut last '</svg>' tag from file
$newContent = $content . $font_svg . '</svg>'; // add font to the end
file_put_contents($svg_file, $newContent); // save changes
好吧,我们有SVG与不需要的字体,但我们需要的EPS。对于转换SVG至EPS我用Inkscape的简单bash脚本svg2eps.sh:
exec('/path/to/svg2eps.sh /path/to/in.svg path/to/out.eps');
其他提示:
#!/bin/bash
inkscape -f $1 -z -T -E $2
您可以从PHP调用它
1)安装最新版本的Inkscape中。我在openSuse 12.3上测试过它 - 效果很好。
2)将所有自定义字体安装到系统字体。
0
我不能告诉你如何在PHP中创建矢量图像,但也许你会想要一种不同的方法 - 在PHP中创建光栅图像并将它们转换为矢量?它适用于黑色&白色图像不能确定颜色。
<?php
$im = imagecreatetruecolor(500,500);
//draw something on $im
imagepng($im, 'image.png');
$url = 'http://server.com/image.png'; //change to your server's domain
$data = json_decode(file_get_contents('http://api.rest7.com/v1/raster_to_vector.php?url=' . $url . '&format=svg'));
if (@$data->success !== 1)
{
die('Failed');
}
$vec = file_get_contents($data->file);
file_put_contents('vectors.svg', $vec);
相关问题
- 1. 从图像创建矢量
- 2. 创建矢量
- 3. 创建形式的矢量101,1001,10001,...]
- 4. MatLab:创建矢量
- 5. 从旧矢量创建新的矢量?
- 6. 创建增量矢量
- 7. silverlight中的矢量图形
- 8. 旋转矢量图形
- 9. 绘制矢量图形7
- 10. Android中的矢量图形
- 11. 如何为WPF创建矢量图像
- 12. 如何为Twitter创建矢量绘图?
- 13. 如何使用矢量矢量读取图形?
- 14. 在JavaFX中使用矢量图形
- 15. 创建并定义矢量
- 16. 创建矢量方法
- 17. C++无法创建矢量
- 18. numpy的 - 创建矢量
- 19. 矢量阵列创建
- 20. 创建矢量在炮
- 21. 使用矢量矢量创建哈希表?
- 22. 如何创建矢量图形,然后从它们生成图标?
- 23. 关于在iPhone上使用矢量图形的建议
- 24. MFC和图表库/矢量图形?
- 25. 使用条件创建矢量
- 26. 使用矢量矢量建模网络
- 27. 创建矢量范围从变量
- 28. 需要建议:用于创建带有大量文本的矢量图形的编程方式
- 29. 是否有可能在AS3中创建矢量图形的'概述'版本?
- 30. 使用静态矢量图创建补间
您是否考虑过使用PDF而不是EPS? (通常对创建PDF有更多的支持。) – 2011-01-06 22:22:16
nope基本上该文件需要通过Adobe Illustrator进行编辑。不知道这是否可能与PDF。我将考虑使用SVG这是开罗使用,但我无法找到它的PHP包装好文档。我有开罗安装,但我不知道如何开始创建一个图像。 PHP只是遍布各处的错误 – jef2904 2011-01-06 23:34:49