Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >部分画布对象的getDataURL

部分画布对象的getDataURL
EN

Stack Overflow用户
提问于 2010-07-22 13:53:23
回答 1查看 3.4K关注 0票数 2

我正在构建一个firefox插件,允许用户在对象上绘制任意图形,并将其保存为图像(png文件)。

代码语言:javascript
运行
AI代码解释
复制
var $ = getJQueryOb();
var canvas = '<canvas id="canvas" width="1024" height="1024" style="position:absolute; top:0px; left:0px;"></canvas>';
var currentWindow = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator).getMostRecentWindow("navigator:browser");
var mainDoc = currentWindow.getBrowser().contentDocument;
var cObj = $(canvas).appendTo(mainDoc.body);
$(cObj).bind('mousemove', handlePenDraw);

使用这个我可以在画布上画画。但是,当我保存图像时,我不希望保存整个画布-而只是要保存创建的图像周围的“边界矩形”。

有没有什么办法可以让我。我现在要做的就是按原样保存画布:

代码语言:javascript
运行
AI代码解释
复制
var $ = getJQueryOb();
var canvas = $('#canvas')[0];
var dURL = canvas.toDataURL("image/png");
saveToFile(dURL, "image-file.png");
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-22 16:22:34

您可以存储在handlePenDraw方法中绘制的左上角和右下角坐标,然后使用getImageData方法检索绘制的区域。

然后将检索到的imageData放到一个新的画布上,该画布的大小与绘制到的区域一样大,然后保存新的画布。

div div EDIT:我现在已经创建了一个执行上述操作的演示,只不过它不保存新画布,而只是将其附加到-

下面是一些未经测试的粗略代码:

代码语言:javascript
运行
AI代码解释
复制
// Set these with these in your handlePenDraw method.
var topLeftPoint, bottomRightPoint;
var width = bottomRightPoint.x - topLeftPoint.x;
var height = bottomRightPoint.y - topLeftPoint.y;

// Retrieve the area of canvas drawn on.
var imageData = context.getImageData(topLeftPoint.x, topLeftPoint.y, width, height);

// Create a new canvas and put the retrieve image data on it
var newCanvas = document.createElement("canvas");
newCanvas.width = width;
newCanvas.height = height;

newCanvas.getContext("2d").putImageData(imageData, 0, 0);

// Now call save to file with your new canvas
var dURL = newCanvas.toDataURL("image/png");
saveToFile(dURL, "image-file.png");
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3309571

复制
相关文章
js对象(BOM部分/DOM部分)
JS总体包括ECMAScript,DOM,BOM三个部分,但是能够和浏览器进行交互的只有DOM和BOM,那么到底什么是DOM和BOM呢
全栈程序员站长
2022/07/21
4.3K0
js对象(BOM部分/DOM部分)
Canvas画布
Canvas(画布)组件为Tkinter的图形绘制提供了基础 Canvas是一个通用的组件,通常用于显示和编辑图形。可以用它来绘制线段、圆形、多边形,甚至是绘制其他组件,创建图形编辑器,并实现各种自定义的小组件。
大白熊
2021/12/23
1.3K0
flutter的画布认识
下图代码详见: p03_canvas/06_like_circle/paper.dart#_drawArcDetail
用户1974410
2022/09/20
3.2K0
flutter的画布认识
面向对象基础部分之【类与对象】❣️
❤️一名热爱Java的大一学生,希望与各位大佬共同学习进步❤️ 🧑个人主页:@周小末天天开心 各位大佬的点赞👍 收藏⭐ 关注✅,是本人学习的最大动力 感谢!         首先我们要了解一下本篇面向对象基础部分都会讲到什么。         我们本篇文章主要会围绕类与对象、方法、构造器和this关键字来讲解,虽然内容很多,但只要小伙伴们用心去学,用心去理解,解决这章内容就完全不是问题啦🙃。 目录 📕类与对象 引入 类与对象的区别和联系 对象在内存中的存在形式(必须搞清楚)  成员方法/属性
周小末天天开心
2022/10/26
2280
面向对象基础部分之【类与对象】❣️
我的精益画布
商家推广是互联网重点关注的方向之一,现在也有很多产品、解决方案存在。但对于小商家来说,要不流程复杂、要不成本、门槛较高,这些产品都没有照顾到小商家身上,小商家依然使用低效的推广方法。
Jeffery
2019/07/30
1.5K0
我的精益画布
jface databinding:部分实现POJO对象的监测
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/53839050
10km
2019/05/25
4510
画布就是一切(一)— 画布编程的基本模式
我开发过基于QT的客户端程序、基于C# WinForm客户端,开发过Java后端服务,此外,前端VUE和React我也开发过不少。对应我所开发过的东西,比起一行一行冰冷的代码,我更加迷恋哪些能够直观的,可视化的东西。还记得以前在开发C#的时候,接触过一个的C# WinForm库NetronGraphLib,这个库能够让我们轻松的构建属于自己的流程图绘制软件,让我们能够以拖拉拽的方式来构建图(下图就是NetronGraphLib库的官方示例应用Cobalt):
w4ngzhen
2023/10/16
2990
画布就是一切(一)— 画布编程的基本模式
canvas简易画布
今天学习了canvas,利用它做了一个简易版的画板,校验自己所学的知识,分享出来以供大家学习指教。先上效果图。
马克社区
2022/04/28
1.1K0
python canvas画布
canvas = Canvas(width=525, height=300, bg='white') # 0,0 is top left corner canvas.pack(expand=YES, fill=BOTH) # increases down, right
用户5760343
2022/05/13
1.5K0
python canvas画布
画布就是一切(一)— 画布编程的基本模式
我开发过基于QT的客户端程序、基于C# WinForm客户端,开发过Java后端服务,此外,前端VUE和React我也开发过不少。对应我所开发过的东西,比起一行一行冰冷的代码,我更加迷恋哪些能够直观的,可视化的东西。还记得以前在开发C#的时候,接触过一个的C# WinForm库NetronGraphLib,这个库能够让我们轻松的构建属于自己的流程图绘制软件,让我们能够以拖拉拽的方式来构建图(下图就是NetronGraphLib库的官方示例应用Cobalt):
w4ngzhen
2023/10/16
2830
画布就是一切(一)— 画布编程的基本模式
画布就是一切(一)— 画布编程的基本模式
我开发过基于QT的客户端程序、基于C# WinForm客户端,开发过Java后端服务,此外,前端VUE和React我也开发过不少。对应我所开发过的东西,比起一行一行冰冷的代码,我更加迷恋哪些能够直观的,可视化的东西。还记得以前在开发C#的时候,接触过一个的C# WinForm库NetronGraphLib,这个库能够让我们轻松的构建属于自己的流程图绘制软件,让我们能够以拖拉拽的方式来构建图(下图就是NetronGraphLib库的官方示例应用Cobalt):
w4ngzhen
2023/10/16
2300
画布就是一切(一)— 画布编程的基本模式
面向对象基础部分之【成员方法】
        某些情况下,我们要需要定义成员方法(简称方法)。如人类:除了有一些属性外( 年龄,姓名..),我们人类还有一 些行为,如:可以说话、跑步..。这时就要用成员方法才能完成。
周小末天天开心
2022/10/26
3440
面向对象基础部分之【成员方法】
摆地摊的商业画布
【字数:2098;阅读时长:10min】 作为产品经理,我们不可避免的一环就是思考所在公司、所在行业的商业模式! 今天我们用最朴实的摆地摊儿方式把商业画布解释一下 参考文献:《The One Tool Startups Need to Brainstorm, Test and Win》 个人对商业模式的理解是: 1、必须能够盈利 2、必须能自我保护 3、不是一成不变,必须是可调整的 现在我们将摆地摊和商业画布相继结合起来(叙述过程中会“串场”) 商业画布—— 地摊场景——准备摆地摊卖童装 1、用户细分 以用
用户2025931
2018/06/19
1K0
对servlet\jsp九大内置对象的介绍及部分对象的区别
每个客户打开一个浏览器,就会创建一个会话,并直到页面关闭是一个完整的会话.其作用是当用户在一个服务器反复调用几个链接的时候,能让服务器知道这是同一个客户.原理是当打开第一个jsp页面时,jsp引擎会创建一个session对象,并分配一个id,发送到客户端,放到cookie中,建立一一对应的关系,直到关闭浏览器session对象才取消.
全栈程序员站长
2022/06/30
3310
canvas画布实现矩形的绘制
绘制一个实心矩形cv.fillRect(x,y,width,height)绘制之前声明绘制的实心矩形颜色使用fillStyle
十月梦想
2018/08/29
2.6K0
【说站】python canvas画布的介绍
2、每次调用create_xxx,都会返回创建组件的ID,也可以用tag属性指定标签。
很酷的站长
2022/11/24
9090
【说站】python canvas画布的介绍
canvas清除画布-ZBrush中如何清除画布中多余图像
  ZBrush是一款数字雕刻与绘画软件,它以强大的功能和直观的工作流程彻底改变了整个三维行业。它的简洁化、智能化和人性化的设计无不让众多用户所折服。刚接触它的用户可能会因为找不到相关命令或不熟悉而觉得它有些复杂canvas清除画布,那么,在ZBrush®软件中如何对多余模型进行清除的操作有些刚接触的用户会找不清,本文就删除画布中的多余模型做详细讲解。
宜轩
2022/12/29
2.5K0
JointJS 拖动画布
效果 画布外套一层画板和一层画框,拖动画布时让画板在画框中滚动 源码 <div id="wrap" style="overflow: auto;height:300px;width:300px;background-color: darkgrey"> <div id="board" style="padding:20px"> <div id="paper"></div> </div> </div> <script> const paper = new joint.dia
路过君
2021/12/07
2K0
JointJS 拖动画布
调整合适的画布尺寸(游戏)
可以使用另一个技巧来获取更多一点的页面实际使用面积,那就是去除IOS设备上的地址栏,可以使用页面加载完之后稍稍滚动页面的招术来实现。
White feathe
2021/12/08
1.4K0
Element UI 的表格部分内容显示对象格式
判断数据是否是对象类型,如果是增加pre元素与code元素并替换引号,判断的方法写在methods里面,根据函数返回的true或者false 来确定如何显示
tianyawhl
2019/12/12
3.8K0
Element UI 的表格部分内容显示对象格式

相似问题

缩放画布是否会影响getDataURL()返回的像素数?

13

THREE.ImageUtils.getDataURL

120

将部分画布裁剪成另一个画布对象

12

编辑画布的部分

10

编辑画布的部分

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文