Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用JavaScript / jQuery选择图像的多边形区域?

如何使用JavaScript / jQuery选择图像的多边形区域?
EN

Stack Overflow用户
提问于 2012-08-26 06:24:47
回答 2查看 10.3K关注 0票数 10

我希望能够让我的用户选择他们上传的图像的特定多边形(6-8个点之间有曲线的顶点)区域-我如何使用HTML5 & JS来做到这一点?我找到的唯一一个库允许纯矩形选择:http://odyniec.net/projects/imgareaselect/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-27 13:33:04

已经有一个库可以满足您的部分需求:polyclip.js, by Zoltan Dulac您可以构建一个UI,允许用户选择点,然后将数据馈送到库中,这样就完成了。

编辑:这是一个jsFiddle demonstration。单击以选择原始图像上的点,然后按生成按钮以生成裁剪版本。

HTML

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="mainContent">
    <div id="canvasDiv">
        <br/>
        <button id="generate" type="button">Generate
        </button> 
    </div>
    <h1>Result:</h1>
    <div class="clipParent" style="float:left;"> 
    </div> 
</div>

JS

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var canvasDiv = document.getElementById('canvasDiv'); 
canvas = document.createElement('canvas'); 
canvas.setAttribute('width', 500); 
canvas.setAttribute('height', 500); 
canvas.setAttribute('id', 'canvas'); 
$(canvasDiv).prepend(canvas); 
if(typeof G_vmlCanvasManager != 'undefined') { 
    canvas = G_vmlCanvasManager.initElement(canvas); 
} 

var context = canvas.getContext('2d'); 
var imageObj = new Image(); 

imageObj.onload = function() {
    $(canvas).attr({width : this.width, height: this.height});
    context.drawImage(imageObj,0,0); 
}; 
imageObj.src = 'http://www.html5canvastutorials.com/demos/assets/darth-vader.jpg'; 

var clickX = new Array(); 
var clickY = new Array(); 
var clickDrag = new Array(); 
var paint; 

function addClick(x, y, dragging) 
{ 
    clickX.push(x); 
    clickY.push(y); 
    clickDrag.push(dragging); 
} 

function redraw(){ 
    canvas.width = canvas.width; // Clears the canvas 
    context.drawImage(imageObj,0,0); 

    context.strokeStyle = "#df4b26"; 
    context.lineJoin = "round"; 
    context.lineWidth = 5; 

    for(var i=0; i < clickX.length; i++) 
    { 
    context.beginPath(); 
    context.arc(clickX[i], clickY[i], 3, 0, 2 * Math.PI, false); 
    context.fillStyle = '#ffffff'; 
    context.fill(); 
    context.lineWidth = 5; 
    context.stroke(); 
    } 
} 

$('#canvas').click(function(e){ 
    var mouseX = e.pageX - this.offsetLeft; 
    var mouseY = e.pageY - this.offsetTop; 

    addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop); 
    redraw(); 
}); 

$('#generate').click(function(){ 
    $(".clipParent").empty(); 
    $(".clipParent").prepend('<img src="http://www.html5canvastutorials.com/demos/assets/darth-vader.jpg" id="genimg" />'); 
    var arr = []; 
    for(var i=0; i < clickX.length; i++){ 
        arr.push(clickX[i]); 
        arr.push(clickY[i]); 
    } 
    $("#genimg")[0].setAttribute("data-polyclip",arr.join(", ")); 
    clickX=[]; 
    clickY=[]; 
    redraw(); 
    polyClip.init(); 
});
票数 11
EN

Stack Overflow用户

发布于 2012-10-27 20:38:56

您可以将图像加载到画布标签上,然后可以在该画布上进行所有您喜欢的绘制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12128073

