lippingMagic:在线图片抠图工具是一个基于HTML5技术的在线抠图工具,通过简单的操作即可把你想要的图片内容从整张图片中提取出来,方便进行下一步的美化工作。简单易用!
使用说明:
1、打开网站,点击网页中的“choose file”按钮,选择需要进行抠图的图片。
2、等待上传完毕,就会看到操作工具栏和2张图片。左边那张是原始图片,右边那张则可以用来预览处理后的效果。
3、点击工具栏中的“-”号,在左侧原始图片中不需要的地方进行涂抹,点击“+”号,在原始图片中需要保留的地方进行涂抹,圈定需要抠图的内容。
所有的工具选项都在网页的上端,点两下就会了。图片抠完后,点击Download下载PNG格式,然后再到其它软件里合成。
除了这个在线抠图工具外,还有些在线图片编辑工具,如果手头没有合适的图片编辑的话,使用这些在线图片编辑器也是一个不错的选择,下面介绍一些在线图片编辑工具:
ViscomSoft:在线免费照片编辑工具 http://www.viscomsoftonline.com/
PictReat:在线图片美化工具 http://www.pictreat.com/
BeautyPlus:在线素颜图片美容编辑工具 http://www.beautyplus.com/
SumoPaint:免费在线图片编辑工具 http://www.sumopaint.com/
Rsizr:在线图片缩放编辑工具 http://rsizr.com/
TuCia:吐司网免费照片美化编辑平台 http://www.tucia.com/
Pic-Collage:在线免费图片拼图工具 http://pic-collage.com/
Collage:在线照片拼图工具 http://www.collage.com/
BigHugeLabs:在线照片编辑制作工具大全 http://www.bighugelabs.com/
Canv.as:创意图片在线编辑工具 https://canv.as/
Sizzlepig:批量图片云编辑工具 https://www.sizzlepig.com/
PhotoRaster:在线免费图片编辑美化工具 http://photoraster.com/
SmileBox:图片美化编辑服务平台 http://www.smilebox.com/
GoPhoto:老照片数码编辑服务平台 http://www.gophoto.com/
ColorSplashStudio:图片色彩编辑应用工具 http://www.colorsplashstudio.com/
DipticApp:照片画廊编辑工具 http://www.dipticapp.com/
PhoToViSi:免费在线拼图工具 http://www.photovisi.com/
52Photo:在线图片美化编辑处理工具 http://www.52photo.com/
PicMonkey:在线图片特效编辑工具 http://www.picmonkey.com/
Cropp.ME:在线WEB版图片处理工具 http://cropp.me/
Picozu:免费HTML5版图片编辑工具 http://www.picozu.com/
Textify:可视化图片处理工具 http://textify.it/
Pixlr:图片在线编辑工具 http://pixlr.com/
Ipiccy:免费在线图片编辑工具 http://ipiccy.com/
FotoFlexer:在线照片编辑工具 http://fotoflexer.com/ http://fotoflexer.com/app/index.php?lang=zh-CN
Splashup:在线PS图片编辑工具 http://www.splashup.com/
Reshade:在线图片编辑工具 http://reshade.com/
Improve:在线图片修复网 http://www.improveyourimages.com/
PicNik:在线图片编辑工具 http://www.picnik.com/ http://www.picnik.com/home?locale=zh_CN
Montagraph:在线图片编辑工具 http://www.montagraph.com/
一篇文章《HTML5(五)——Canvas API》介绍 canvas 绘制基本图形,这节开始介绍canvas的高级操作。
canvas 转换常用的几种方法介绍,如下:
方法 | 描述 |
scale() | 缩放当前绘图至更大或更小。 |
rotate() | 旋转当前绘图。 |
translate() | 重新映射画布上的 (0,0) 位置。 |
transform() | 替换绘图的当前转换矩阵。 |
setTransform() | 将当前转换重置为单位矩阵。然后运行 transform()。 |
1.1 、scale - 缩放
使用语法:scale(x,y)
x:表示水平方向的缩放倍数
y:表示垂直方向的缩放倍数
eg:canvas 绘制的矩形框放大两倍,代码如下:
var canvas=document.getElementById("canvas")
var ctx=canvas.getContext("2d")
ctx.scale(2,2)
ctx.fillStyle="red"
ctx.fillRect(0,0,200,200)
1.2、translate - 画布平移
使用语法:translate(x,y)
x:添加到水平坐标上的位置
y:添加到垂直坐标上的位置
设置之后开始绘制的图片位置从(x,y)算起。
eg:绘制两个一样的矩形,一个在平移前绘制,一个在平移后绘制,代码如下:
var canvas=document.getElementById("canvas")
var ctx=canvas.getContext("2d")
ctx.fillStyle="red"
ctx.fillRect(0,0,200,200)
//平移
ctx.translate(200,200)
ctx.fillRect(0,0,200,200)
运行结果如图:
1.3 、rotate - 旋转
使用语法:rotate(angle)
angle 旋转弧度,如果想使用角度,可以把角度转成弧度,公式为:deg * Path.PI/180。
eg:将一个矩形旋转45度,代码如下:
var canvas=document.getElementById("canvas")
var ctx=canvas.getContext("2d")
//旋转45度
ctx.rotate(45*Math.PI/180)
ctx.fillStyle="red"
ctx.fillRect(0,0,200,200)
运行结果如图:
根据上述结果我们发现旋转的时候,默认原点是画布的起始点,我们想要的旋转是在矩形框中心为原点的旋转,此时我们需要借助上translate平移,重置一下原点,修改上述代码为:
<canvas width="400" height="400" id="canvas"></canvas>
var canvas=document.getElementById("canvas")
var ctx=canvas.getContext("2d")
ctx.translate(200,200)
ctx.rotate(45*Math.PI/180)
ctx.translate(-200,-200)
ctx.fillStyle="red"
ctx.fillRect(100,100,200,200)
运行结果如图:
1.4、transform - 矩阵变换
使用语法:transform(a,b,c,d,e,f)
transform可以替代前边平移、缩放、旋转三者,如下:
// 平移
translate(x,y) <=> transform(1,0,0,1,x,y) <=> transform(0,1,1,0,x,y)
// 缩放
sacle(x,y) <=> transform(x,0,0,y,0,0)
// 旋转
rotate(angle) <=> transform(Math.cos(angle*Math.PI/180), Math.sin(angel*Math.PI/180), -Math.sin(angle*Math.PI/180), Math.cos(angle*Math.PI/180))
1.5、setTransform - 矩阵变换
setTransform()方法将变换的矩阵进行重置,它把当前的变换矩阵重置为单位矩阵
使用语法:transform(a,b,c,d,e,f)
各参数说明:水平旋转、水平倾斜、垂直倾斜、垂直缩放、水平移动、垂直移动
setTransform() 方法把当前的变换矩阵重置为单位矩阵,然后以相同的参数运行 transform()。
drawImage() 在画布上绘制图像、画布或视频。也能够绘制图片的一部分,增加或减少图像的尺寸。以下是三种常见使用语法:
上述参数表示的意义如下:
参数 | 描述 |
img | 规定要使用的图像、画布或视频。 |
sx | 可选。开始剪切的 x 坐标位置。 |
sy | 可选。开始剪切的 y 坐标位置。 |
swidth | 可选。被剪切图像的宽度。 |
sheight | 可选。被剪切图像的高度。 |
x | 在画布上放置图像的 x 坐标位置。 |
y | 在画布上放置图像的 y 坐标位置。 |
width | 可选。要使用的图像的宽度。(伸展或缩小图像) |
height | 可选。要使用的图像的高度。(伸展或缩小图像) |
eg:利用语法3,进行绘制图片的部分内容,实现如下效果:
给上述兔子顺便加一个点击屏幕暂停开始功能,完整代码如下:
<canvas width="400" height="400" id="canvas"></canvas>
<script>
var canvas=document.getElementById("canvas")
var ctx=canvas.getContext("2d")
var img=new Image()
let pause=false,frameCounter=0,i=0;
img.src="./rotate.png"
img.onload=function(){
requestAnimationFrame(next)
}
function next(){
ctx.clearRect(0,0,canvas.width,canvas.height)
if(frameCounter%5==0){ //frameCounter 控制动画速度
i++
if(i==11)i=0
}
ctx.drawImage(img,
0,i*240,240,240,
0,0,240,240) // 每张图片宽高都是240,具体参数根据图片而定
frameCounter ++
if(!pause)requestAnimationFrame(next)
}
window.onclick=function(){
pause=!pause
next()
}
</script>
eg:使用 canvas 画布处理视频,使用定时器绘制视频的当前帧,连续起来就是一个视频,需要注意的是必须处理暂停和开始播放两种操作,具体代码如下:
var v=document.getElementById("video1");
var c=document.getElementById("myCanvas");
ctx=c.getContext('2d');
v.addEventListener('play',function() {var i=window.setInterval(function()
{ctx.drawImage(v,0,0,270,135)},20);},false);
v.addEventListener('pause',function() {window.clearInterval(i);},false);
v.addEventListener('ended',function() {clearInterval(i);},false);
常见的像素级的操作有三种:
3.1、getImageData
使用语法:getImageData( x , y , width , height )
返回一个 imageData 对象,用来描述 canvas 区域隐含的像素数据,这个区域通过像素表示,起点是( x , y ),宽高为 widht 和 height 。
imageData 对象包含三个属性:
3.2、createImageData
使用语法:
createImageData( width , height )
创建一个空白的 imageData 对象,新对象的默认像素值 transparent black。对于imageData对象中的每个像素值,都存在 rgba 这四方面的信息,即:
新对象默认像素值为(0,0,0,0)。
eg:如果我们想把 imageData 中一个像素变为红色时,可以改变第一和第四位信息,代码如下:
var imageData=ctx.createImageData(100,100)
imageData.data[0]=255
imageData.data[1]=0
imageData.data[2]=0
imageData.data[3]=255
3.1、putImageData
使用语法:
putImageData( imgData , x , y , dirtyX , dirtyY , dirtyWidth ,dirtyHeight );
参数及意义:
参数 | 描述 |
imgData | 规定要放回画布的 ImageData 对象。 |
x | ImageData 对象左上角的 x 坐标,以像素计。 |
y | ImageData 对象左上角的 y 坐标,以像素计。 |
dirtyX | 可选。水平值(x),以像素计,在画布上放置图像的位置。 |
dirtyY | 可选。水平值(y),以像素计,在画布上放置图像的位置。 |
dirtyWidth | 可选。在画布上绘制图像所使用的宽度。 |
dirtyHeight | 可选。在画布上绘制图像所使用的高度。 |
通过 getImageData 复制的指定矩形像素数据,编辑之后,通过 putImageData 方法将图像数据放回画布上。
eg:添加滤镜效果:上述兔子是白色的变换成红色兔子,这时需要把绿色和蓝色都设置成0即可,代码如下:
网页设计工作中,我们可以给很多元素添加发光的动画效果,举几个例子,“输入框”、“文字”、“进度条”等。给这些元素加上的发光特效会让整个网页变得更加炫酷。今天陕西优就业小编就为大家搜集整理了8款炫酷的HTML发光动画,这些都可以用作Web前端开发工作中,可以为你节省很多开发时间。
1.HTML5 Canvas五彩缤纷的3D发光水晶球动画
这是一款基于HTML5 Canvas的超绚丽发光水晶球动画,就像是酒吧里的那种水晶球射灯一样,不停地随机变换射出光线的颜色,给人一种非常动感的视觉效果。整个水晶球是在Canvas画布上绘制而成,利用CSS3的相关特性使其能够出现五彩缤纷的发光动画,而且可以通过鼠标滚轮来放大缩小这个水晶球,不得不说HTML5真的是非常强大。
2.jQuery/CSS3实现漂亮字体发光特效
今天我们要来分享一款很酷的jQuery/CSS3文字发光特效,首先是加载了谷歌的公共字体库,因此字体非常特别和漂亮,另外利用了jQuery和CSS3的相关特性,当鼠标滑过文字时,文字将会出现发光的动画特效,非常漂亮。
3.超绚丽CSS3多色彩发光立方体旋转动画
之前我们分享过几个不错的CSS3立方体动画,比如这款HTML5 3D立方体旋转动画和HTML5 3D立方体图片切换动画。今天要分享的也是一款基于CSS3的3D立方体旋转动画,不同的是,这款立方体的每一个面都有不同的色彩,并且会带有绚丽的发光特效。
4.纯CSS3实现发光开关切换按钮
前段时间我们向大家分享过一款牛奶般剔透的CSS3 3D开关按钮,效果相当赞。今天我们要来分享一款类似的纯CSS3发光开关切换按钮,它的外观就像一个电灯的开关,可以左右切换。另外开关上的文字还有发光的特效,整体看上去很有立体感。
5.纯CSS3和SVG鼠标滑过灯泡发光特效
这次要分享一款利用纯CSS3和SVG实现的灯泡发光效果,我们只需要将鼠标滑过灯泡,整个灯泡就会出现发光发亮的动画特效,效果相当逼真。CSS3的运用,让灯泡外围有一层淡淡的光晕。并且在灯光点亮和熄灭的时候有淡入淡出的效果。
6.HTML5 Canvas发光Loading动画
之前我们分享过很多基于CSS3的Loading动画效果,相信大家都很喜欢。今天我们要来分享一款基于HTML5 Canvas的发光Loading加载动画特效。Loading旋转图标是在canvas画布上绘制的,整个loading动画是发光3D的视觉效果,HTML5非常强大。
7.CSS3发光Loading加载动画
今天我们要分享一款与众不同的CSS3 Loading动画效果,它是由几个不同的动画效果组合而成的,像文字打印效果、发光效果、飞入飞出效果,这几种效果都非常酷。另外我们可以再回顾一下其他的CSS3 Loading效果:HTML5 Canvas实现超酷Loading动画、很有个性的CSS3弹跳Loading动画。
8.纯CSS3实现发光动画按钮特效
这是一款基于纯CSS3的发光按钮,按钮发光的颜色是随机的,这样一排按钮就显得五彩缤纷,非常绚丽。之前我们也介绍过不少样式很独特的CSS3按钮,比如纯CSS3 3D开关按钮、纯CSS3实现动感弹性按钮等,都非常不错,也有HTML5动画按钮,大家可以自己看看。
陕西优就业:http://www.ujiuye.com/shaanxi/
IT学习交流:468910291
*请认真填写需求信息,我们会在24小时内与您取得联系。