CN104331277B - 一种可直接升级的图像素材的量产方法 - Google Patents

一种可直接升级的图像素材的量产方法 Download PDF

Info

Publication number
CN104331277B
CN104331277B CN201410541925.7A CN201410541925A CN104331277B CN 104331277 B CN104331277 B CN 104331277B CN 201410541925 A CN201410541925 A CN 201410541925A CN 104331277 B CN104331277 B CN 104331277B
Authority
CN
China
Prior art keywords
script
picture material
picture
mass production
production method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410541925.7A
Other languages
English (en)
Other versions
CN104331277A (zh
Inventor
张伟
尤嘉华
傅松林
李志阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Meitu Technology Co Ltd
Original Assignee
Xiamen Meitu Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xiamen Meitu Technology Co Ltd filed Critical Xiamen Meitu Technology Co Ltd
Priority to CN201410541925.7A priority Critical patent/CN104331277B/zh
Publication of CN104331277A publication Critical patent/CN104331277A/zh
Application granted granted Critical
Publication of CN104331277B publication Critical patent/CN104331277B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明涉及一种可直接升级的图像素材的量产方法,采用可读可编程的脚本语言编写图像素材,如果图像素材由多个基础单元叠加而成,则先编写当前图像素材必须的基础单元,再利用脚本语言将若干个基础单元按顺序叠加,而为图像素材。本发明所述的方法采用不仅可读也可以编程的脚本语言,比现有的二进制或是xml、json,具有更好的可读和自身扩张性。满足外部素材格式具有一定的灵活性、可读性的需求。图像素材的效果需要更新优化的时候,可以在脚本内完成编写脚本模块。如果对某些模块效率或是逻辑不满意的时候脚本语言本身也具有扩展性,可以直接利用脚本语言编写需要的模块对主引擎进行优化改进。

Description

一种可直接升级的图像素材的量产方法
技术领域
本发明涉及一种素材编写方法,更具体地说,涉及一种可直接升级的图像素材的量产方法。
背景技术
目前市面上有大量的的图像处理软件,软件都有自己的特有的素材格式,为了方便设计素材,通常素材文件由自定义的工具生成,并且都是二进制的格式。缺点无法阅读、无法纠正错误、无法升级素材功能,素材的升级一定随着程序的版本一起发布,引擎部分代码也要因此进行升级。而且对旧版本的程序不存在兼容性,旧版本的程序无法使用。
发明内容
本发明的目的在于克服现有技术的不足,提供一种针对图像处理领域存在大量素材需求,提高产量及更方便升级功能的可直接升级的图像素材的量产方法。
本发明的技术方案如下:
一种可直接升级的图像素材的量产方法,采用可读可编程的脚本语言编写图像素材,如果图像素材由多个基础单元叠加而成,则先编写当前图像素材必须的基础单元,再利用脚本语言将若干个基础单元按顺序叠加,而为图像素材。
作为优选,如果更新图像素材时,按不同的基础单元、不同的叠加顺序将若干个基础单元进行重新叠加,形成新的图像素材。
作为优选,编写新的基础单元,与其他现有的基础单元进行顺序叠加,形成新的图像素材。
作为优选,基础单元为比图像素材小的接口代码,将若干个接口叠加成为成块的带有逻辑性的代码,封装成为图像素材。
作为优选,利用脚本语言进行图像素材编程的具体步骤如下:
1)编写可与脚本语言交代的接口代码,编写图像素材的脚本程序;
2)将接口代码与脚本程序打包成为图像素材包。
作为优选,主程序使用图像素材包处理图像的具体步骤如下:
1)主程序加载图像素材包里的脚本程序;
2)运行时编译脚本程序,将脚本程序加载进内存中;
3)初始化图像素材包里的接口代码;
4)主程序将图像数据传递给脚本程序,调用脚本程序的处理函数,主程序通过脚本程序间接的调用当前图像素材必须的接口代码,按脚本设定的顺序,执行调用当前图像素材必须的接口代码;
5)主程序展示或保存脚本返回的的结果。
作为优选,如果图像素材为特效API,则基础单元为元特效API。
本发明的有益效果如下:
本发明所述的方法采用不仅可读也可以编程的脚本语言,比现有的二进制或是xml、json,具有更好的可读和自身扩张性。满足外部素材格式具有一定的灵活性、可读性的需求。图像素材的效果需要更新优化的时候,可以在脚本内完成编写脚本模块。如果对某些模块效率或是逻辑不满意的时候脚本语言本身也具有扩展性,可以直接利用脚本语言编写需要的模块对主引擎进行优化改进。
具体实施方式
以下结合实施例对本发明进行进一步的详细说明。
本发明提供一种可直接升级的图像素材的量产方法,根据本发明要达到的技术效果,要求外部素材格式具有一定的灵活性、可读性。本发明的实施,可以选择目前市面上比较流行的脚本语言作为素材的编写语言,比如Ruby、Python、Lua等都是不错的选择,不仅可读也可以编程。比现有的二进制或是xml、json。具有更好的可读和自身扩展性。
确定了素材使用的编程语言后,需要对现有的程序引擎部分进行拆分——把功能拆分成基础单元。比如滤镜模块,里面拥有的是大量的滤镜特效的API,但是所有的滤镜特效的API都是元特效,就是简单单一滤镜,素材中使用的特效通常是由多种特效API以某种顺序叠加出来的效果。
为了剥离特效素材本身的内部逻辑,程序引擎部分只能提供最小功能单元,即是让模块足够细化,具体实施中,需要细化到什么程度,只要求程序引擎能完成所有基础算法即可,其余的操作就是通过脚本语言进行链接。
把大量的原来成块的带有逻辑性的代码(核心模块的API)不断细分,成为一堆小的接口,对于图像领域核心模块就是算法集合充满各种算法结构,为了能显示处理,核心还包括渲染的GL相关的API,方便脚本程序利用GPU操作输入的图片。本实施例中,还进一步提供文件操作API。
例如:利用现有技术编写的API是针对某个素材特效,编写时需要直接做一个美颜再加上一个调色,成为一个定死的API。采用本发明,则可以将其细分为二:一个调色、一个美颜,在脚本中将他们组合使用。如此,将核心模块的API简化成一堆小的API集合,这些小的API为开发后面的服务模块提供基础支持。
核心模块的API分装成服务模块的API与脚本进行交互。将核心模块的API通过选择的脚本语言,根据脚本语言自身的交互规则,定义实现可与脚本交互的接口代码。
以Lua与C/C++为例,封装方法的步骤如下:
1)在C/C++实现算法的apimethod_one()属于ModuelA;
2)通过Lua语言的C接口lua_State,注册method_one()到ModuleA;
3)编写测试脚本1.lua导入moduleA调用函数method_one。
其他API同样可以通过上述步骤进行封装。
将内核程序实现素材功能并于素材配套的方案,转向利用脚本语言编程,直接实现素材本身功能需求,并且可以利用服务模块提供API自定义扩展模块,来丰富内核API未提供的功能。
将编写好的素材打包后,供主程序使用,以Lua为例,具体步骤如下:
1)编写图像素材的脚本程序,利用前述封装步骤封装的Modules;
2)将编写好的Lua程序打包,变成图像素材包;
3)主程序加载图像素材包里面的脚本程序;
4)运行时编译脚本程序,将脚本程序加载进内存中;
5)主程序要处理某图片的时候,先执行脚本程序中的initialize函数初始化脚本程序的相关资源;
6)主程序将图像数据传递给脚本程序,调用脚本程序的处理函数;主程序不需要知道具体需要哪些模块,需要哪些调用逻辑只要等待脚本的返回值;
7)主程序展示或保存返回的的结果,可以对脚本程序约定统一的输入和输出,利用约定好的接口,获得脚本程序处理后的结果。
通过上述方法实现了素材的可编程化,从而可以提高生产的效率与速度。
图像素材的效果需要更新优化的时候,可以在脚本内完成编写脚本模块。如果对某些模块效率或是逻辑不满意的时候脚本语言本身也具有扩展性,可以直接利用脚本语言编写需要的模块对主引擎进行优化改进。
经测试,利用脚本编写图像素材,不仅对程序员而言效率高,而且方便优化脚本,修改脚本的错误,并且达到软件的高内聚低耦合的需求,本发明可以满足许多情况下的需求。
上述实施例仅是用来说明本发明,而并非用作对本发明的限定。只要是依据本发明的技术实质,对上述实施例进行变化、变型等都将落在本发明的权利要求的范围内。

