HTML在Javascriptcanvas上混合两个图像

在HTML中,我们可以使用JavaScript的Canvas API来混合两个图像,以下是一个简单的示例,展示了如何在Canvas上混合两个图像。

十载的太康网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整太康建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“太康网站设计”,“太康网站推广”以来,每个客户项目都认真落实执行。

我们需要在HTML文件中创建一个canvas元素,并为其分配一个ID,以便在JavaScript中引用它,我们需要在JavaScript中获取对canvas元素的引用,并创建一个2D渲染上下文,接下来,我们将加载两个图像文件,并将它们绘制到canvas上,我们将使用globalCompositeOperation属性来设置混合模式,并使用drawImage方法将两个图像混合在一起。

以下是一个完整的示例:

1、创建HTML文件:




    
    
    Canvas Image Blending


    
    


2、创建JavaScript文件(blendImages.js):

// 获取canvas元素和2D渲染上下文
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');
// 加载图像文件
const image1 = new Image();
image1.src = 'image1.jpg'; // 替换为你的图像文件路径
const image2 = new Image();
image2.src = 'image2.jpg'; // 替换为你的图像文件路径
// 当图像加载完成时,将其绘制到canvas上
image1.onload = function() {
    ctx.drawImage(image1, 0, 0);
};
image2.onload = function() {
    ctx.drawImage(image2, 0, 0); // 将第二个图像绘制到第一个图像的上方,实现混合效果
};

3、设置混合模式:

在上述示例中,我们没有设置混合模式,因此两个图像将简单地堆叠在一起,要实现混合效果,我们需要设置globalCompositeOperation属性,以下是一些可用的混合模式:

sourceover(默认):源图像位于目标图像上方,源图像与目标图像重叠的区域将被保留,这是最常见的混合模式。

lighter:比较源图像和目标图像的颜色值,并显示较亮的颜色,如果两个颜色值相等,则结果为黑色。

copy:只显示源图像的颜色,目标图像的颜色将被忽略。

xor:比较源图像和目标图像的颜色值,并显示不同的颜色,如果两个颜色值相等,则结果为黑色。

darker:比较源图像和目标图像的颜色值,并显示较暗的颜色,如果两个颜色值相等,则结果为白色。

multiply:将源图像和目标图像的颜色值相乘,然后除以255(颜色值的最大可能值),这会产生一种类似于彩色胶片的效果。

screen:将源图像和目标图像的颜色值相加,然后减去255,这会产生一种类似于反转胶片的效果。

overlay:比较源图像和目标图像的颜色值,并显示较亮的颜色,如果两个颜色值相等,则结果为白色。

softlight:根据源图像和目标图像的颜色值计算一个柔和的光源效果,这会产生一种类似于聚光灯的效果。

hardlight:根据源图像和目标图像的颜色值计算一个强烈的光源效果,这会产生一种类似于闪光灯的效果。

colordodge:根据源图像和目标图像的颜色值计算一个颜色减淡效果,这会产生一种类似于彩色印刷的效果。

colorburn:根据源图像和目标图像的颜色值计算一个颜色加深效果,这会产生一种类似于照片烧印的效果。

darkercolor:比较源图像和目标图像的颜色值,并显示较暗的颜色,如果两个颜色值相等,则结果为黑色,这实际上是darkercopy的组合。

lightercolor:比较源图像和目标图像的颜色值,并显示较亮的颜色,如果两个颜色值相等,则结果为白色,这实际上是lightercopy的组合。

difference:比较源图像和目标图像的颜色值,并显示它们的差值,这会产生一种类似于黑白胶片的效果。

exclusion:比较源图像和目标图像的颜色值,并显示它们的差值的补码,这会产生一种类似于负片胶片的效果。

hue:只显示源图像和目标图像之间的色调差异,这会产生一种类似于单色胶片的效果。

saturation:只显示源图像和目标图像之间的饱和度差异,这会产生一种类似于彩色胶片的效果,但颜色值为灰色。

color:只显示源图像和目标图像之间的亮度差异,这会产生一种类似于黑白胶片的效果,但颜色值为灰色。

luminosity:比较源图像和目标图像的颜色值,并显示它们的亮度差异,这会产生一种类似于黑白胶片的效果,但颜色值为灰色。

要将混合模式应用于两个已加载的图像,请在加载完成后添加以下代码:

ctx.globalCompositeOperation = 'sourceover'; // 设置混合模式为'sourceover'(默认)或其他所需的模式

4、保存并运行HTML文件:现在,当你打开HTML文件时,你应该能看到两个图像已经混合在一起了,你可以尝试更改混合模式以查看不同的效果。

名称栏目:HTML在Javascriptcanvas上混合两个图像
转载来于:http://www.shufengxianlan.com/qtweb/news11/541361.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联