【问题标题】:Save canvas coordinates into local file php将画布坐标保存到本地文件 php
【发布时间】:2017-06-30 03:24:37
【问题描述】:

我想将我生成的画布保存到我的本地文件中。 我已经可以将绘图显示到我的画布上,但是在它之后我不知道如何保存它的坐标。

这就是我目前所拥有的

function display() {
 var canvas = document.getElementById('displaycanvas');
 context = canvas.getContext('2d');
 context.clearRect(0, 0, canvas.width, canvas.height);

    if(document.getElementById('color1').checked){
      context.strokeStyle="#FF0000";
    } else if(document.getElementById('color2').checked){
      context.strokeStyle="#0000FF";
    }
    if (document.getElementById('shape1').checked) {
           context.beginPath();
           context.arc(95,50,40,0,2*Math.PI);
           context.stroke();     }

    if (document.getElementById('shape2').checked) {
            context.beginPath();
            context.rect(50, 27, 50, 100);
            context.stroke();    }
   }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
 <form role="form" id="showchoices" name="showchoices" method="post" action="submitorder.php"> 
<canvas id="displaycanvas"></canvas>
<div> <input type="radio" id="shape1" name="shape_design" value="CIRCLE" onchange="display()"/> O 
<input type="radio" id="shape2" name="shape_design" value="RECTANGLE" onchange="display()"/> [] </div>

<div> <input type="radio" id="color1" name="color_design" value="RED" onchange="display()"/> RED  
<input type="radio" id="color2" name="color_design" value="BLUE" onchange="display()"/> BLUE </div>
</form>

<input type="button" name="btn" value="Save Canvas" id="save" class="btn btn-primary" />

我已经将值存储到我的数据库中(单选按钮选项)

<? php

$shape_design = $_POST['shape_design'];
$color_design = $_POST['color_design'];

$link = mysql_connect('localhost', 'root', '');
@mysql_select_db('design_DB', $link);

$query1 = "INSERT INTO order_cake (shape_design, color_design) VALUES ('$shape_design' , '$color_design');
?>

现在我让 php 工作了,我想包含画布的坐标或画布本身以保存在我的本地文件中。我想早点展示它

<?php
 $canvas_path = $_POST['']; //the path file to store in my local form, the VARCHAR link can be displayed in database
 $context = $_POST[''];

?>

我被困在这里多少天了,我真的需要帮助。 提前谢谢!

【问题讨论】:

  • 您包含了 jQuery 库,但我没有看到您使用它。它被称为 Ajax,它也是一支伟大的足球队,并且与快乐的谷歌搜索押韵。
  • 我真的不知道如何使用 ajax,我只是将它包含在其中,因为我的模板在引导程序中。我没有使用 ajax 提交,只使用 jquery。

标签: javascript php mysql html canvas


【解决方案1】:

作为一个简单的解决方法,而不是讨论边缘情况和数据结构,只需将画布保存为带有 canvas.toDataUrl 的图像数据

然后使用任何常用方法将文本发送到服务器,例如将隐藏输入元素的值设置为图像数据字符串。

&lt;input hidden name="image-data"&gt;

然后,在所有画布的东西都完成之后:

inputElement.value = canvas.toDataUrl();

现在它可以在 PHP 中访问了:

$imageData = $_GET['image-data']

现在有多种方法可以使用这个字符串。通过将其设置为任何&lt;img&gt; 的 src,您将发现它是如何完全编码图像的有效 url,并且您不必费力寻找将这种编码转换为其他任何东西的方法想要,因为这是相当普遍的标准

【讨论】:

  • 谢谢!因此,在您的情况下,您建议将其转换为图像比将其保存到纯画布更好,对吗? ...实际上我确实将我的画布转换为图像 var dataURL = $('#displaycake')[0].toDataURL(); //displaycake 是原始画布,$("#show_canvas").attr("src", dataURL); //show_canvas 是 displaycake 画布的图像,$("#show_canvas").show(); //显示转换后的图像..,你能帮忙我该如何解决这个问题?
猜你喜欢
  • 1970-01-01
  • 2016-08-01
  • 2011-09-28
  • 2014-03-22
  • 2011-01-29
  • 1970-01-01
  • 2017-03-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多