通过电子邮件在HTML5canvas上创建的图像

我有一个canvas,用户可以进行交互以对设计进行更改。 现在用户完成更改后,他可以提交他的设计以及他的电子邮件ID。 但是提交设计我正在使用http://www.nihilogic.dk/labs/canvas2image/将canvas转换为图像

现在我想将此图像与用户的电子邮件ID一起发送。 如何直接发送此图像而不让用户将其保存在本地系统上。

我认为你需要一些javascript魔法,并且因为你已经使用HTML5canvas,这应该不是问题。

因此,提交按钮上的onclick事件将对您的后端php邮件程序脚本发出ajax请求。

var strDataURI = oCanvas.toDataURL(); // returns "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACt..." 

您只需将strDataURI作为参数传递即可。 现在,我认为您还应该将这些保存在您的数据库中,以便电子邮件可以在其中包含此图像标记:

 Design #2 

而且generate_image.php脚本会做这样的事情

  
  if(!empty($_POST['email'])){ $email=$_POST['email']; $image=$_POST['legoImage']; $headers="From:".$email."\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; list($settings, $encoded_string) = explode(',', $image); list($img_type, $encoding_method) = explode(';', substr($settings, 5)); if($encoding_method == 'base64'){ $file=fopen("images/newLego.png",'w+'); fwrite($file,base64_decode($encoded_string)) ; fclose($file); } $my_file = "newLego.png"; $my_path = "images/"; $my_subject = "My Design"; $my_message = "Designed by ".$email; mail_attachment($my_file, $my_path, "myemail@gmail.com", $email, $email, $email, $my_subject, $my_message); } 

我在这里选择了mail_ attachment()函数。

假设您已经成功使用您发布的教程创建了canvas的图像文件,您可以使用像PEAR的Mail_Mime这样的库来为您的电子邮件添加附件。

您可以使用Mail_Mime参考此问题以获取示例。