psd 替换智能图层的的实现-个性化定制网站

psd 替换智能图层的的实现-个性化定制网站老板让做一个在线服装定制的网站,可合成服装的效果图遇到了难处,如果是单纯的图片叠加也比较简单,前端合成的话使用canvas两张图片合成在一起就可以了canvas合成衣服的效果图准备两张图片,一张是素材,一张是背景如下图他们加一块就得到了这样一张图满心欢喜找老板,实现了!!!,终于可以早早下班了,然并卵,老板说:素材为啥没有弯曲,做出来的图片不真实,方案被打回来之后再次研究方案1.弯曲写死,如果单纯定制杯子是没有问题的,因为他只有一种效果,如果定制的是衣服,风景画等等其他的商品效.

大家好,又见面了,我是你们的朋友全栈君。

老板让做一个在线服装定制的网站,可合成服装的效果图遇到了难处,如果是单纯的图片叠加也比较简单,前端合成的话使用canvas 两张图片合成在一起就可以了

canvas 合成衣服的效果图准备两张图片,一张是素材,一张是背景如下图

psd 替换智能图层的的实现-个性化定制网站psd 替换智能图层的的实现-个性化定制网站

 他们加一块就得到了这样一张图

psd 替换智能图层的的实现-个性化定制网站

满心欢喜找老板,实现了!!!,终于可以早早下班了,然并卵,老板说:素材为啥没有弯曲,做出来的图片不真实,方案被打回来之后再次研究方案

1.弯曲写死,如果单纯定制杯子是没有问题的,因为他只有一种效果,如果定制的是衣服,风景画等等其他的商品效果图场景,那么单纯的弯曲是无法适配的,现实的场景至少要实现透视,弯曲,纹理等等效果,才能做的真实,所以这种方案也是不行。

2.3d建模,然后再模型上应用贴图纹理,这种确实是能实现,因为是真实的3d渲染,前端有许多优秀的 3d展示库 如 three.js等,展示模型确实也比较简单,可是难点在于建模,我们只有平面设计师,每做一个产品都要建模渲染未免成本也太高了,平面设计师现学也来不及,单独又要招聘人才,这种方案备选

3.直接解析PSD 文件中的智能图层,设计师制作好PSD模板后,解析PSD文件,替换智能图层,最终实现效果,这个方案是最符合现有的人员构成的了,ps开发和设计师都会操作,招聘设计师也比招聘建模师更容易,要是能预期实现那么就太棒了。

确定了最终方案后就开始搜索有哪些解析智能图层的库

找到了一个官方的库和第三方库

Adobe Photoshop File Formats Specification

https://github.com/meltingice/psd.js

var PSD = require('psd');
var psd = PSD.fromFile("path/to/file.psd");
psd.parse();

console.log(psd.tree().export());
console.log(psd.tree().childrenAtPath('A/B/C')[0].export());

// You can also use promises syntax for opening and parsing
PSD.open("path/to/file.psd").then(function (psd) {
  return psd.image.saveAsPng('./output.png');
}).then(function () {
  console.log("Finished!");
});

 psd.js 只能做解析无法做还原,我们的需求是不但要解析更重要是能还原psd,还原psd库有哪些难点呢,首先要清楚知道psd文件的组成部分,还要知道ps中各个模块的数学知识,手动解析然后还原成psd是不可能的,要是实现了那还不得做成中国版的ps了

 搜索了几天后来发现了这个网站 foxpsd-在线psd文件处理工具,替换图层智能对象api接口 FOXPSDpsd 替换智能图层的的实现-个性化定制网站https://foxpsd.com/

哇塞终于有一家专门的公司提供了这种替换智能图层的服务,

psd 替换智能图层的的实现-个性化定制网站看官网的描述正符合我们的要求,发现虽然是收费的,但是能满足就好

网站描述中可以生成3种规格的图片,最大500px,最大1600像素,最大10000像素,分别对应着实时预览,商品主图,生产图

加了管理员微信,申请账号之后开始对接试一试

psd 替换智能图层的的实现-个性化定制网站

 对接的方式,应该获取专属的token,然后请求相关的接口,来实现图片的合成服务

整体的api 比较简单

主要分为 PSD的模板维护,图片生成维护

首先试一下PSD的模板维护吧

先使用 apizza – 极客专属的api管理工具 做一下接口测试

psd 替换智能图层的的实现-个性化定制网站

 返回一个专属的 psd sku,传了几个试了试

psd 替换智能图层的的实现-个性化定制网站

下面到了关键的部分,试一下生成图片的部分

psd 替换智能图层的的实现-个性化定制网站

 也能很快的生成,确实不错,完全满足了我们的开发

最终生成的照片有了 明显的弯曲效果图,太棒了!!

psd 替换智能图层的的实现-个性化定制网站

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145939.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Navicat Premium 15安装需要注意的几个细节

    Navicat Premium 15安装需要注意的几个细节关于软件的下载和激活的流程,网上有太多文章了,这里就不赘述了。主要记录几个细节问题:安装完NavicatPremium15后,激活之前一定不要打开它!打开它不一定有问题,但可以尽量避免后面的各种错误。 下载完成之后,安装解压的过程尽量在断网的情况下进行!不断网不一定有问题,但可以尽量避免后面出现各种问题!激活的过程中,如果没注意这两种,那可能就是经历什么rsapublickeynotfind,或者输入激活密钥有个红叉号等等各种各样的问题,为了避免一些不必要的麻烦,还是按顺序来吧,希望看到

    2022年10月9日
  • 微信小程序和php交互_php接收json数据

    微信小程序和php交互_php接收json数据微信js源码Page({onLoad:function(){varthat=thiswx.request({//要交互页面的地址url:’http://localhost/php/index.php/Wxwater/Test/test’,data:{pid:1//data里边使我们要传递给PH…

    2022年9月17日
  • java请求webservice_java service

    java请求webservice_java service展开全部java返回list这你应该会吧,然后转换成json格式给其它语言.json(javascriptObjectNotation的缩写)是一个基于文本的,人类可读32313133353236313431303231363533e4b893e5b19e31333361313936的,开放标准的轻量级数据交换格式。它继承了javascript中的简单数据结构和相关数组对象,称为对象。不管…

    2022年10月16日
  • Android scaleType属性

    Android scaleType属性转自:https://blog.csdn.net/lirui0822/article/details/384234231、android:scaleType=”center”(1)当图片大于ImageView的宽高:以图片的中心点和ImageView的中心点为基准,按照图片的原大小居中显示,不缩放,用ImageView的大小截取图片的居中部分。(2)当图片小于ImageView的…

    2022年6月29日
  • python中for循环的用法-Python for循环及基础用法详解

    python中for循环的用法-Python for循环及基础用法详解Python中的循环语句有2种,分别是while循环和for循环,前面章节已经对while做了详细的讲解,本节给大家介绍for循环,它常用于遍历字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素。for循环的语法格式如下:for迭代变量in字符串|列表|元组|字典|集合:代码块格式中,迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中…

    2022年8月12日
  • tkMapper整合「建议收藏」

    tkMapper整合「建议收藏」目录一.简介二.tkMapper整合2.1基于SpringBoot完成MyBatis的整合2.2整合tkMapper三.tkMapper使用四.TkMapper提供的方法4.1添加4.2更新4.3删除4.4查询4.5连表查询一.简介tkMapper就是一个MyBatis插件,提高开发效率。提供了针对单表的数据库操作方法逆向工程(根据数据表生成实体类、dao接口、映射文件)二.tkMapper整合2.1基于SpringBoot完成MyBatis的整合1.新建SpringBoot项目

    2022年10月7日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号