HTML Canvas标记的内容是否自动创建为PNG文件?

艾伦·威尔斯

当我右键单击绘制到<canvas>标签中的图像时,唯一另存为的文件选项类型是.png即使上载的文件是.jpeg,快捷菜单中显示的唯一选项Save Image As也是.png文件。图像数据是否<canvas>作为png文件绘制到标签中?

的HTML

<form class='frmUpload'>
  <input name="picOneUpload" type="file" accept="image/*" onchange="picUpload(this.files[0])" >
</form>

<canvas id="cnvsForFormat" width="400" height="266"></canvas>

脚本

window.picUpload = function(frmData) {
  console.log("picUpload ran: " + frmData);

    var cnvs=document.getElementById("cnvsForFormat");
    console.log("cnvs: " + cnvs);
    var ctx=cnvs.getContext("2d");
    cnvs.style.border="1px solid #c3c3c3";

    var img = new Image;

    img.src = URL.createObjectURL(frmData);

    img.onload = function() {
      var picWidth = this.width;
      var picHeight = this.height;
      var wdthHghtRatio = picHeight/picWidth;

      console.log('picWidth: ' + Number(picWidth));
      console.log('picHeight: ' + Number(picHeight));
      console.log('wdthHghtRatio: ' + wdthHghtRatio);

      if (Number(picWidth) > 400) {
        var newHeight = Math.round(Number(400) * wdthHghtRatio);
      } else {
        return false;
      };

      document.getElementById('cnvsForFormat').height = newHeight;
      console.log('width: ' + picWidth + " h: " + picHeight);
      console.log('width: 400  h: ' + newHeight);
      //Must change the width and height settings in order to decrease the image size, but
        //it needs to be proportional to the original dimensions.
        ctx.drawImage(img,0,0, 400, newHeight);
    };

jsFiddle上传图片并以新尺寸绘制到画布上

html5 canvas内容的本机格式是位图。

实际上,最好将其描述为像素图,但可以将其视为位图。

您无法右键单击另存为画布元素,但可以:

  • 使用.toDataURL()将画布位图作为png dataURL获取。

  • 使用.toDataURL('image / jpeg')将画布位图获取为jpg dataURL。

  • 使用context.getImageData获取/设置位图像素数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

自动完成HTML标记

来自分类Dev

自动标记HTML文本

来自分类Dev

从HTML文件自动创建DOM树图

来自分类Dev

在html文件中<%标记

来自分类Dev

如何获取HTML标记的“数据文件”属性的内容

来自分类Dev

自动创建HTML

来自分类Dev

如何确定HTML标记名是否为Standalone

来自分类Dev

检查HTML5 Canvas上的像素是否为黑色

来自分类Dev

角度:是否可以从同一HTML标记中访问HTML属性的内容?

来自分类Dev

提取HTML文件的内容

来自分类Dev

SQL Server创建HTML标记

来自分类Dev

SQL Server创建HTML标记

来自分类Dev

前言是否有html标记

来自分类Dev

自动更新html内容

来自分类Dev

.html()方法是否自动编码HTML?

来自分类Dev

HTML内容中的HTML

来自分类Dev

为HTML内容创建淡入和滑入动画

来自分类Dev

是否可以通过k内容将静态HTML标记内容传递到剑道角度模态窗口?

来自分类Dev

src是否应该在HTML的脚本标记中转义为HTML?

来自分类Dev

如何使用Next botton和自动查找文件夹为HTML模板创建演示栏?

来自分类Dev

是否可以在没有<html>标记的情况下创建HTML文档?

来自分类Dev

是否可以在没有<html>标记的情况下创建HTML文档?

来自分类Dev

使用JavaScript在html标记内创建html标记?

来自分类Dev

HTML:如何从 .js 文件自动创建引导卡

来自分类Dev

将html textarea内容下载为文件

来自分类Dev

html文件内容的空行计算为非空

来自分类Dev

PHP上的Jquery从其他文件创建了HTML内容

来自分类Dev

自动将HTML标记替换为“ <br>”

来自分类Dev

C#中的自动HTML标记完成