wPaint 网址: http://wpaint.websanova.com/#websanova
在实际应用中, 这是一个不错的在线实时绘图jQuery插件.
最重要的一个功能是 支持将绘的图进行保存.
一个实现的demo(JAVA).
1. 在HTML页面上定义一个wPaint的容器.
<div id="wPaint"></div>最好对容器设置样式.
#wPaint { position: relative; width: 680px; height: 600px; background: #CACACA; border: solid black 1px; margin-bottom: 10px; margin-top: 10px; margin-left: 5px; float: left; }
引入JS,CSS.
<!-- wColorPicker --> <link rel="Stylesheet" type="text/css" href="/js/jquery/wPaint/inc/wColorPicker.css"/> <script type="text/javascript" src="/js/jquery/wPaint/inc/wColorPicker.js"></script> <!-- wPaint --> <link rel="Stylesheet" type="text/css" href="/js/jquery/wPaint/wPaint.css"/> <script type="text/javascript" src="/js/jquery/wPaint/wPaint.js"></script>
$('#wPaint').wPaint({ fillStyle: "#ffffff", image:"${dataDto.base64Image}", strokeStyle: "#333333" });黑色部分
${dataDto.base64Image}是绘图容器的背景图片数据(png格式), base64格式的图片数据.
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAGQCAYAAABY...
如果不需要背景,则不需要设置.
在JAVA中,我们可以使用 BASE64Encoder类来转化.
public static String imageToBase64(byte[] imageBytes) { BASE64Encoder encoder = new BASE64Encoder(); return encoder.encode(imageBytes); }
3.1 获取wPaint的image属性值可获取base64格式的图片数据
var imageData = $("#wPaint").wPaint("image");
public static byte[] base64ToBytes(String bast64Str) { BASE64Decoder decoder = new BASE64Decoder(); try { byte[] bytes = decoder.decodeBuffer(bast64Str); //调整异常数据 for (int i = 0; i < bytes.length; ++i) { if (bytes[i] < 0) { bytes[i] += 256; } } return bytes; } catch (IOException e) { throw new IllegalStateException("Convert base64 data error", e); } }