复制
相关文章
JavaScript(15)jQuery 选择器[通俗易懂]
jQuery 选择器 选择器同意对元素组或单个元素进行操作。 jQuery 元素选择器和属性选择器同意通过标签名、属性名或内容对 HTML 元素进行选择。
全栈程序员站长
2022/07/07
1.7K0
图像多边形填充
算法:图像多边形填充是不仅可以填充凸多边形,而且可以填充任何不具有自相交的单调多边形,即其轮廓与每条水平线(扫描线)的相交最多为两次(最顶部边缘和/或底部边缘水平)。如果图像多边形填充部分或全部位于图像外部,则将对其进行裁剪,还可以处理以亚像素精度指定的像素坐标,意味着可以将坐标作为编码为整数的定点数传递。
裴来凡
2022/05/28
6420
图像多边形填充
JavaScript 学习-43.jQuery 选择器
前言 jQuery 选择器基于元素的 id、类、类型、属性、属性值等”查找”(或选择)HTML 元素。它基于已经存在的 CSS 选择器,除此之外,它还有一些自定义的选择器。 jQuery 选择器 jQuery 中所有选择器都以美元符号开头:$() 常用的一些选择器总结 语法 描述 $(this) 选取当前 HTML 元素 $("*") 选取所有元素 $("p") 匹配  <p> 标签元素 $("#kw") 匹配属性 id="kw" 的元素 $(".info") 选取 class 属性为 info 的元素 $
上海-悠悠
2022/06/14
6630
在选择云区域时如何做出最明智的选择
云计算的优势之一是公有云供应商提供了数十个云区域供企业决定在哪里托管工作负载时进行选择。选择正确的云区域对于优化成本、性能、可靠性等很重要。不要默认使用离企业最近的云区域或云计算提供商建议的任何云区域,而是进行研究以确定哪个(或多个)区域可以提供最佳的价值和性能。
静一
2021/07/30
9480
图像显著区域
算法:图像显著区域是使用双线性插值调整图像大小至原图的1/2、1/4、1/8…,再使用双线性插值将生成图像放大到原图大小得到的金字塔两两求差相加并正规化到[0,255]获得图像灰度剧烈变化的区域,也是我们眼球感兴趣区域。
裴来凡
2022/05/29
4980
图像显著区域
jQuery中属性选择器的使用
代码片段如下所示: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>属性选择器的使用</title> <style> </style> </head> <body> <button>获取具有href属性的 DOM 对象</button><br> <button>获取属性值为www.baidu.com对象</button><br> <button>获取属性值不为www.baidu.com对象<
软件小生活
2021/10/08
2.4K0
jQuery中属性选择器的使用
Jquery简介选择的
Jquery一个js相框(程序代码相结合)这是一个程序开发过程中的半成品;分类似该框架EXTJS。
全栈程序员站长
2022/07/06
1.6K0
前端框架 jQuery 和 Vue 如何选择?
不会前端开发的后端不是一个好的后端开发,平时写点小项目可以用得上,先简单了解一下前端这个概念。
良月柒
2019/09/29
9.3K1
前端框架 jQuery 和 Vue 如何选择?
JavaScript 学习-45.jQuery 表单选择器
前言 jQuery 表单选择器,专门操作表单内容 表单选择器 表单选择器总结 表单项 示例 说明 输入框 $(":input") 查找所有input元素,包含input、textarea、select、button 文本框 $(":text") 查找所有文本框type=”text” 密码框 $(":password") 查找所有密码框type=”password” 单选按钮 $(":radio) 查找所有单选按钮 复选框 $(":checkbox) 查找所有复选框 图片 $(":image") 查找所有图像
上海-悠悠
2022/06/14
6190
JavaScript 学习-45.jQuery 表单选择器
jQuery 选择器使用方法
下面的代码,只有外层段落的字体会改变颜色,里层不会,因为里层是属于 divInner 的直系元素
Remember_Ray
2020/03/09
4.6K0
jQuery 选择器使用方法
下面的代码,只有外层段落的字体会改变颜色,里层不会,因为里层是属于 divInner 的直系元素
Remember_Ray
2020/03/08
4.7K0
jQuery介绍与常见选择器的使用
jQuery是继Prototype之后又一个优秀的JavaScript库,是一个由John Resig创建与2006年1月的开源项目。现在的jQuery团队主要包括核心库、UI、插件和jQuery Mobile 等开发人员以及推广和网站设计、维护人员。
端碗吹水
2020/09/23
2.7K0
jQuery介绍与常见选择器的使用
js与jQuery的区别以及jQuery选择器和方法的使用
jQuery是什么:jQuery是JavaScript的类库,封装了很多js代码。类似java中的类库一样里面一个类中有很多别人写好的功能。90%以上的公司都在用jQuery。
天蝎座的程序媛
2022/11/18
15.4K0
js与jQuery的区别以及jQuery选择器和方法的使用
jquery选择器用法_jQuery属性选择器
一、 基本选择器 1. ID选择器 ID选择器#id就是利用DOM元素的id属性值来筛选匹配的元素,并以iQuery包装集的形式返回给对象。 使用公式:(“#id”) 示例:(“#box”) //获取id属性值为box的元素 2. 元素选择器 元素选择器是根据元素名称匹配相应的元素。元素选择器指向的是DOM元素的标记名,也就是说元素选择器是根据元素的标记名选择的。 使用公式:(“element”) 示例:(“div”) //获取所有div元素 3.类名选择器 类选择器是通过元素拥有的CSS类的名称查找匹配的DOM元素。在一个页面中,一个元素可以有多个CSS类,一个CSS类又可以匹配多个元素,如果有元素中有一个匹配类的名称就可以被类选择器选取到。简单地说类名选择器就是以元素具有的CSS类名称查找匹配的元素。 使用公式:(“.class”) 示例:(“.box”) //获取class属性值为box的所有元素 4.复合选择器 复合选择器将多个选择器(可以是ID选择器、元素选择器或是类名选择器)组合在一起,两个选择器之间以逗号”,”分隔,只要符合其中的任何一个筛选条件就会被匹配,返回的是一个集合形式的jQuery包装集,利用jQuery索引器可以取得集合中的jQuery对象。 注意:多种匹配条件的选择器并不是匹配同时满足这几个选择器的匹配条件的元素,而是将每个匹配的元素合并后一起返回。 使用公式:(“selector1,selector2,……,selectorN”) selector1:一个有效的选择器,可以是ID选择器、元素选择器或类名选择器等 selector2:另一个有效的选择器,可以是ID选择器、元素选择器或类名选择器等 selectorN:(可选择)任意多个选择器,可以是ID选择器、元素选择器或类名选择器等 示例:(“div,#btn”) //要查询文档中的全部的<div>元素和id属性为btn的元素 5.通配符选择器
全栈程序员站长
2022/11/16
12.2K0
JQuery的简述、使用方法和选择器
JQ简述1 1、 jQuery出现的背景(Javascript遇到的问题) 选择器功能弱 DOM操作繁琐之极 浏览器兼容性不好 动画效果弱 2、什么是 jQuery(概念) jQuery (javaScriptQuery)JavaScript 代码库 官方网站:http://jquery.com/ 3、目前 jQuery 有三个大版本: 1.x:兼容ie678,使用最为广泛的,官方只做BUG维护,功能不再新增。因此一般项目来说,使用1.x版本就可以了,最终版本:1.12.4 (2016
时间静止不是简史
2020/07/24
1.2K0
JQuery的简述、使用方法和选择器
图像处理-天空区域识别
近几年来,去雾方法得到广泛的研究,汤晓鸥等人发现无雾图像相对于雾化图像具有较高的对比度,通过最大化恢复图像的对比度来实现图像去雾,但由于该方法没有从物理模型上恢复真实的场景反射率,图像去雾后有可能出现颜色过饱和失真。 Kaiming He提出了一种基于暗通道先验的方法,即在有雾图像的特定窗中至少有一个颜色分量的值是零,该算法利用最小值滤波估算出介质传播函数,然后利用软抠图原理对估算的介质传播函数进行优化估计,达到了较好的去雾效果。软抠图需要较高计算量,很难得到实际应用。所以后来Kaiming He又提出了引导滤波法,来精细化透射率。
AomanHao
2022/01/14
7860
JavaScript - 测试 jQuery
为了引用某个库,请使用 <script> 标签,其 src 属性设置为库的 URL:
陈不成i
2021/07/21
6050
点击加载更多

相似问题

页面加载时使用JavaScript / jQuery的图像的默认多边形区域

12

jquery图像定义区域多边形

10

使用jQuery选择图像上的区域

11

JQuery图像选择区域

16

如何使用JavaScript裁剪图像的区域?

26
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文