Canvas自定义图片大小及蒙版与生成gif图

简介: Html的Canvas主要通过js脚本做一些图形化操作。Canvas是一个矩形区域,您可以控制其每一像素。canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

Html的Canvas主要通过js脚本做一些图形化操作。Canvas是一个矩形区域,您可以控制其每一像素。canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

如果有个需求,我们只想要用户相册图片中某个区域的内容,其余区域设为透明?

实现

  1. 先改变图片的大小
    使用一个开源的canvas库pica
// Resize from Canvas/Image to another Canvas
pica.resize(from, to, {
  unsharpAmount: 80,
  unsharpRadius: 0.6,
  unsharpThreshold: 2
})
.then(result => console.log('resize done!'));
img_82aa2f6339a31076c89bd8661e36dd08.png
测试效果
  1. 实现图片的蒙版
    图片蒙版主要是图片的叠加模式进行处理,参考以下链接
    图片组合类型
ctx.save();
ctx.drawImage(mask_img, 0, 0);
ctx.globalCompositeOperation = "source-in";
ctx.drawImage(our_img, 0, 0);
ctx.restore();
img_4bbe67ea83c792b1d20d4b1d7a76faa9.png
mask.png

img_7628d44a644a59d6e9d9d1f84ff6f636.png
our_img

img_f4f1eb1ce8bc55fe40e34e2f3462b5af.png
蒙版效果图
  1. 关于如何生成gif图,使用gif.js库。
                var gif = new GIF({
                    workers: 2,
                    quality: 10,
                    background: "#ffffff00",
                    transparent:"ff0000"
                });

                
                gif.addFrame(img1);
                gif.addFrame(img2);
                gif.on('finished', function(blob) {
                    // window.open(URL.createObjectURL(blob));
                    var url = URL.createObjectURL(blob);
                    document.getElementById("gif").setAttribute("src",url)

                });

                gif.render();

最后

这里主要介绍了一些前端对图片处理的操作。

相关文章
|
7月前
|
前端开发
canvas图片操作
canvas图片操作
|
前端开发
canvas生成自定义大小图片
canvas生成自定义大小图片
|
3月前
|
C++
SDL基础使用03(渲染显示bmp图片)
如何使用SDL库在C++中创建窗口、加载BMP图片、创建纹理,并通过渲染器进行显示的完整过程。
41 2
|
7月前
|
开发工具 Android开发 开发者
Android `.9.png` 图像是用于UI的可拉伸格式,保持元素清晰度和比例
【6月更文挑战第26天】Android `.9.png` 图像是用于UI的可拉伸格式,保持元素清晰度和比例。通过边上的黑线定义拉伸区域,右下角黑点标识内容区域,适应文本或组件大小变化。常用于按钮、背景等,确保跨屏幕尺寸显示质量。Android SDK 提供`draw9patch.bat`工具来创建和编辑。**
263 6
|
存储 Web App开发 编解码
图片:前端展示图像(img 、picture、svg、canvas )及常用图片格式(PNG、JPG、JPEG、WebP、GIF、SVG、AVIF等)
图片:前端展示图像(img 、picture、svg、canvas )及常用图片格式(PNG、JPG、JPEG、WebP、GIF、SVG、AVIF等)
979 1
|
8月前
|
前端开发
|
移动开发 JavaScript HTML5
JS获取img图片的原始尺寸高度和宽度
JS获取img图片的原始尺寸高度和宽度
568 0
JS获取img图片的原始尺寸高度和宽度
|
C# 图形学 索引
上传图片时,使用GDI+中重绘方式将CMYK图片转为RGB图片
原文:上传图片时,使用GDI+中重绘方式将CMYK图片转为RGB图片 我们知道,如果网站上传图片时,如果用户上传的是CMYK图片,那么在网站上将是无法显示的,通常的现象是出现一个红叉。
1222 0
|
Web App开发 前端开发
Canvas合成自定义Gif图
上次介绍了Canvas自定义图片大小及蒙版与生成gif图,没有详细的说明如何生成gif图,生成gif图的过程也可以进行一些优化。 我们无需借助第三方库,直接使用canvas原生的api就可以完成很多的功能。