画布和图片互相转换,使用画布canvas通过ajax、表单等方式将图片上传到服务器,拿来就用,拿来测试

4 篇文章 0 订阅
2 篇文章 0 订阅
<?
//session_start();
header("Content-type: text/html; charset=utf-8");
header('Access-Control-Allow-Origin:*');//
header('Access-Control-Allow-Methods:*'); //
if($_SERVER['REQUEST_METHOD']=='POST') {
    $file='../tt/'.rand().'.jpg';
    print_r(file_put_contents($file,file_get_contents('php://input')));die;
    print_r(move_uploaded_file(current($_FILES)['tmp_name'],$file));die;
}
?>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>测试</title>
</head>
<body>


<img src="" alt="" id="image">
<!--<img src="Upload/test/1.jpg" alt="" id="image">-->
<canvas id="canvas" style="background: #eee;"></canvas>
<iframe src="" frameborder="0" id="iframe" width="500" height="500"></iframe>
<script>
    //图片转为canvas
    function convertImageToCanvas(image) {
        var canvas = document.createElement("canvas");
        canvas.width = image.width;
        canvas.height = image.height;
        canvas.getContext("2d").drawImage(image, 0, 0);
        return canvas;
    }

    //Canvas转为图片
    function convertCanvasToImage(canvas) {
        var image = new Image();
        image.src = canvas.toDataURL("image/png");
        return image;
    }

    //画布写入图片
    canvas.width=500;
    canvas.height=200;

    // image.crossOrigin="anonymous";
    // image.src='https://www.baidu.com/img/flexible/logo/pc/result.png';//图片跨域不行

    //确保图片加载完成后才可以操作
    image.onload= function () {
        canvas.getContext("2d").drawImage(image, 0, 0);
    }
    document.onclick= function () {
        canvas.toBlob(function (blob) {
            // console.log(blob);
            // return;

            //php://input接收
            var uri = '00.php';//自己处理
            var xhr = new XMLHttpRequest();
            xhr.open("POST", uri, true);
            xhr.onload = function() {
                console.log(xhr.responseText);
            };
            xhr.send(blob);

            return;

            //使用文件上传 $_FILES 接收
            var uri = '00.php';//自己处理
            var xhr = new XMLHttpRequest();
            var fd = new FormData();

            xhr.open("POST", uri, true);
            xhr.onload = function() {
                console.log(xhr.responseText);
            };
            fd.append(0 ,blob);
            xhr.send(fd);

            return;

            var url = URL.createObjectURL(blob);
            iframe.src=url;
            console.log(url);
            console.log(arguments);

        },'image/jpeg',0.5);

    }


</script>


</body>
</html>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网站开发者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值