手写画板实现并转化成图片

<!DOCTYPE html>
<html>
<head>
<title>画板实验</title>
 <meta charset="UTF-8">
 <meta name="viewport"content="width=device-width, initial-scale=1.0">
<!-- <script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>-->
 <style type="text/css">
</style>
</head>
 <body >
 <canvas id="myCanvas"></canvas>

<div>
 <button onclick="clean();">清 空</button>
 <button onclick="save();">生成图片</button>
</div>

 <img id=‘img‘ alt=‘请涂鸦……‘/>

 <textarea id="log"cols="30"rows="5"></textarea>
 <script type="text/javascript">
 var canvas,board,img;
 canvas = document.getElementById(‘myCanvas‘);
 img= document.getElementById(‘img‘);

 canvas.height = 300;
 canvas.width = 300;

 board = canvas.getContext(‘2d‘);

 var mousePress = false;
 var last = null;

 function beginDraw(){
 mousePress = true;
}

 function drawing(event){
event.preventDefault();
if(!mousePress)return;
 var xy = pos(event);
if(last!=null){
board.beginPath();
board.moveTo(last.x,last.y);
board.lineTo(xy.x,xy.y);
board.stroke();
}
 last = xy;

}

 function endDraw(event){
 mousePress = false;
event.preventDefault();
 last = null;
}

 function pos(event){
 var x,y;
if(isTouch(event)){
 x = event.touches[0].pageX;
 y = event.touches[0].pageY;
}else{
 x = event.offsetX+event.target.offsetLeft;
 y = event.offsetY+event.target.offsetTop;
}
// log(‘x=‘+x+‘ y=‘+y);
 return {x:x,y:y};
}

 function log(msg){
 var log = document.getElementById(‘log‘);
 var val = log.value;
 log.value = msg+‘n‘+val;
}

 function isTouch(event){
 var type = event.type;
if(type.indexOf(‘touch‘)>=0){
 return true;
}else{
 return false;
}
}

 function save(){
//base64
 var dataUrl = canvas.toDataURL();
// dataUrl = dataUrl.replace("image/png","image/octet-stream");
 img.src = dataUrl;
}

 function clean(){
board.clearRect(0,0,canvas.width,canvas.height);

}

 board.lineWidth = 1;
board.strokeStyle="#0000ff";

 canvas.onmousedown = beginDraw;
 canvas.onmousemove = drawing;
 canvas.onmouseup = endDraw;
canvas.addEventListener(‘touchstart‘,beginDraw,false);
canvas.addEventListener(‘touchmove‘,drawing,false);
canvas.addEventListener(‘touchend‘,endDraw,false);
</script>

[
lim_{x to 0}
]

</body>
</html>
时间: 2024-11-29 01:25:12

手写画板实现并转化成图片的相关文章

iOS 文字转化成图片

//文字转化成图片 -(UIImage *)imageFromText:(NSArray*)arrContent withFont:(CGFloat)fontSize withTextColor:(UIColor *)textColor withBgImage:(UIImage *)bgImage withBgColor:(UIColor *)bgColor { // set the font type and size UIFont *font = [UIFont fontWithName:@

base64字符串转化成图片

package com.dhht.wechat.util; import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder; import java.io.*; /** * @Author: sh * @Description: ImgUtil * @Date: 9:14 2019/7/1 */public class ImgUtil { /** * 图片转化成base64字符串 * * @param imgPath * @return *

手写栈(递归转化为非递归)

递归的本质是通过栈来保存状态,然后再次调用自己进入新的状态,然后函数返回的时候回到上次保存的状态. 如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的.当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归.尾递归函数的特点是在回归过程中不用做任何操作,就是没有回溯过程,所以我们可以直接将尾递归写成循环 更一般的递归,想要转化为非递归,就需要模拟栈(手写栈)的行为. 遍历的递归和非递归实现: #include<cstdio>

IOS基础UI之(三)手写UI和storyboard方式实现图片移动和缩放

手写UI是最早进行UI界面布局的方法,优点是灵活自由,缺点是使代码看起来比较长.平时学习的时候可以多尝试手写ui,这样会更深入熟悉控件.storyboard开发效率相对比较高.实际开发中看情况而定!! 下面用这两种方式分别实现图片移动和缩放. 功能描述: 1. 界面布局 2.点击相应的按钮,对显示的图片移动.缩放. 效果如下:    掌握点: 一:熟悉代码的描述UIButton属性 1.UIButton状态 UIControlStateNormal          // 正常状态 UICont

用JavaScript将Canvas内容转化成图片的方法

上周我们花了半天时间开发下一个准备放进Mozilla Marketplace的应用.有一个应用现在非常的火热,那就是Instagram,Facebook花了100万美元收购了它.我们也想有100万美元装到口袋里,我决定开发一个Instagram风格的应用,这篇文章了我将介绍一下如何将一张图片拷贝到canvas里,以及反过来,如何将画布内容保存成图片格式. 使用JavaScript将图片拷贝进画布 要想将图片放入画布里,我们使用canvas元素的drawImage方法: // Converts i

将文本转化成图片

首先要确定你的php是否开启了gd库扩展,只要在浏览器地址栏输入htpp://你的域名/phpinfo.php,回车,只要出现gd,就表示你的php环境支持了gd扩展.如果不支持,直接在php.ini里开启,去掉gd2前的;再重启apache就可以了.如图:   php代码如下: <?php header("Content-type:text/html;charset=utf-8"); header ( 'Content-type: image/png' ); $font_siz

实例——使用PDFRenderer将pdf转化成图片

PDF-Renderer是Sun公布的一个开源项目, 它主要目的是方便用户展示PDF文档. 通过解析PDF文档, 使用户能够在自己的应用中查看, 预览,绘制PNG和合并到3D的场景中. 关于该项目的介绍可以看这里.不过貌似很久没更新了.也是,Sun都已被Oracle收购很久了~ 不过前段时间搞PDF打印的时候也实践了一下PDF-Renderer,下面是一段实例代码: public class TestPDFRenderer { public void Pdf_Png(int pageNumber

WinForm将html内容转化成图片

1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Windows.Forms; 9 10 namespace TCP 11 { 12 public partial class Fo

logistic回归与手写识别例子的实现

本文主要介绍logistic回归相关知识点和一个手写识别的例子实现 一.logistic回归介绍: logistic回归算法很简单,这里简单介绍一下: 1.和线性回归做一个简单的对比 下图就是一个简单的线性回归实例,简单一点就是一个线性方程表示 (就是用来描述自变量和因变量已经偏差的方程) 2.logistic回归 可以看到下图,很难找到一条线性方程能将他们很好的分开.这里也需要用到logistic回归来处理了. logistic回归本质上是线性回归,只是在特征到结果的映射中加入了一层函数映射,