全国咨询热线:18720358503

前端知识:如何上传下载CSS滤镜和混合模式处理

类别:企业动态 发布时间:2021-01-08 浏览人次:

感谢各位开发者来到翼速应用技术文章知识分享专栏。今天为大家分享一篇前端知识:如何上传下载CSS滤镜和混合模式处理的图片?

第一、使用CSS滤镜和混合模式在线凡科抠图

使用CSS滤镜和混合模式可以实现各种各样的图像处理效果,例如CSSgram项目,内置众多图像处理效果,部分效果示意如下缩略图:

进入demo页面你也可以点击这里的按钮,更换你本地的素材,查看对应的图像效果:

呈现的效果虽好,但是也带来另外一个问题,虽然视觉上是已经处理后的图片,但是如果我们右键-图片另存为,会发现还是原图。

如果用户觉得某个图片处理后的效果很棒,想要保存到自己的本机,就会受阻。

或者说,我们基于CSS滤镜和混合模式制作了一款图像处理的工具,最后需要把这些已经处理好的图片上传到后台,作为一个独立的元素使用,也会受阻。

怎么办?难道我们要放弃这么好的特性,还使用canvas来处理图像吗?

不需要的,实际上是有方法可以得到CSS处理后的图像的。


二、SVG foreignObject元素与视觉存储

SVG中有个元素,可以实现在SVG内部嵌入XHTML元素,例如:        
        文字。

demo页面最后一张图片和CSS处理后的图片长相虽同,但是本质却不同,一个还是原始图(试试右键-另存为),一个本质上是合成图(试试右键-另存为),如下截图示意:而SVG本质上就是个图像,也就是说,我们只需要把图像处理相关的HTML代码和CSS代码放在

于是,接下来,无论是是要下载到本机还是上传到服务器都不是问题。

关于纯前端下载图片,可以参考我之前这篇文章:“JS前端创建html或json文件并下载”的part3部分。

关于上传,可以传输图像canvas.toDataURL()的base64数据,也可以传输canvas.toBlob()的Blob数据:


// canvas转为blob并上传canvas.toBlob(function (blob) {    // 图片ajax上传
    var xhr = new XMLHttpRequest();    // 文件上传成功
    xhr.onload = function() {
         // xhr.responseText就是返回的数据
    };    // 开始上传
    xhr.open("POST", 'upload.php', true);
    xhr.send(blob);    
}, 'image/jpeg');


三、我该如何在项目中使用?

上面的demo页面中,我写了个名为cssRenderImage2PureImage()的方法,可以把类似下面代码结构的CSS图像处理结果变成一张图片:

        
.clarendon-filter {
    filter: contrast(1.2) saturate(1.35);
    display: inline-block;
    position: relative;
.clarendon-filter::before {
    content: '';
    display: block;
    height: 100%;
    width: 100%;
    top: 0; left: 0;
    position: absolute;
    background: rgba(127,187,227,.2);
    mix-blend-mode: overlay;
    pointer-events: none;
}

cssRenderImage2PureImage()方法语法:

cssRenderImage2PureImage(dom, callback);

其中:

dom必须参数。DOM对象。callback可选参数。Function。回调方法,支持一个参数,为合成后的图片的base64信息。

示例:

cssRenderImage2PureImage(input, function (url) {    // url就是合成后的图片base64地址
    // 你可以对url做你任何你想做的事情……});


四、其它说明以及结束语

cssRenderImage2PureImage方法高度定制,如果你的CSS滤镜处理的DOM结构有所不同,你需要根据你的项目场景调整下cssRenderImage2PureImage方法里面的代码;

此技术实现请在Chrome浏览器下玩耍。以上软文编辑由翼速应用整理,关于CSS滤镜和混合模式处理的图片如何上传下载?的详细内容,更多了解还请大家随时关注我们。


响应式布局CSS媒体查询设备像素比介绍

构建响应式网站布局最常见的是流体网格,灵活调整大小的站点布局技术,确保用户在使用的幕上获得完整的体验。响应式设计如何展示富媒体图像,可以通过以下几种方法。


微信小程序对于线下实体店具有哪些红利

对于一些商业敏感的电子商务公司,如蘑菇街,京东等等,在看到小程序背后巨大的流量红利后,逐渐将产品从原来的公众号或应用程序转移到小程序,并在小程序的帮助下,获得更多利润。


网站开发中HTTP状态码分类说明

请求Web服务器会返回HTTP状态码,通知浏览器请求是否成功,是否有错误或需要身份验证。HTTP状态代码是服务器传输响应的重要部分,服务器会自动包含在每个HTTP响应中,如果服务器无法执行客户端请求或无法传输网站信息,会显示对应的状态码。


非关系型和关系数据库管理系统有哪些

根据数据的类型,结构,数据模型,数据存储使用,不同的系统需求,所需的架构或查询机制,用于本地存储的动态配置数据的系统,与操作关系数据库完全不同的要求,但是根据分类有非关系型和关系数据库管理系统。

下一篇:没有了

推荐阅读

前端知识:如何上传下载CSS滤镜和混合模式处理

第一、应用CSSps滤镜和混和方式线上凡科抠图应用CSSps滤镜和混和方式能够完成各种各样各种各样的图象解决实际效果,比如CSSgram新项目,内嵌诸多图象解决实际效果,一部分实际效果...

2021-01-08
广州凡科互联网科技股份有限公司招聘资深策划

招聘人数:12职位信息1、商户的营销定位、整体推广计划与方案,线上及线下活动项目方案策划撰写;2、负责商户品牌营销方案撰写;品牌宣传文案撰写;3、负责社会化媒体平台(微博...

2021-01-08
设计网站时网站的简洁清晰广州网站建

企业设计方案网站时网站的简约清楚。关键主要表现在下边几层面。设计方案应简约强有力是客户浏览网站数最多,检索模块百度收录网页页面的通道。要为中后期的SEO营销推广提升出...

2021-01-08
针对IOS和Android的 App应用推广的报价技巧

【引言】在全部App开发设计之中,App营销推广是在App开发设计进行后的一个关键阶段,但营销推广的实际效果立即关联到这一App的生死存亡,一个好的营销推广会将一个一般的App推上高...

2021-01-08
重庆微信平台建设开发大概需要多少钱或费用价

自打手机微信发布至今备受移使用的钟爱,手机微信客户总数也在迅速的提高,现如今已经是大上亿的客户量。客户量的提高必然是许多互联网企业的发展趋势的一个基本,接着手机微...

2021-01-08
制作微信小程序_jQuery选择器选中终究一个元素,

jQuery挑选器选定最终一个原素,倒数第二个原素实际操作实例 本文关键详细介绍了jQuery挑选器选定最终一个原素,倒数第二个原素实际操作,涉及到jQuery挑选器eq()方式与last()方式有...

2021-01-08
X

400-8700-61718720358503
企业邮箱2639601583@qq.com
官方微信