我使用html2canvas.js来保存图片。 我知道如何使用这个如果在与php文件相同的位置/服务器。
但现在我想在eBay列表模板中使用该脚本并将图像保存到我的服务器。 这可能吗?
这是我的php文件:
<?php
function ImageFillAlpha($image, $color) {
imagefilledrectangle($image, 0, 0, imagesx($image), imagesy($image), $color);
}
function imageCreateCorners($sourceImageFile, $name, $radius) {
# test source image
if (file_exists($sourceImageFile)) {
$res = is_array($info = getimagesize($sourceImageFile));
}
else
$res = false;
# open image
if ($res) {
$w = $info[0];
$h = $info[1];
switch ($info['mime']) {
case 'image/jpeg': $src = imagecreatefromjpeg($sourceImageFile);
break;
case 'image/gif': $src = imagecreatefromgif($sourceImageFile);
break;
case 'image/png': $src = imagecreatefrompng($sourceImageFile);
break;
default:
$res = false;
}
}
# create corners
if ($res) {
$q = 10; #change this if you want
$radius *= $q;
$r = 0;
$g = 0;
$b = 0;
$nw = $w * $q;
$nh = $h * $q;
$img = imagecreatetruecolor($nw, $nh);
$alphacolor = imagecolorallocate($img, 0, 0, 0);
imagealphablending($img, false);
imagesavealpha($img, true);
imagefilledrectangle($img, 0, 0, $nw, $nh, $alphacolor);
imagefill($img, 0, 0, $alphacolor);
imagecopyresampled($img, $src, 0, 0, 0, 0, $nw, $nh, $w, $h);
# resize image down
$dest = imagecreatetruecolor($w, $h);
imagealphablending($dest, false);
imagesavealpha($dest, true);
imagefilledrectangle($dest, 0, 0, $w, $h, $alphacolor);
imagecopyresampled($dest, $img, 0, 0, 0, 0, $w, $h, $nw, $nh);
# output image
$res = $dest;
imagedestroy($src);
imagedestroy($img);
imagepng($res, 'cart/'.$name);
}
return $res;
}
$image = $_POST['plate_image'];
$ebay_user = $_POST['ebay_user'];
$decoded = base64_decode(str_replace('data:image/png;base64,', '', $image));
$date = date('m-d-Y', time());
$name = "evgrave-".$ebay_user."-".$date.".png";
file_put_contents("/var/www/html/SERVERLOCATION/img/" . $name, $decoded);
$full_path = "/var/www/html/SERVERLOCATION/img/" . $name;
imageCreateCorners($full_path, $name, 25);
$name1 = 'img/'.$name;
echo '<div class="download">';
echo '<br /><p>Result:</p><br />';
echo "<img src='$name1' alt='image' id='img' />";
echo '<p class="download-btn"><a id="download" class="left" href="download.php?&img=' . $name1 .'">Download Image</a><a id="send" class="right" href="#">Send Order</a></p>';
echo '</div>';
?>
这是js函数:
html2canvas($('#output'), {
"logging": true,
"onrendered": function(canvas){
var dataURL = canvas.toDataURL("image/png");
$.post('REMOTESERVER/image.php',{
plate_image: dataURL,
ebay_user: ebay_user
},function(data){
$('.overlay').remove();
$('#result').html(data);
});
}
});
任何帮助? 感谢
答案 0 :(得分:0)
你可以采取多种方式。这是其中的两个(虽然他们有相同的概念。)
这与方法1非常相似,但使用不同的协议; FTP