一种3d图片裁剪方法及终端

文档序号:1847788 发布日期:2021-11-16 浏览:19次 >En<

阅读说明:本技术 一种3d图片裁剪方法及终端 (3D picture clipping method and terminal ) 是由 刘德建 曹增欢 方振华 高秀英 郭玉湖 陈宏� 于 2020-05-12 设计创作,主要内容包括:本发明公开了一种3D图片裁剪方法及终端,通过接收图片裁剪指令,生成裁剪形状对象和裁剪框对象;将所述裁剪形状对象覆盖待裁剪的3D图片;对所述裁剪框对象内的裁剪结果进行预览;当接收到确认剪裁指令时,将裁剪框对象内的待裁剪的3D图片的纹理复制到所述裁剪形状对象上,并关闭待裁剪的3D图片的纹理显示;当接收到还原指令时,删除所述裁剪形状对象,并开启待裁剪的3D图片的纹理显示;增加裁剪形状对象覆盖待裁剪的3D图片,确认裁剪时,将待裁剪的3D图像上需裁剪的部分图片纹理复制到所述裁剪形状对象上,实现在裁剪过程中对裁剪结果的预览及完成裁剪后能够对待裁剪的3D图片进行复原。(The invention discloses a 3D picture cutting method and a terminal, wherein a cutting shape object and a cutting frame object are generated by receiving a picture cutting instruction; covering the cutting shape object on a 3D picture to be cut; previewing a clipping result in the clipping frame object; when a cutting confirmation instruction is received, copying the texture of the 3D picture to be cut in the cutting frame object to the cutting shape object, and closing the texture display of the 3D picture to be cut; when a reduction instruction is received, deleting the cut shape object, and starting texture display of the 3D picture to be cut; and adding a cutting shape object to cover the 3D picture to be cut, copying part of picture texture to be cut on the 3D image to be cut to the cutting shape object when the cutting is confirmed, and realizing the previewing of a cutting result in the cutting process and the restoration of the 3D picture to be cut after the cutting is finished.)

一种3D图片裁剪方法及终端

技术领域

本发明涉及图像处理领域,尤其涉及一种3D图片裁剪方法及终端。

背景技术

3D图片是一种使用场景广泛的3D元素,在一些情况下,用户需要在不丢失原始3D图片的纹理信息的前提下,对3D图片进行裁剪操作,但现有的3D图片裁剪方法都是直接拷贝指定区域的纹理信息,然后根据所述拷贝的内容生成一张新的3D图片,裁剪后的图片无法复原,且用户无法对裁剪的结果进行预览,用户的使用体验较差。

发明内容

本发明所要解决的技术问题是:提供一种3D图片裁剪方法及终端,使用户能够在裁剪过程中对裁剪结果进行预览,且能够将裁剪后的图片复原。

为了解决上述技术问题,本发明采用的一种技术方案为:

一种3D图片裁剪方法,包括步骤:

S1、接收图片裁剪指令,生成裁剪形状对象和裁剪框对象;

S2、将所述裁剪形状对象覆盖待裁剪的3D图片;

S3、对所述裁剪框对象内的裁剪结果进行预览;

S4、当接收到确认剪裁指令时,将裁剪框对象内的待裁剪的3D图片的纹理复制到所述裁剪形状对象上,并关闭待裁剪的3D图片的纹理显示;

S5、当接收到还原指令时,删除所述裁剪形状对象,并开启待裁剪的3D图片的纹理显示。

为了解决上述技术问题,本发明采用的另一种技术方案为:

一种3D图片裁剪终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

S1、接收图片裁剪指令,生成裁剪形状对象和裁剪框对象;

S2、将所述裁剪形状对象覆盖待裁剪的3D图片;

S3、对所述裁剪框对象内的裁剪结果进行预览;

S4、当接收到确认剪裁指令时,将裁剪框对象内的待裁剪的3D图片的纹理复制到所述裁剪形状对象上,并关闭待裁剪的3D图片的纹理显示;

S5、当接收到还原指令时,删除所述裁剪形状对象,并开启待裁剪的3D图片的纹理显示。