Claims (5)

1.一种可直接升级的图像素材的量产方法,其特征在于,采用可读可编程的脚本语言编写图像素材,如果图像素材由多个基础单元叠加而成,则先编写当前图像素材必须的基础单元,再利用脚本语言将若干个基础单元按顺序叠加,而为图像素材;更新图像素材时,按不同的基础单元、不同的叠加顺序将若干个基础单元进行重新叠加,形成新的图像素材;或者,编写新的基础单元时,与其他现有的基础单元进行顺序叠加,形成新的图像素材。
2.根据权利要求1所述的可直接升级的图像素材的量产方法,其特征在于,基础单元为比图像素材小的接口代码,将若干个接口叠加成为成块的带有逻辑性的代码,封装成为图像素材。
3.根据权利要求2所述的可直接升级的图像素材的量产方法,其特征在于,利用脚本语言进行图像素材编程的具体步骤如下:
1)编写可与脚本语言交互的接口代码,编写图像素材的脚本程序;
2)将接口代码与脚本程序打包成为图像素材包。
4.根据权利要求3所述的可直接升级的图像素材的量产方法,其特征在于,主程序使用图像素材包处理图像的具体步骤如下:
1)主程序加载图像素材包里的脚本程序;
2)运行时编译脚本程序,将脚本程序加载进内存中;
3)初始化图像素材包里的接口代码;
4)主程序将图像数据传递给脚本程序,调用脚本程序的处理函数,主程序通过脚本程序间接的调用当前图像素材必须的接口代码,按脚本设定的顺序,执行调用当前图像素材必须的接口代码;
5)主程序展示或保存脚本返回的的结果。
5.根据权利要求2所述的可直接升级的图像素材的量产方法,其特征在于,如果图像素材为特效API,则基础单元为元特效API。
CN201410541925.7A 2014-10-14 2014-10-14 一种可直接升级的图像素材的量产方法 Active CN104331277B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410541925.7A CN104331277B (zh) 2014-10-14 2014-10-14 一种可直接升级的图像素材的量产方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410541925.7A CN104331277B (zh) 2014-10-14 2014-10-14 一种可直接升级的图像素材的量产方法

