2012-08-17 16 views
0

我需要关于jSignature的帮助。我能够创建一个图像,然后将该图像写回到页面中。我无法工作的原因(以及我首先探索此插件的原因)是将图像从页面导出。我想拍摄图像数据并通过电子邮件发送出去,以便图像显示在电子邮件的正文中。如果已经尝试了很多方法并且什么都没有起作用。目前我的JS是这样的:jSignature图像导出到PHP电子邮件

var $sigDiv = $("#signature").jSignature(); 
     $('<input type="button" value="Reset">').bind('click', function(e){ 
     $sigDiv.jSignature('reset'); 
     }).appendTo($sigDiv); 

而且在提交表单的它看起来像这样:

var datapair = $sigDiv.jSignature("getData", "svg"); 
     var i = new Image(); 
     i.src = "data:" + datapair[0] + "," + datapair[1]; 
     $(i).appendTo($("#success")); 

我试图抓住一个变量,并通过AJAX的图像数据在数据发送字符串到PHP邮件处理形式做这样的事情:

<img src="<?php echo $_POST['signature']; ?>"/> 

或者这样:

<object src="<?php echo $_POST['signature']; ?>"></object> 

我已经竭尽全力试图让它显示出去的电子邮件中的图像。任何帮助深表感谢。

回答

0

我不知道,但你看到下面的网址我认为这是帮助全给你

https://github.com/brinley/jSignature/

演示网址; -

http://willowsystems.github.com/jSignature/#/demo/

jSignature是一个jQuery插件,它简化了在浏览器窗口中创建签名捕获字段,允许用户使用鼠标,笔或手指绘制签名。作为载体的笔划的轮廓

jSignature捕获签名。虽然jSignature也可以导出很好的位图(PNG),但提取签名的高度可伸缩笔划移动坐标(aka矢量图像)可以提供更大的签名渲染灵活性。

一个额外的努力(通过平滑和压力模拟)制成,使招看起来很漂亮的屏幕上,而这些是由奥兰多绘制。

所有主要的台式机,平板电脑和手机浏览器的支持。默认情况下使用HTML5 Canvas元素。当浏览器不支持实际Canvas时(Iinternet Explorer v.8及更低版本),我们会回到基于Flash的Canvas元素仿真器(FlashCanvas)。

实时jSignature呈现只适合设备的“最美”,我们捕捉到什么近似。数据捕获总是相同的 - 我们捕获尽可能多的移动坐标。根据浏览器的功能,设备的效率,屏幕大小,渲染笔划会有所不同。

这种有辱人格和捕捉签名的屏幕表示的增强是故意的,以确保渲染上捕获的响应不impead。例如,在缓慢的渲染设备(Android Browser,基于FlashCanvas的Canvas仿真)中,平滑被启动一个档次以补偿捕获的笔划坐标中的较大间隙 - 这是捕捉设备效率低下的结果。在所有情况下,客户都会对绘图的反应和美感感到满意。

jSignature可以很容易地将自己融入现有的风格网站。jSignature自动检测包裹元素上使用的颜色(文本颜色=笔颜色,背景=背景),并自动为“装饰”(签名线)选取令人愉快的中间色调。 jSignature适用于固定和可变宽度的网页设计,以及各种尺寸的屏幕(手机,平板电脑,电脑屏幕),并自动调整绘图区域和签名时父母元素更改大小

+0

谢谢!我已阅读所有参考资料,但可能错过了某些内容。 – arnonate 2012-08-17 15:55:35

+0

你看到这个网址https://github.com/brinley/jSignature/ – 2012-08-17 16:08:41

+0

是的。我可以将图像打印回页面。我遇到的麻烦是通过AJAX调用将图像数据发送到PHP邮件脚本,以使图像显示在电子邮件中。 – arnonate 2012-08-17 16:15:14

1

YEHESSS!得到它的工作。如果我将图像导出为图像并对图像执行encodeURIComponent(图像),则AJAX调用不会搞乱图像数据。现在像BEAST一样工作。嘿谢谢你的帮助阿比德。