本发明的有益效果在于:通过生成裁剪形状对象覆盖原图片,并生成裁剪框对象,对裁剪框对象内的裁剪结果进行预览,确认裁剪时,将裁剪框内的原图片纹理复制到所述裁剪形状对象上,将对裁剪框内部分图片的裁剪操作操作变为将所述部分图片复制到裁剪形状对象上的复制操作,方便了对裁剪后的图片进行复原,当想要还原得到原图片时,只需要删除裁剪形状对象并显示原图片纹理,不仅能够在裁剪过程中对裁剪结果进行预览,还能够便捷将裁剪后的图片复原。

附图说明

图1为本发明实施例的一种3D图片裁剪方法的步骤流程图;

图2为本发明实施例的一种3D图片裁剪终端的结构示意图;

图3为本发明实施例的一种3D图片裁剪方法的一种具体应用场景的流程示意图;

图4为本发明实施例的一种3D图片裁剪方法的实施过程中各步骤效果示意图;

标号说明:

1、一种3D图片裁剪终端;2、处理器;3、存储器。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

请参照图1,一种3D图片裁剪方法,其特征在于,包括步骤:

S1、接收图片裁剪指令,生成裁剪形状对象和裁剪框对象;

S2、将所述裁剪形状对象覆盖待裁剪的3D图片;

S3、对所述裁剪框对象内的裁剪结果进行预览;

S4、当接收到确认剪裁指令时,将裁剪框对象内的待裁剪的3D图片的纹理复制到所述裁剪形状对象上,并关闭待裁剪的3D图片的纹理显示;

S5、当接收到还原指令时,删除所述裁剪形状对象,并开启待裁剪的3D图片的纹理显示。

从上述描述可知,本发明的有益效果在于:通过生成裁剪形状对象覆盖原图片,并生成裁剪框对象,对裁剪框对象内的裁剪结果进行预览,确认裁剪时,将裁剪框内的原图片纹理复制到所述裁剪形状对象上,将对裁剪框内部分图片的裁剪操作操作变为将所述部分图片复制到裁剪形状对象上的复制操作,方便了对裁剪后的图片进行复原,当想要还原得到原图片时,只需要删除裁剪形状对象并显示原图片纹理,不仅能够在裁剪过程中对裁剪结果进行预览,还能够便捷将裁剪后的图片复原。

进一步的,所述S1中,生成裁剪形状对象具体为:

生成与待裁剪的3D图片等大小的二维矢量图形;

更改渲染所述二维矢量图形的着色器为可显示待裁剪的3D图片的纹理;

为所述二维矢量图形添加厚度信息,生成与待裁剪的3D图片相同的三维矢量图形,作为裁剪形状对象。

由上述描述可知,采用矢量图形作为裁剪形状对象,方便进行放缩操作,使所述矢量图形与待裁剪的图片等大小,通过更改着色器控制所述矢量图形上的纹理显示,能够更加方便地根据实际需要对其显示方式进行设置,通过先生成二维图形再添加厚度生成三维图形的方式,提高了裁剪形状对象的生成效率。

进一步的,所述S1中,生成裁剪框对象具体为:

在所述裁剪形状对象上生成裁剪框对象;

设置所述裁剪框对象初始大小为覆盖待裁剪的3D图片;

设置所述裁剪框对象为可拖动且可改变大小;

限制所述裁剪框对象不超出待裁剪的3D图片的范围。

由上述描述可知,在裁剪形状对象上生成裁剪框,不针对待裁剪的3D图片进行裁剪操作,便于后期对裁剪后的图片进行复原操作,设置裁剪框对象可拖动且可改变大小,用户能够更加自由进行裁剪操作,裁剪范围的选择更加灵活,同时限制裁剪框的范围在待裁剪的3D图片内,防止用户在裁剪框框入待裁剪的3D图像外的区域导致裁剪出错。

进一步的,所述S3具体为:

将渲染待裁剪的3D图片的着色器更换为亮度值更低的着色器;

设置渲染所述裁剪框对象内的待裁剪的3D图片的着色器亮度值为正常。

由上述描述可知,将待裁剪的3D图片的着色器更换为亮度值更低的着色器,而裁剪框对象内的待裁剪的3D图片的着色器亮度值正常,使用户能够清晰地分辨出裁剪区域的范围,并且能够对裁剪的效果进行预览。

