canvas绘制油画过程动画效果代码

代码语言:html

所属分类:动画

代码描述:canvas绘制油画过程动画效果代码

代码标签: canvas 绘制 油画 过程 动画

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >
<head>
  <meta charset="UTF-8">
<style>
    body {
  font-family: "Roboto", sans-serif;
  font-size: 14px;
  background: #121212;
}

.container, canvas {
  display: block;
  width: 500px;
  margin: 0 auto;
}

.canvas {
  background: #ccc;
  border-radius: 4px;
  display: block;
}

.translucent {
  opacity: 0.2;
  transition: opacity 0.3s;
}
.translucent:hover {
  opacity: 1;
}

.info, .art-name, .ctrls, .w-descr {
  display: block;
  margin: 5px 0;
  width: 500px;
  padding: 20px;
  box-sizing: border-box;
  background: #d8d8d8;
  border-radius: 4px;
  font-size: 14px;
}

.art-name {
  letter-spacing: 0.1em;
  text-align: center;
}

.info__title {
  display: block;
  font-weight: bold;
}
.info__category {
  padding: 7px;
  padding-left: 1em;
  margin: 6px 0 0;
  background-color: #cacaca;
  border-radius: 4px;
}
.info__cap {
  display: block;
  margin: 0;
  font-weight: bold;
}
.info__list {
  padding: 0 0 0 1em;
  margin: 0;
  list-style: none;
}
.info__key {
  display: inline-block;
  width: 65px;
  text-align: right;
  font-weight: 500;
  margin-right: 0.3em;
  white-space: nowrap;
  font-family: monospace;
}

.ctrls__info, .ctrls__preset {
  font-size: 12px;
  color: black;
  margin: 15px 0 0;
  padding: 0;
}

.ctrls__preset {
  white-space: pre;
}

.mono {
  font-family: monospace;
}

.btn {
  display: inline-block;
  cursor: pointer;
  border-radius: 5px;
  padding: 7px 11px;
  background-color: #ccc;
  font-size: 12px;
  outline: none;
  transition: background-color 0.3s;
}
.btn:hover {
  background-color: #b2b2b2;
}
.btn + .btn {
  margin-left: 5px;
}
</style>

</head>
<body>
<!-- partial:index.partial.html -->
<div class="container">
  <h1 class="art-name translucent">Snake Brush</h1>
  <canvas class="canvas" id="canvas"></canvas>
  <div class="w-descr translucent">
    <p>Used image: 'Girl with a Pearl Earring' by Johannes Vermeer (1665)</p>
  </div>
  <div class="info translucent"><span class="info__title">Controls:</span>
    <div class="info__category"><span class="info__cap">mouse</span>
      <ul class="info__list">
        <li><span class="info__key" style="width:110px">press & move:</span> mouse draw mode</li>
      </ul>
    </div>
    <div class="info__category"><span class="info__cap">keyboard</span>
      <ul class="info__list">
        <li><span class="info__key">'c':</span> clear background</li>
      </ul>
    </div>
  </div>
</div>
<!-- partial -->
  <script >
      //////////////////////////////////////////////////////////////////////////
//                       //                                             //
//   -~=Manoylov AC=~-   //                 Snake Brush                 //
//                       //                                             //
//////////////////////////////////////////////////////////////////////////
//                                                                      //
// Controls:                                                            //
//    mouse                                                             //
//      press & move: mouse draw mode                                   //
//                                                                      //
//    keyboard                                                          //
//        'c': clear canvas                                             //
//        '[': iters -= 3                                               //
//        ']': iters += 3                                               //
//        'z': brush step -= 3                                          //
//        'x': brush step += 3                                          //
//        'q': brush scale -= .1                                        //
//        'w': brush scale += .1                                        //
//////////////////////////////////////////////////////////////////////////
//                                                                      //
// Contacts:                                                            //
//    http://manoylov.tumblr.com/                                       //
//    https://codepen.io/Manoylov/                                      //
//    https://www.openprocessing.org/user/23616/                        //
//    https://twitter.com/ManoylovAC                                    //
//    https://www.facebook.com/epistolariy                              //
//////////////////////////////////////////////////////////////////////////
//                                                                      //
// used image: 'Girl with a Pearl Earring' by Johannes Vermeer (1665)   //
//////////////////////////////////////////////////////////////////////////

'use strict';
(function() {
  var canvas = document.getElementById('canvas'),
    ctx = canvas.getContext('2d'),
    mouseX = 0,  mouseY = 0,
    width = 500, height = 500, mouseIsPressed = false;

  var imagesPathsArr =
    [      'data:image/jpeg;base64,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.........完整代码请登录后点击上方下载按钮下载查看

网友评论0