2

我正在开发一个使用 PHP/Javascript/JQuery 的交互式网站。在页面上,我想建议访问者用鼠标移动和/或旋转图像,以创建新的构图(如下图所示)并将结果保存为 JPG...</p>

将图像移动和旋转到 div

……但我真的不知道该怎么做……你能帮帮我吗?

非常感谢。

4

3 回答 3

2

对于这么简单的事情,我会使用 SVG 而不是 Canvas。

Raphael是 SVG 的优秀库之一。

可以做像这样简单的事情的画布库是FabricJSKineticJS

通常我不提倡图书馆,但如果这就是应用程序要做的所有事情,那么它将为您节省大量时间。

于 2012-04-24T03:01:19.423 回答
0

Another possibility is to make use of the svg-edit project, possibly tweaking it to better suit your needs if all you want is basic transforms.

于 2012-04-24T08:44:55.383 回答
0

所以让我明确一点,这真的很难

如果您使用 Canvas,您可以使用小型服务器端脚本将其导出为 PNG。

还有其他人做过这样的事情,Lucid Chart使用 DOM 元素来移动东西并用 Canvas 绘制它们。我不确定他们是如何出口的。

如果您将 Canvas 用于整个事情,这里有一点关于如何做到这一点。

在 PHP 方面:

// requires php5
define('UPLOAD_DIR', 'images/');
$img = $_POST['img'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = UPLOAD_DIR . uniqid() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';

在 JS 方面(使用 jQuery):

var c  = document.getElementById("yourCanvas");
var png = canvas.toDataURL();
$.post("postimg.php", {img: png}, function() {
    console.log("saved your thing");
});

去年我写了一篇关于这个的博客文章,但只包括了 PHP 方面:

http://j-query.blogspot.com/2011/02/save-base64-encoded-canvas-image-to-png.html

于 2012-04-24T03:14:31.733 回答