进一步的,所述S4中所述将裁剪框对象内的待裁剪的3D图片纹理复制到所述裁剪形状对象上具体为:

将渲染所述裁剪形状对象的可显示待裁剪的3D图片的纹理的着色器替换为可正常显示所述裁剪形状对象纹理的着色器;

将裁剪框对象内的待裁剪的3D图片的纹理复制到渲染着色器替换后的裁剪形状对象上。

由上述描述可知,通过将待裁剪的3D图片上裁剪框区域内的纹理复制到裁剪形状对象上,不需对待裁剪的3D图片做出裁剪动作就完成裁剪,便于后期对裁剪后图片的复原操作,且利用着色器的改变实现对裁剪形状对象的纹理显示控制,充分利用了着色器的特性。

请参照图2,一种3D图片裁剪终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

S1、接收图片裁剪指令,生成裁剪形状对象和裁剪框对象;

S2、将所述裁剪形状对象覆盖待裁剪的3D图片;

S3、对所述裁剪框对象内的裁剪结果进行预览;

S4、当接收到确认剪裁指令时,将裁剪框对象内的待裁剪的3D图片的纹理复制到所述裁剪形状对象上,并关闭待裁剪的3D图片的纹理显示;

S5、当接收到还原指令时,删除所述裁剪形状对象,并开启待裁剪的3D图片的纹理显示。

本发明的有益效果在于:通过生成裁剪形状对象覆盖原图片,并生成裁剪框对象,对裁剪框对象内的裁剪结果进行预览,确认裁剪时,将裁剪框内的原图片纹理复制到所述裁剪形状对象上,将对裁剪框内部分图片的裁剪操作操作变为将所述部分图片复制到裁剪形状对象上的复制操作,方便了对裁剪后的图片进行复原,当想要还原得到原图片时,只需要删除裁剪形状对象并显示原图片纹理,不仅能够在裁剪过程中对裁剪结果进行预览,还能够便捷将裁剪后的图片复原。

进一步的,所述S1中,生成裁剪形状对象具体为:

生成与待裁剪的3D图片等大小的二维矢量图形;

更改渲染所述二维矢量图形的着色器为可显示待裁剪的3D图片的纹理;

为所述二维矢量图形添加厚度信息,生成与待裁剪的3D图片相同的三维矢量图形,作为裁剪形状对象。

由上述描述可知,采用矢量图形作为裁剪形状对象,方便进行放缩操作,使所述矢量图形与待裁剪的图片等大小,通过更改着色器控制所述矢量图形上的纹理显示,能够更加方便地根据实际需要对其显示方式进行设置,通过先生成二维图形再添加厚度生成三维图形的方式,提高了裁剪形状对象的生成效率。

进一步的,所述S1中,生成裁剪框对象具体为:

在所述裁剪形状对象上生成裁剪框对象;

设置所述裁剪框对象初始大小为覆盖待裁剪的3D图片;

设置所述裁剪框对象为可拖动且可改变大小;

限制所述裁剪框对象不超出待裁剪的3D图片的范围。

由上述描述可知,在裁剪形状对象上生成裁剪框,不针对待裁剪的3D图片进行裁剪操作,便于后期对裁剪后的图片进行复原操作,设置裁剪框对象可拖动且可改变大小,用户能够更加自由进行裁剪操作,裁剪范围的选择更加灵活,同时限制裁剪框的范围在待裁剪的3D图片内,防止用户在裁剪框框入待裁剪的3D图像外的区域导致裁剪出错。

进一步的,所述S3具体为:

将渲染待裁剪的3D图片的着色器更换为亮度值更低的着色器;

设置渲染所述裁剪框对象内的待裁剪的3D图片的着色器亮度值为正常。

由上述描述可知,将待裁剪的3D图片的着色器更换为亮度值更低的着色器,而裁剪框对象内的待裁剪的3D图片的着色器亮度值正常,使用户能够清晰地分辨出裁剪区域的范围,并且能够对裁剪的效果进行预览。

进一步的,所述S4中所述将裁剪框对象内的待裁剪的3D图片纹理复制到所述裁剪形状对象上具体为:

将渲染所述裁剪形状对象的可显示待裁剪的3D图片的纹理的着色器替换为可正常显示所述裁剪形状对象纹理的着色器;

将裁剪框对象内的待裁剪的3D图片的纹理复制到渲染着色器替换后的裁剪形状对象上。

由上述描述可知,通过将待裁剪的3D图片上裁剪框区域内的纹理复制到裁剪形状对象上,不需对待裁剪的3D图片做出裁剪动作就完成裁剪,便于后期对裁剪后图片的复原操作,且利用着色器的改变实现对裁剪形状对象的纹理显示控制,充分利用了着色器的特性。

请参照图1,本发明的实施例一为:

一种3D图片裁剪方法,具体包括:

S1、接收图片裁剪指令,生成裁剪形状对象和裁剪框对象;

生成裁剪形状对象具体为:

生成与待裁剪的3D图片等大小的二维矢量图形;

具体的,利用SVGImporter开源库生成一个与原图大小一样的2DShape图形(二维矢量图形);

更改渲染所述二维矢量图形的着色器为可显示待裁剪的3D图片的纹理;

为所述二维矢量图形添加厚度信息,生成与待裁剪的3D图片相同的三维矢量图形,作为裁剪形状对象;

具体的,为所述2DShape图形添加与待裁剪的3D图片相同的厚度信息,生成3DSape图形(三维矢量图形),作为裁剪形状对象;

生成裁剪框对象具体为:

在所述裁剪形状对象上生成裁剪框对象;

设置所述裁剪框对象初始大小为覆盖待裁剪的3D图片;

设置所述裁剪框对象为可拖动且可改变大小;

限制所述裁剪框对象不超出待裁剪的3D图片的范围;

S2、将所述裁剪形状对象覆盖待裁剪的3D图片;

S3、对所述裁剪框对象内的裁剪结果进行预览;

具体为:

将渲染待裁剪的3D图片的着色器更换为亮度值更低的着色器;

优选的,在接收图片裁剪指令时,就将渲染待裁剪的3D图片的着色器更换为亮度值更低的着色器;

设置渲染所述裁剪框对象内的待裁剪3D图片的着色器亮度值为正常;

S4、当接收到确认剪裁指令时,将裁剪框对象内的待裁剪的3D图片的纹理复制到所述裁剪形状对象上,并关闭待裁剪的3D图片的纹理显示;

所述将裁剪框对象内的待裁剪的3D图片纹理复制到所述裁剪形状对象上具体为:

将渲染所述裁剪形状对象的可显示待裁剪的3D图片的纹理的着色器替换为可正常显示所述裁剪形状对象纹理的着色器;

将裁剪框对象内的待裁剪的3D图片的纹理复制到渲染着色器替换后的裁剪形状对象上;

S5、当接收到还原指令时,删除所述裁剪形状对象,并开启待裁剪的3D图片的纹理显示。

请参照图3,本发明的实施例二为:

将上述3D图片裁剪方法应用于实际场景中:

E1、利用DevIL读取图片纹理数组信息,通过Unity的Image组件进行3D化显示,具体的:

基于DevIL(一种图形开源库)读取出待裁剪的3D图片的纹理数组信息,并将所述待裁剪的3D图片保存为可以供Unity(一种开发工具)识别的Texture2D(一种图片格式)信息;

在Unity中加载本地存储的待裁剪的3D图片的Texture2D信息,通过Image组件进行3D化显示;

E2、生成一个裁剪形状对象和裁剪框,具体的:

用户发送裁剪指令,待裁剪的3D图片的材质渲染着色器(shader)更换为亮度值更低的着色器;

通过SVGImporter开源库插件生成与原图大小相同的2DShape图形(二维矢量图形),设置渲染所述2DShape图形的着色器为正常显示待裁剪的3D图片的纹理信息;

其中,设置渲染所述2DShape图形的着色器为正常显示,而待裁剪的3D图片上2DShape图形之外的待裁除纹理区域为透明显示区域,具体为:

调整渲染所述图形待裁除纹理区域的着色器中的模板测试设定,使所述着色器不对所述图形上待裁除纹理区域的像素点用主纹理进行渲染,并关闭着色器中的深度测试;

设置所述着色器的alpha通道为透明;

着色器中顶点着色器及片元着色器渲染所述2DShape图形;

初始生成的2DShape图形与原图大小相同,故初始2DShape图形之外的待裁除纹理区域为0;