Publications (2)

Publication Number Publication Date
CN104331277A CN104331277A (zh) 2015-02-04
CN104331277B true CN104331277B (zh) 2018-10-19

Family

ID=52406011

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410541925.7A Active CN104331277B (zh) 2014-10-14 2014-10-14 一种可直接升级的图像素材的量产方法

Country Status (1)

Country Link
CN (1) CN104331277B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109697060B (zh) * 2018-12-29 2022-08-26 广州方硅信息技术有限公司 视频特效系统及其生成方法、装置、设备和存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006033497A1 (en) * 2004-09-24 2006-03-30 Imusicsoft Co., Ltd. Method for authoring and playing multimedia contents
CN101523909B (zh) * 2006-08-11 2012-05-23 夏普株式会社 显示装置、数据提供装置、显示系统、显示系统的控制方法、控制程序以及记录介质
CN101901274B (zh) * 2010-08-11 2013-08-21 深圳市茁壮网络股份有限公司 实现页面特效的方法及装置
JP5372068B2 (ja) * 2011-05-20 2013-12-18 キヤノン株式会社 撮像システム、画像処理装置
CN103207918B (zh) * 2013-04-26 2016-12-28 珠海金山办公软件有限公司 一种演示文稿的动画效果管理方法、系统及装置

Also Published As

Publication number Publication date
CN104331277A (zh) 2015-02-04

Similar Documents

Publication Publication Date Title
CN109697060B (zh) 视频特效系统及其生成方法、装置、设备和存储介质
CN106575228A (zh) 图形处理中的渲染目标命令重新排序
CN103902456B (zh) 测试脚本处理装置、系统及方法
CN103927187B (zh) 嵌入式系统程序执行方法
KR20170125392A (ko) 이미지 프로세서용 라인 버퍼 유닛
CN101477461A (zh) 应用程序界面动态生成装置及方法
CN103885782A (zh) 一种可视化编程页面程序库函数封装重用方法
CN106371825A (zh) 一种移动端应用界面表单动态生成方法及装置
CN109739770A (zh) 小程序的调试方法及装置
US12025976B2 (en) Method associated with a simulation model of a process module, computer program product, and non-volatile data storage medium
CN104965750A (zh) 基于Python语言的Rapidio切换器逻辑仿真验证平台及方法
CN108282518A (zh) 一种客户端页面生成方法和装置
CN107562498A (zh) 基于安卓平台的动画效果实现方法、装置和终端设备
CN103152433B (zh) 一种分布式服务端的使用、交互和请求处理方法
CN108170430A (zh) 一种界面展示的方法及系统
CN113168312A (zh) 用于生成c/c++库与解释语言之间的绑定的方法,并且执行所述方法以转换三维(3d)模型
CN105373381A (zh) 一种移动终端的桌面启动器的制作方法及制作系统
CN104133676A (zh) 一种基于脚本的功能执行方法和设备
CN110045956A (zh) 组件的配置方法、装置、设备及可读存储介质
CN107613046B (zh) 滤镜管道系统、图像数据处理方法、装置以及电子设备
CN114579182A (zh) 小程序跨端应用方法、相关装置、及计算机存储介质
CN103176838A (zh) 兼容Android本机程序的方法及系统
CN105930166B (zh) 一种基于web界面弹出层的方法
CN109086442A (zh) 业务数据的展示方法及装置
CN108133453A (zh) 一种基于OpenGL的图像处理器及其功能扩展方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant