canvas

canvas菜鸟基于小程序实现图案在线定制功能

依然范特西╮ 提交于 2020-02-18 08:26:33
前言 最近在捣腾一个 袜子图案在线定制 的小程序,核心的需求大概是选择一只纯色的袜子,然后客户可以在袜子上面添加图案, 最终生成一个设计图保存后服务器。定制的图案可以旋转,缩放和拖动,当然,还可以删除。 内容比较初级, 因为我也只是一个 canvas 新手,本文仅是一次实践的记录. 实现-绘图 其实刚开始接手这个项目的时候,我是打算用小程序的 web-view 组件来嵌套 h5 的, 因为小程序的 canvas 的坑,或者说小程序的坑,我是深有体会的,不过回过头来想, web-view 我还没再项目中用过, 还说不定会遇到什么更大的坑呢,所以最终还是选择小程序的 canvas 首先, 计算图片的大小和位置,不能让图片超过画布(我这里是不能超过画布的 80%),位置在画布的正中间. 然后, 需要将原点移动到画布的中心点 这点比较重要,等下下面的旋转如果没有这一步的话,会沿着图片的左上角旋转. 第三步,将目标图像画到画板上,找个是没啥难的,直接调用 ctx.drawImage 既可 if (!this.imgUrl) return ctx.drawImage(this.imgUrl, x, y, this.tempImgWidth, this.tempImgHeight) drawImage 之前需要 判断一下目标图像的路径是否可以拿到图片,如果图片路径有问题,会直接报错

Identify triple tap on custom view

£可爱£侵袭症+ 提交于 2020-02-18 05:41:27
问题 I want to draw circle, whenever user taps on a custom view, and based on tap count circle color changes. Single Tap : YELLOW CIRCLE Double Tap : GREEN CIRCLE Triple Tap : RED COLOR Problem is that, i made one custom view that will count tap event based on time, but some time it miss the first tap. which cause the problem in view. Following code shows all my effort to make above custom view. TripleTapView package com.slk.car_rating_app; import java.util.ArrayList; import java.util.Date; import

平时做的一些好玩或者测试的 项目 特效,动画

时光总嘲笑我的痴心妄想 提交于 2020-02-17 22:35:19
平时即兴或者写的demo项目 展示,欢迎到github博客观看      九宫格跑马灯抽奖 粒子酷炫图片1 粒子酷炫图片2    我的超级好用的分页功能样式,美观,不容错过    我的照片墙 我的幻灯片 微信小程序demo canvas 滤镜效果 我的hash Route 我的日历 我的表单验证demo canvas动画播放序列帧 类似百度图片的那种图片信息显示效果 mySwiper demo 垂直方向 水平方向 3d旋转图册 cube旋转立方体 dot漂浮链接点 loopImg效果 css3 ui-loading jquery插件show canvas小球工厂 原生瀑布流 2015 windfont打字机 来源: https://www.cnblogs.com/donglegend/p/dongsheng.html

HTML5 File API

喜你入骨 提交于 2020-02-16 04:41:04
HTML5 引入了一个 File API 用以提供用户上传文件的信息,并允许网页中的 JavaScript 访问其内容。 以下是一些表单 file 控件: <input type="file" accept="video/*;capture=camcorder"> <input type="file" accept="audio/*;capture=microphone"> <input type="file" accept="image/*;capture=camera">直接调用相机(测试安卓可以,iphone还是有相册) <input type="file" accept="image/*" />调用相机 图片或者相册 <input type="file" multiple accept="image/*" />调用相册 1 FileList 对象 FileList 对象针对表单的 file 控件。 当用户通过 file 控件选取文件后,这个控件的 files 属性值就是 FileList 对象。 // 多选控件 <input type='file' multiple /> <script> document.querySelector('input').onchange = function() { console.log(this.files); }; </script>

学习 | canvas实现图片懒加载 && 下滑底部加载

﹥>﹥吖頭↗ 提交于 2020-02-15 23:00:03
  用canvas实现图片的懒加载并且下滑到据底部60px的时候再次加载数据,模仿UC浏览器的新闻加载。   完整代码: https://github.com/dirkhe1051931999/writeBlog/tree/master/canvasloadimg   html结构 <section class="productul" id="productul"> <input type="hidden" id="pagenumlength" value="1"> <ul id="scrollAdd"> <li> <a href="#"> <div class="leftimage fl"> <canvas data-src="./product1.png"></canvas> </div> <div class="productcontent fr"> <p class="ptitle ">这是标题</p> <p class="pdes ">简介简介简介简介简介简介简介简介简介简介简介简介简介简介</p> <p class="pprice ">这是注释</p> </div> </a> </li> <li> <a href="#"> <div class="leftimage fl"> <canvas data-src="./product1.png"></canvas> <

Canvas 最佳实践(性能篇)