优选的,参照图4(c),将所述2DShape图形与下述裁剪框对象关联,根据裁剪框变化调整所述2DShape图形,此时待裁除纹理区域为待裁剪的3D图片上2DShape图形之外的区域;

为所述2DShape图形增加与待裁剪的3D图片相同的厚度,生成裁剪形状对象;

在所述裁剪形状对象上添加裁剪框对象,所述裁剪框对象允许用户在待裁剪的3D图片的区域内,对所述裁剪框对象进行拖动改变位置、缩放改变大小的操作,从而动态调整裁剪区域;

E3、判断用户是否动态调整裁剪区域,若是,进行步骤E31,否则进行步骤E4;

E31、通过Unity中的Gizmo插件实现用户在动态调整裁剪区域过程中对所述裁剪框对象的各种操作,所述插件能够根据物体的选中、缩放和移动消息动态调整待裁剪3D图片上裁剪框对象的大小和位置,实现根据用户输入改变裁剪形状的大小及位置;

将裁剪框对象内的渲染待裁剪3D图片的着色器更改为亮度值正常的着色器,具体为:

调整渲染所述2DShape图形的着色器中的模板测试设定,使所述着色器渲染所述裁剪框内的待裁剪3D图像的每一个像素点;

读取待裁剪3D图片的主纹理;

设置所述着色器的alpha通道为不透明;

着色器中顶点着色器及片元着色器根据所述主纹理及alpha通道设定值,渲染所述待裁剪的3D图片;

E4、判断用户是否确认裁剪效果,若是,则进行步骤E5,否则返回步骤E3;

E5、接收用户发送的确认裁剪指令,修改裁剪形状对象的着色器,并隐藏待裁剪的3D图片的纹理显示,具体为:

将渲染裁剪形状对象的着色器替换为能够正常显示所述裁剪形状对象纹理的着色器;

将裁剪框对象内的待裁剪的3D图片的纹理拷贝到所述裁剪形状对象上,并且关闭待裁剪的3D图片的纹理显示;

E6、判断用户是否还原图片,若是,则进行步骤E7,否则结束本次裁剪操作;

E7、接收用户发送的还原指令,将所述裁剪形状对象删除,并开启待裁剪的3D图片的纹理显示,结束本次裁剪操作;

请参照图4,为实施过程中各个步骤的效果示意图,图4(a)读入待裁剪的3D图片;图4(b)进入裁剪状态后,裁剪框对象默认覆盖整个待裁剪的3D图片;图4(c)拖拽裁剪框改变位置,并可以对裁剪框进行缩放操作,此时待裁剪的3D图片被低亮度的着色器渲染,裁剪框对象内的待裁剪的3D图片正常渲染;图4(d)确认裁剪结果,将裁剪框对象内的待裁剪的3D图片的纹理复制到裁剪形状对象上,并关闭待裁剪的3D图片的纹理显示;图4(e)接收还原指令,删除所述裁剪形状对象并将待裁剪的3D图片的纹理显示开启,若要继续进行裁剪操作,则生成裁剪形状对象和裁剪框对象。

请参照图2,本发明的实施例三为:

一种3D图片裁剪终端1,所述终端1包括处理器2、存储器3及存储在存储器3上并可在所述处理器2上运行的计算机程序,所述处理器2执行所述计算机程序时实现实施例一或实施例二中的各个步骤。

综上所述,本发明提供了一种3D图片裁剪方法及终端,通过设置裁剪形状对象,在进行裁剪时,将渲染待裁剪的3D图片的着色器更换为低亮度的着色器,将渲染裁剪形状对象的着色器设置为显示待裁剪3D图像的纹理,并且在裁剪形状对象上设置裁剪框对象,将裁剪框对象内的渲染待裁剪的3D图片的着色器设置为正常亮度,实现在裁剪过程中对裁剪结果的预览;并且,所述裁剪框对象能够进行位置拖拽及缩放操作,用户能够灵活选择裁剪区域,设置裁剪框对象的范围在待裁剪的3D图片内,防止裁剪框对象内区域超出待裁剪的3D图片造成读写异常;裁剪形状对象为矢量图形,所占内存小,且方便缩放操作达成与待裁剪的3D图片相同大小。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于分形噪声的光影特效制作方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!