【问题标题】:Create Vector Image in PHP to Allow Upscaling在 PHP 中创建矢量图像以允许放大
【发布时间】:2013-04-16 00:27:24
【问题描述】:

这个问题有点长,所以我会尽量清楚。

在我共同开发的一个网站上,我创建了一个绘图应用程序,它将有关在<canvas> 元素上绘制的线条的数据发送到服务器以创建图像并将其保存为多种尺寸,这很有效。有保存为 320x212 的标准保存,较小的版本保存为 240x176。 但是,我网站上的一些用户使用相当陈旧的设备/浏览器来运行该应用程序。它还具有较小的视口,因此图像更小,因此服务器端我目前正在乘以坐标以在将图像保存为标准尺寸时进行补偿。但这有一个副作用是随机出现的图像未填充部分,这些部分已在画布上填充。


(来源:socialcu.be

(在较小设备视口的画布上,整个底部是绿色的,而我乘以坐标进行补偿的方法导致许多未填充的部分出现在放大的图像上)

所以我的第一个问题是,将图像制作为矢量图像,将其放大(同时仍然是矢量),然后将其保存为光栅图像可以解决这个问题吗?

其次(如果第一个答案是肯定的),那么在 PHP 中执行此操作的最佳方法是什么?我听说过 Cairo,但是关于它的信息(即 PHP 包的教程)相当缺乏。最理想的是,有没有办法在 Imagick 中做到这一点,或者有关于如何使用 Cairo 的教程?

【问题讨论】:

    标签: php image vector imagick cairo


    【解决方案1】:

    Cairo 在 PHP 站点上肯定缺少文档,因此学习起来会更加困难。我通过谷歌找到了几个关于Cairo的链接。这里有一篇关于某人使用它的经验的博文:Getting started with Cairo

    该帖子中引用的是couple of walk-thrus by Michael Maclean

    imagick 网站上有很多examples of drawing with imagick,从网上可用的示例研究来看,imagick 有一个更好的支持社区(目前)。 imagick 会输出一个光栅图像。

    【讨论】:

    • 感谢您的回复。 :) 我不是在追踪预先存在的图像,而是在发送有关如何在画布上绘制线条的数据(绘制线条的坐标、它们的颜色、宽度等)。我的意思是,无论如何我可以从这些数据创建矢量图像而不是光栅图像,将其放大,然后将其作为光栅保存到文件系统?
    • 喂?当你有机会时,可以回复我之前的评论吗? :)
    • 喂?不是每个人都生活在 StackOverflow 上。有多种 API 可用于使用矢量绘图和保存光栅格式。
    猜你喜欢
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 2016-04-07
    • 2021-12-10
    • 2017-12-22
    • 2019-05-18
    • 2020-01-12
    • 1970-01-01
    相关资源
    最近更新 更多