前提是你 提交于 2020-02-15 01:01:03
Canvas 想必前端同学们都不陌生,它是 HTML5 新增的「画布」元素,允许我们使用 JavaScript 来绘制图形。目前,所有的主流浏览器都支持 Canvas。 Canvas 最常见的用途是渲染动画。渲染动画的基本原理,无非是反复地擦除和重绘。为了动画的流畅,留给我渲染一帧的时间,只有短短的 16ms。在这 16ms 中,我不仅需要处理一些游戏逻辑,计算每个对象的位置、状态,还需要把它们都画出来。如果消耗的时间稍稍多了一些,用户就会感受到「卡顿」。所以,在编写动画(和游戏)的时候,我无时无刻不担忧着动画的性能,唯恐对某个 API 的调用过于频繁,导致渲染的耗时延长。 为此,我做了一些实验,查阅了一些资料,整理了平时使用 Canvas 的若干心得体会,总结出这一片所谓的「最佳实践」。如果你和我有类似的困扰,希望本文对你有一些价值。 本文仅讨论 Canvas 2D 相关问题。 计算与渲染 把动画的一帧渲染出来,需要经过以下步骤: 计算:处理游戏逻辑,计算每个对象的状态,不涉及 DOM 操作(当然也包含对 Canvas 上下文的操作)。 渲染:真正把对象绘制出来。 2.1. JavaScript 调用 DOM API(包括 Canvas API)以进行渲染。 2.2. 浏览器(通常是另一个渲染线程)把渲染后的结果呈现在屏幕上的过程。 之前曾说过,留给我们渲染每一帧的时间只有

HTML5 how to draw transparent pixel image in canvas

依然范特西╮ 提交于 2020-02-14 06:52:35
问题 I'm drawing an image using rgb pixel data. I need to set transparent background color for that image. What value I can set for alpha to be a transparent image? Or is there any other solution for this? 回答1: If I understand what you need, you basically want to turn specific colors on an image transparent. To do that you need to use getImageData check out mdn for an explanation on pixel manipulation. Heres some sample code var imgd = ctx.getImageData(0, 0, imageWidth, imageHeight), pix = imgd

HTML5 how to draw transparent pixel image in canvas

情到浓时终转凉″ 提交于 2020-02-14 06:48:29
问题 I'm drawing an image using rgb pixel data. I need to set transparent background color for that image. What value I can set for alpha to be a transparent image? Or is there any other solution for this? 回答1: If I understand what you need, you basically want to turn specific colors on an image transparent. To do that you need to use getImageData check out mdn for an explanation on pixel manipulation. Heres some sample code var imgd = ctx.getImageData(0, 0, imageWidth, imageHeight), pix = imgd

canvas

邮差的信 提交于 2020-02-13 12:55:33
1、html   <canvas id="canvas" width="300" height="150"></canvas> 2、js   var canvas = document.getElementById("canvas")  // 获取画布元素   var ctx = canvas.getContext("2d")  // 获取绘图对象    线   ctx.lineWidth = 3  // 线条宽度   ctx.strokeStyle = "red"  // 线条颜色   ctx.moveTo(0,0)  // 线条起点   ctx.lineTo(50,50)  // 线条终点   ctx.lineTo(100,100)  // 线条终点   ctx.stroke()  //执行上面代码    矩形    ctx.rect(50,50,300,150)  // ctx.rect(左上角X坐标,左上角Y坐标,width,height)   ctx.fillStyle = "#ccc"   // 填充颜色   ctx.fill()  // 执行填充    来源: https://www.cnblogs.com/cuishuangshuang/p/12302952.html

【WPF学习】第三十八章 行为

左心房为你撑大大i 提交于 2020-02-12 21:43:29
原文: 【WPF学习】第三十八章 行为   样式提供了重用一组属性设置的实用方法。它们为帮助构建一致的、组织良好的界面迈出了重要的第一步——但是它们也是有许多限制。   问题是在典型的应用程序中,属性设置仅是用户界面基础结构的一小部分。甚至最基本的程序通常也需要大量的用户界面代码,这些代码与应用程序的功能无关。在许多程序中,用于用户界面任务的代码(如驱动动画、实现平滑效果、维护用户界面状态,以及支持诸如拖放、缩放以及停靠等用户界面特性)无论是在数量山还是复杂性上都超出了业务代码。许多这类代码是通用的,这意味着在创建的每个WPF对象中需要编写相同的内容。所有这些工作几乎都单调乏味的。   为回应这一挑战,Expression Blend创作者开发了称为行为(behavior)的特征。其思想很简单:创建封装了一些通用用户界面功能的行为。这一功能可以是基本功能(如启动故事板或导航到超链接),也可以是复杂功能(如处理多点触摸交互,或构建使用实时物理引擎的碰撞模型)。一旦构建功能,就可将它们添加到任意应用程序的另一个控件中,具体方法是将该控件链接到适当的行为并设置行为的属性。在Expression Blend中,只通过拖放操作就可以使用行为。 一、获取行为支持   重用用户界面的代码通用块得基础结构不是WPF的一部分。反而,它被捆绑到Expression Blend