精华内容
下载资源
问答
  • C#图片处理之:在图片上画直线

    千次阅读 2010-05-25 21:42:00
    C#图片处理之:在图片上画直线 在图片上画直线比画框更简单。线形的控制还是通过对Pen的设置来实现的。 /**//// /// 在图片上画线 /// /// 原始图 /// 起始点 /// 终止点 /// 线的颜色 /// 线宽 /// 线条样式...

     C#图片处理之:在图片上画直线

     

     

    在图片上画直线比画框更简单。线形的控制还是通过对Pen的设置来实现的。

            /** <summary>
            /// 在图片上画线
            /// </summary>
            /// <param name="bmp">原始图</param>
            /// <param name="p0">起始点</param>
            /// <param name="p1">终止点</param>
            /// <param name="RectColor">线的颜色</param>
            /// <param name="LineWidth">线宽</param>
            /// <param name="ds">线条样式</param>
            /// <returns>输出图</returns>
            public static Bitmap DrawLineInPicture(Bitmap bmp, Point p0, Point p1, Color LineColor, int LineWidth, DashStyle ds)
            ...{
                if (bmp == null) return null;

                if (p0.X == p1.X || p0.Y == p1.Y) return bmp;

                Graphics g = Graphics.FromImage(bmp);

                Brush brush = new SolidBrush(LineColor);

                Pen pen = new Pen(brush, LineWidth);
                //pen.Alignment = PenAlignment.Inset;

                pen.DashStyle = ds;

                g.DrawLine(pen,p0,p1);

                g.Dispose();

                return bmp;
            }

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ki1381/archive/2007/08/16/1746255.aspx

    展开全文
  • 借用 wz_jsgraphics.js 提供的方法,在图片上画直线、圆、矩形。   在图片上随意点两个点即可画直线、圆、矩形。   coordinate.html &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...

     

    借用 wz_jsgraphics.js 提供的方法,在图片上画直线、圆、矩形。

     

    在图片上随意点两个点即可画直线、圆、矩形

     

    coordinate.html

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>坐标</title>
    <script type="text/javascript" src="wz_jsgraphics/wz_jsgraphics.js"></script>
    </head>
    
    <body>
    <div style="position:absolute;top:100px;left:20px;" id="myCanvas" name="myCanvas">
    <img src="5034ab190d1db.jpg" id="test_img" name="test_img" οnclick="vControl('GETMOUSEPOSINPIC',this)" />
    
    
     <script language="javascript" type="text/javascript">  
     
     var jg = new jsGraphics("myCanvas");
     
     //jg.setColor("#ff0000"); // 选择红色 
     //jg.drawLine(93, 33, 144, 114); // 坐标点相对于 div 元素 "myCanvas" 
     //jg.paint(); 
     
    var JPos = {};  
    (function($){  
        $.$getAbsPos = function(p){  
            var _x = 0;  
            var _y = 0;  
            while(p.offsetParent){  
                    _x += p.offsetLeft;  
                    _y += p.offsetTop;  
                    p = p.offsetParent;  
            }  
              
            _x += p.offsetLeft;  
            _y += p.offsetTop;  
              
            return {x:_x,y:_y};  
        };  
          
        $.$getMousePos = function(evt){  
            var _x,_y;  
            evt = evt || window.event;  
            if(evt.pageX || evt.pageY){  
                _x = evt.pageX;  
                _y = evt.pageY;  
            }else if(evt.clientX || evt.clientY){  
                _x = evt.clientX + document.body.scrollLeft - document.body.clientLeft;  
                _y = evt.clientY + document.body.scrollTop - document.body.clientTop;  
            }else{  
                return $.$getAbsPos(evt.target);      
            }  
            return {x:_x,y:_y};  
        }  
    })(JPos);  
    
    // 点击数 
    var clickCount = 1;
    // 在图片上随意点的两个点的坐标
    var X1, Y1, X2, Y2;
    
    function vControl(pChoice){ 
    	
        switch(pChoice){  
            case "GETMOUSEPOSINPIC":  
                var mPos = JPos.$getMousePos();  
                var iPos = JPos.$getAbsPos(arguments[1]);
    			
    			// 第一次触发时表示第一个点的坐标,
    			// 第二次触发时表示第二个点的坐标
    			var temp = (mPos.x - iPos.x) + ":" + (mPos.y - iPos.y);
    			
    			if (1 == clickCount) {
    			
    				clickCount = clickCount + 1;
    				
    				// 第一个点的坐标
    				document.getElementById("coordinate1").value = temp;
    				
    			} else if ( clickCount > 1) {
    				// 选择要画的图形
    				var choose_fun = document.getElementById("choose_fun").value;
    				
    				if (0 == choose_fun) {
    					alert("请选择");
    					return false;
    				}
    				// 第二个点的坐标
    				document.getElementById("coordinate2").value = temp;
    				
    				if (clickCount >= 2) {		
    				
    					jg.clear();
    					
    					var p1 = document.getElementById("coordinate1").value;
    					var p2 = document.getElementById("coordinate2").value;
    					
    					X1 = p1.split(":")[0];
    					Y1 = p1.split(":")[1];
    					
    					X2 = p2.split(":")[0];
    					Y2 = p2.split(":")[1];
    					
    					jg.setColor("#55bb55"); // 选择蓝色
    					jg.setStroke(3);
    					
    					if (1 == choose_fun) {
    						// 画直线: 通过两个点的坐标
    						jg.drawLine(parseInt(X1), parseInt(Y1), parseInt(X2), parseInt(Y2));
    					} else if (2 == choose_fun) {
    						/* 画圆 : 两个点之间的长度作为圆的半径 */
    						// 平方值
    						var p_1 = Math.pow(X1,2) + Math.pow(Y1, 2);
    						var p_2 = Math.pow(X2,2) + Math.pow(Y2, 2);
    						// 圆半径
    						var r = Math.abs(Math.round(Math.sqrt(p_1) - Math.sqrt(p_2)));
    						
    						// 画直线
    						jg.drawLine(parseInt(X1), parseInt(Y1), parseInt(X2), parseInt(Y2));
    						
    						// 画圆
    						var deg=-1;
    						setInterval(function()
    						{
    						deg++;
    						x = parseInt(X1) + r*Math.cos(deg*Math.PI/180)+"px";
    						y = parseInt(Y1) + r*Math.sin(deg*Math.PI/180)+"px";
    						//alert(x + " " + y);
    						myCanvas.innerHTML +="<div id='"+deg+"' style='position:absolute;margin:0px;width:3px; height:3px; background-color:#55bb55; left:"+x	                                                +"; top:"+y+";'></div>"},3);
    					} else if (3 == choose_fun) {
    						/* 画矩形 : 通过两个点 */
    						// 1. 确定哪个点是左上角
    						
    						// 矩形的边长
    						var width = Math.abs(parseInt(X1) - parseInt(X2));
    						/// 矩形的高
    						var highth = Math.abs(parseInt(Y1) - parseInt(Y2));
    						
    						if (parseInt(X1) < parseInt(X2)&& parseInt(Y1) > parseInt(Y2)) {
    							// (X1,Y2)是左上角
    							// 一个矩形的外边线。参照左上角的坐标点,并指定矩形的宽度和高度
    							jg.drawRect(parseInt(X1), parseInt(Y2), width, highth);
    							
    						} else if (parseInt(X1) > parseInt(X2) && parseInt(Y1) < parseInt(Y2)) {
    							// 左上角坐标是 (X2, Y1)
    							jg.drawRect(parseInt(X2), parseInt(Y1), width, highth);
    							
    						} else if (parseInt(X1) > parseInt(X2) && parseInt(Y1) > parseInt(Y2)){
    							// 左上角坐标是 (X2, Y2)
    							jg.drawRect(parseInt(X2), parseInt(Y2), width, highth);
    						} else if (parseInt(X1) < parseInt(X2) && parseInt(Y1) < parseInt(Y2)){
    							// 左上角坐标是 (X1, Y1)
    							jg.drawRect(parseInt(X1), parseInt(Y1), width, highth);
    						}
    						
    					}
    					jg.paint();
    				}
    			}
    			
                 // 设置状态栏文本
                window.status = (mPos.x - iPos.x) + " " + (mPos.y - iPos.y);  
                  
                break;  
        }
    }
    
    
    </script>  
    </div>  
    <div align="center">
    <select id="choose_fun" name="choose_fun">
    	<option value="0">请选择</option>
    	<option value="1">直线</option>
    	<option value="2">圆</option>
    	<option value="3">矩形</option>
    </select>
    <br />
    <input type="text" id="coordinate1" />
    <br />
    <input type="text" id="coordinate2" />
    </div>
    </body>
    </html>
    

     

     

     

    展开全文
  • 代码能够读入的图片中进行直线、折线的绘制,并能够控制端点标记。这个代码弥补了matlab原图中绘制图形的缺陷。matlab plot函数绘制的线段,并没有改变读入图片的数据,直接保存图片的矩阵数据,不会保留绘制的...
  • OpenCV图像中添加文字,画点,画直线 ,OpenCV图像中添加文字,绘制点,绘制直线 ,

    OpenCV在图像中添加文字,画点,画直线

    尊重原创,转载请注明出处】 http://blog.csdn.net/guyuealian/article/details/77870983
    #include "stdafx.h"
    #include <iostream>
    #include <string.h>
    #include<opencv2\opencv.hpp>
    using namespace cv;
    using namespace std;
    int main()
    {
    
    	Mat src = imread("images/2.jpg");//图片必须添加到工程目录下
    
    	// 将原图像转换为灰度图像    
    	//cvtColor(src, src, CV_BGR2GRAY)
    
    	//在原图画一个圆圈点
    	cv::Point point;//特征点,用以画在图像中  
    	point.x = 20;//特征点在图像中横坐标  
    	point.y = 50;//特征点在图像中纵坐标  
    	cv::circle(src, point, 4, cv::Scalar(0, 0, 255));//在图像中画出特征点,2是圆的半径 
    
    	//在原图画一条直线
    	cv::Point start = cv::Point(10, 100); //直线起点
    	cv::Point end = cv::Point(50, 200);   //直线终点
    	cv::line(src, start, end, cv::Scalar(0, 0, 255));
    
    	//在原图某个位置添加文字标记
    	//char str[4];
    	//int num = 100;
    	//_itoa_s(num, str, 10);//数字需要转为字符串来显示
    	string str = "Love100";
    	putText(src, str, end, cv::FONT_HERSHEY_DUPLEX, 0.5, cv::Scalar(0, 255,0 ), 2);
    	imshow("src", src);
    	waitKey(0);
    }
    运行结果:


    展开全文
  • qt4.7背景图上画直线

    千次阅读 2017-06-30 14:42:13
    void MainWindow::paintEvent(QPaintEvent *event) { //加载的背景图 QPixmap pixmap(":/new/prefix1/view.jpg");...//画直线 QPainter painter; painter.begin(&pixmap); painter.setPen(Qt::green); painter.

    void MainWindow::paintEvent(QPaintEvent *event)

    {

    //加载的背景图

    QPixmap pixmap(":/new/prefix1/view.jpg");


    //画直线

    QPainter painter;

    painter.begin(&pixmap);

    painter.setPen(Qt::green);

    painter.drawLine(0,0,100,100);//起始坐标(0,0),终止坐标(100,100)

    painter.end();


    //图片在lable标签里显示

    ui->label_map->setPixmap(pixmap);

    ui->label_map->setMouseTracking(true);

    ui->label_map->show();

    }

    展开全文
  • OpenCV新建一个图片,并在图片上画由一点到另一点的直线,采用反走样形式 #include <iostream> #include <opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> using namespace...
  • 介绍一下canvas的几种使用方法,画直线和裁剪图片;包含以下两个方面: 1、canvas裁剪图片:h5的这个新特性,我们可以使用canvas进行图片的处理,比如裁剪,等比放大或缩小。比如我们有个360x607宽高的目标图,如果...
  • GDI/GDI+ 图像上画直线

    千次阅读 2013-03-27 19:46:14
    //这里的程序多次线报错,不知为何,求解 CDC cdc; cdc.Attach( m_img.GetDC() ); CPen pen(PS_SOLID, 2, RGB(0, 0, 0)); cdc.SelectObject(&pen); cdc.MoveTo(10, 10); cdc.LineTo(100, 200); S
  • 之前看过一个视频,有个人把纸面分割成一个一个三角后一直画直线,慢慢的图纸的图案变得复杂了起来,大概是像下面这样: 上面这个图便是我用matlab模拟的效果,过程很简单,就是用了泊松云盘采点构建三角网格,...
  • 控件介绍: MapWinGis 是一个GIS开源库,它被做成了ActiveX ...出一条线段,表示运动设备的直线轨迹。 现有条件: 已经使用MapWinGis控件读取了某一个区域的shapefile 文件(这个文件包含着经纬度信息)
  • 转:http://www.eoeandroid.com/thread-114497-1-1.html   画直线效果图:   Main.xml代码 android:orientation="horizontal" andr
  • matlab从图片提取或拟合直线出拟合直线的方法

    万次阅读 多人点赞 2018-11-27 09:57:07
    假如现在有如下一张灰度图(图片名为001.jpg),现在要拟合图中的那条白线 代码如下(Matlab2017): im=imread('001.jpg'); %读取图片 %im=rgb2gray(im); %如果是rgb图片则转为灰度图 [h,w]=size(im); %获取...
  • C++ 画直线

    2020-03-20 20:41:53
    使用C++画直线 完整代码 #include "graphics.h" int main() { int driver,mode,i; float x0,y0,y1,x1; float j=12,k; driver=VGA;mode=VGAHI; initgraph(&driver,&mode,""); setbkcolor(GREE...
  • OpenCV3_C++_Lines()图像上画直线 实例

    万次阅读 2017-10-13 20:01:32
    Opencv3 的开发环境安装和导入请看 ... 所有的OpenCV3_C++实例代码请看 ...//去掉以上两行代码注释之后就可以不用下面的代码中加上cv::和...//图像上画直线 return 0 ; } 原图像 结果图像
  • 用html+canvas+js实现网页上画直线曲线很容易。但是怎么判断自己画出来的是什么形状呢,比如判断画出来的是不是直线,是不是曲线,是不是三角形。今天就先来讲下:如果判断canvas和js画出来的是不是直线,不多说先...
  • HoughLines()函数 画直线在图像

    千次阅读 2018-09-23 20:06:07
    #include #include using namespace cv; using namespace std; int main( ) { //【1】载入原始图和Mat变量定义 ...图可以看出了,只能检测到直线类型的线条!下图可见,可以检测到直线线条!
  • C#+VisionPro图像中画直线

    千次阅读 2019-10-21 15:57:09
    有时候我们测量时没有固定的测量位置,这时就需要使用线工具,根据参考位置出一条相对线来进行测量。主要使用了CogFitLineTool工具,工具介绍见CogFitLineTool工具介绍。 本文结合C#动态改变CogFitLineTool的...
  • c#PictureBox画直线 矩形

    千次阅读 2016-05-13 13:07:07
    转自:... c#PictureBox的基本使用(画直线,矩形) 下面的四个事件一定要绑定,不绑定任何效果都没有的  private Point m_ptStart = new Point(0, 0); private Point m_ptEnd = new Point(0, 0);
  • UIImageView 显示图片一条直线

    千次阅读 2014-08-14 15:36:28
    //创建图片视图  UIImageView *img1=[[UIImageView  alloc]initWithFrame:CGRectMake(floatcount, 12, 16, 16)];  //设置图片  img1.image=[UIImage imageNamed:@"home"];  [_scrollView ...
  • 留下来,我想这窗口上画很多条直线,如何修改代码才能实现?![图片说明](https://img-ask.csdn.net/upload/201510/26/1445868554_477245.jpg) ![图片说明]...
  • 如何用PS画直线

    万次阅读 2018-03-05 16:20:22
    我们平时的科研项目中,经常会用到PS来画直线,其中主要是为了给图中的一些对象添加对应的注释,如下图所示。虽然对于一些PS大神来说这是微不足道,但是对于我们一些PS小白来说,权当是给我们自己做一下笔记罢了,...
  • JAVA -- NPOIexcel中画直线

    千次阅读 2018-02-03 14:47:58
    实际应用中会碰到导出到excel的需求,下面是找到的一个案例。 HSSFSheet sheet1 = hssfworkbook.CreateSheet("Sheet1"); HSSFPatriarch patriarch = sheet1.CreateDrawingPatriarch(); HSSFClientAnchor a1 = ...
  • C#在图片上画线

    千次阅读 2019-07-12 16:58:30
    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms...namespace drawL...
  • ("使用鼠标画直线" ); this .setBounds(400,300,400,300 ); this .setDefaultCloseOperation(EXIT_ON_CLOSE); this .getContentPane().add( new PaintLineCanvas()); // 创建自定义画布组件 this ....
  • MFC画直线(dialog)

    千次阅读 2019-12-05 10:37:32
    OnPaint函数内画直线 首先创建OnPaint函数,步骤如下: 找到自己要添加的dialog,双击进入,按照下图操作。 选择WM_PAINT消息,添加OnPaint函数,如下: 完成上面步骤,对应的dialog就自动生成了相应的函数。...
  • 直接先效果视频 代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style type="text/css"> .wrap{ background: #...
  • 有这样一个需求,一张图片上画几条线并保存,如图所示: 已知各个点的x,y坐标,坐标范围是[0.000,1],即将横纵方向分成1000份。 我们可以使用java.awt.Graphics2D的库来实现。 Graphics2DGraphics类提供绘制...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,654
精华内容 12,661
关键字:

在图片上画直线