简体   繁体   English

从画布创建图像

[英]Create Image from a Canvas

I've been looking in the web and had no answer to my specific task. 我一直在网上浏览,对我的特定任务没有任何答案。 What I want to accomplish is having a canvas with content like images and text fields. 我要完成的工作是创建一个画布,其中包含图像和文本字段。 A banner maker. 标语制作者。 Although I have managed to create an image from a canvas with a background, the file saved has no content, only a field of 300x300 with alpha. 尽管我设法从具有背景的画布上创建图像,但是保存的文件没有内容,只有300x300的带有alpha的字段。 I've looked into the value of mRNA and it always has the same values meaning it's saving some raw and constant data. 我研究过mRNA的值,它始终具有相同的值,这意味着它正在保存一些原始数据和恒定数据。 I'd like to know how that works as well. 我想知道它是如何工作的。

Here's my code on how I did this: 这是我如何执行此操作的代码:

HTML: HTML:

<form class="" enctype="multipart/form-data" action="/gears/imageuploader.php" method="post">
<input type="image" id="mRNA" name="mRNA" title="Save Banner"/>
<label>Image Name: </label>
<input type="text" name="name" />
</form>

CSS: CSS:

#canvas {
    min-width: 100%;
    background: red;
}

JavaScript (I'm using Mootools): JavaScript(我正在使用Mootools):

document.addEvent('domready', function(){
    var canvas = $('canvas');
    var rna = $('mRNA');
    var save = $('save');
    var button = $('submit');

    var context = canvas.getContext('2d');
    rna.value = canvas.toDataURL("image/png");


    rna.addEvent('click', function(){
        context = canvas.getContext('2d');
        rna.value = canvas.toDataURL('image/png');
    });
});

PHP: PHP:

<?php
    error_reporting(E_ALL);
    ini_set('display_errors','On');

    $dir = "../uploadedimages/";

    $mRNA = $_POST['mRNA'];
    $name = $_POST['name'];
    $extention = ".png";
    $mRNA = str_replace('data:image/png;base64,', '', $mRNA);
    $mRNA = str_replace(' ', '+', $mRNA);
    $DNA = base64_decode($mRNA);
    $organism = $dir.$name.$extention;

    if(file_put_contents($organism, $DNA)){
        include('../gears/redirect.php');
        redirect(); 
    }
?>

You just forgot to drawImage. 您只是忘记了drawImage。

var context = canvas.getContext('2d');
context.drawImage(yourImage, 0, 0, imageWidth, imageHeight);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM