CN115866074A - 基于区块链的图片处理方法及相关设备 - Google Patents
基于区块链的图片处理方法及相关设备 Download PDFInfo
- Publication number
- CN115866074A CN115866074A CN202211507019.6A CN202211507019A CN115866074A CN 115866074 A CN115866074 A CN 115866074A CN 202211507019 A CN202211507019 A CN 202211507019A CN 115866074 A CN115866074 A CN 115866074A
- Authority
- CN
- China
- Prior art keywords
- picture
- data
- compression
- block chain
- original picture
- 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.)
- Pending
Links
Images
Landscapes
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
本申请实施例公开了一种基于区块链的图片处理方法、计算机设备及计算机存储介质。根据原始图片的图片高度值和图片宽度值、原始图片的压缩算法和压缩级别以及压缩数据,生成匹配于区块链的数据存储协议规定的图片存储格式的协议数据,并将协议数据上传至区块链,用户可从区块链下载该协议数据并根据协议数据还原得到原始图片。因此,即使原始图片丢失,也能够根据协议数据还原得到原始图片。由于不同图片之间的压缩数据、图片高度、图片宽度、压缩算法和压缩级别不可能都相同,因此不同图片之间的协议数据也不可能相同,则不会发生不同图片相互替换的现象,可确保图片存储至区块链之后用户仍能获取到图片原件,提升了区块链存储图片的可靠性。
Description
技术领域
本申请实施例涉及图片处理领域,具体涉及一种基于区块链的图片处理方法、计算机设备及计算机存储介质。
背景技术
区块链是一种分布式记账系统,一般由多个分布式的对等节点组成,并且这些节点可以不被一个中心化的机构或服务所控制。基于共识机制、加密算法、数字签名等技术,区块链提供了历史不可篡改、流程可追溯、权限透明可控等特性,可以在无信任或弱信任的环境下为不同参与方建立身份与数据的信任关系。因此,使用区块链来存储数据,也是一种比较可靠的存储方式。
例如,用户可使用区块链来存储图片。其一种方式是,计算图片Hash并将图片Hash以交易的形式存储在区块链上,而图片的原件可存储在其他存储介质上,比如存储在本地磁盘或者网络文件系统上。
然而,此方式存储图片也存在风险,若图片原件因存储介质损坏或者图片原件被误删除导致图片原件丢失,则区块链上该图片的图片Hash也将失效,导致用户无法从区块链获取到图片。此外,由于存在Hash碰撞(Hash碰撞是指多个不同的数据源经过Hash计算后得到的Hash值相同,所以无法用Hash值推断是哪个数据源),图片Hash相同的不同图片之间也会发生图片替换的现象,导致用户无法从区块链获取到其所需的图片。
发明内容
本申请实施例提供了一种基于区块链的图片处理方法、计算机设备及计算机存储介质,用于提升区块链存储图片的可靠性。
本申请实施例第一方面提供了一种基于区块链的图片处理方法,所述方法应用于计算机设备,所述区块链配置有数据存储协议,所述数据存储协议用于规定上传至所述区块链的图片对应的图片存储格式;所述方法包括:
获取原始图片的图片高度值、所述原始图片的图片宽度值、对所述原始图片的压缩算法和压缩级别、所述原始图片的压缩数据;
根据所述图片高度值、所述图片宽度值、所述压缩算法和所述压缩级别以及所述压缩数据,生成匹配于所述图片存储格式的协议数据,所述协议数据包括多个数组,所述多个数组包括表示所述图片高度值的数组、表示所述图片宽度值的数组、表示所述压缩算法的数组、表示所述压缩级别的数组以及所述压缩数据;
将所述协议数据上传至所述区块链。
本申请实施例第二方面提供了一种基于区块链的图片处理方法,所述方法应用于计算机设备,所述区块链配置有数据存储协议,所述数据存储协议用于规定上传至所述区块链的图片对应的图片存储格式;所述方法包括:
获取区块链中原始图片的协议数据,所述原始图片的协议数据为根据所述图片存储格式而生成的,所述原始图片的协议数据包括多个数组;
根据所述图片存储格式依次从所述多个数组中读取所述原始图片的图片高度值、所述原始图片的图片宽度值、所述原始图片的压缩算法和压缩级别以及所述原始图片的压缩数据;
使用所述压缩算法对应的解压算法,按照所述压缩级别将所述压缩数据还原为所述图片高度值且所述图片宽度值的所述原始图片。
本申请实施例第三方面提供了一种计算机设备,所述计算机设备用于区块链的图片存储,所述区块链配置有数据存储协议,所述数据存储协议用于规定上传至所述区块链的图片对应的图片存储格式;所述计算机设备包括:
获取单元,用于获取原始图片的图片高度值、所述原始图片的图片宽度值、对所述原始图片的压缩算法和压缩级别、所述原始图片的压缩数据;
生成单元,用于根据所述图片高度值、所述图片宽度值、所述压缩算法和所述压缩级别以及所述压缩数据,生成匹配于所述图片存储格式的协议数据,所述协议数据包括多个数组,所述多个数组包括表示所述图片高度值的数组、表示所述图片宽度值的数组、表示所述压缩算法的数组、表示所述压缩级别的数组以及所述压缩数据;
存储单元,用于将所述协议数据上传至所述区块链。
本申请实施例第四方面提供了一种计算机设备,所述计算机设备用于区块链的图片存储,所述区块链配置有数据存储协议,所述数据存储协议用于规定上传至所述区块链的图片对应的图片存储格式;所述计算机设备包括:
获取单元,用于获取区块链中原始图片的协议数据,所述原始图片的协议数据为根据所述图片存储格式而生成的,所述原始图片的协议数据包括多个数组;
读取单元,用于根据所述图片存储格式依次从所述多个数组中读取所述原始图片的图片高度值、所述原始图片的图片宽度值、所述原始图片的压缩算法和压缩级别以及所述原始图片的压缩数据;
还原单元,用于使用所述压缩算法对应的解压算法,按照所述压缩级别将所述压缩数据还原为所述图片高度值且所述图片宽度值的所述原始图片。
本申请实施例第五方面提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现前述第一方面和/或第二方面的方法。
本申请实施例第六方面提供了一种计算机存储介质,计算机存储介质中存储有指令,该指令在计算机上执行时,使得计算机执行前述第一方面和/或第二方面的方法。
本申请实施例第七方面提供了一种计算机程序产品,所述计算机程序产品在计算机设备上运行时,使得所述计算机设备执行前述第一方面和/或第二方面的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本实施例中,根据原始图片的图片高度值和图片宽度值、原始图片的压缩算法和压缩级别以及压缩数据,生成匹配于区块链的数据存储协议规定的图片存储格式的协议数据,并将协议数据上传至区块链,用户可从区块链下载该协议数据并根据协议数据还原得到原始图片。因此,即使原始图片丢失,也能够根据协议数据还原得到原始图片。由于不同图片之间的压缩数据、图片高度、图片宽度、压缩算法和压缩级别不可能都相同,因此不同图片之间的协议数据也不可能相同,则不会发生不同图片相互替换的现象,可确保图片存储至区块链之后用户仍能获取到图片原件,提升了区块链存储图片的可靠性。
附图说明
图1为本申请实施例中网络框架示意图;
图2为本申请实施例中基于区块链的图片处理方法一个流程示意图;
图3为本申请实施例中压缩算法的二进制值转换图表一种显示方式示意图;
图4为本申请实施例中数据存储协议的内容图表一种显示方式示意图;
图5为本申请实施例中基于区块链的图片处理方法另一流程示意图;
图6为本申请实施例中计算机设备一个结构示意图;
图7为本申请实施例中计算机设备另一结构示意图;
图8为本申请实施例中计算机设备另一结构示意图。
具体实施方式
本申请实施例提供了一种基于区块链的图片处理方法、计算机设备及计算机存储介质,用于提升区块链存储图片的可靠性。
请参阅图1,本申请实施例中网络框架包括:
业务服务器100以及终端集群;终端集群可以包括:终端设备200a、终端设备200b、终端设备200c、……、终端设备200n等终端设备。
其中,上述业务服务器100可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云数据库、云服务、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备(包括终端设备200a、终端设备200b、终端设备200c、……、终端设备200n)可以是智能手机、平板电脑、笔记本电脑、台式计算机、掌上电脑、移动互联网设备(mobileinternetdevice,MID)、可穿戴设备(例如智能手表、智能手环等)、智能电脑、智能车载等智能终端。
其中,业务服务器100与终端集群中的各终端设备可以建立通信连接,终端集群中的各终端设备之间也可建立通信连接。换句话说,业务服务器100可与终端设备200a、终端设备200b、终端设备200c、……、终端设备200n中的各终端设备建立通信连接,例如终端设备200a与业务服务器100之间可建立通信连接。终端设备200a与终端设备200b之间可建立通信连接,终端设备200a与终端设备200c之间也可建立通信连接。其中,上述通信连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接等,具体可根据实际应用场景确定,本申请在此不做限制。
应该理解,如图1所示的终端集群中的每个终端设备均可以安装有应用客户端,当该应用客户端运行于各终端设备中时,可分别与业务服务器100之间进行数据交互,使得业务服务器100可以接收来自于每个终端设备的业务数据(比如用户通过终端设备上传的财务管理数据)。其中,该应用客户端可以为财务管理应用、企业事务管理应用、浏览器应用、社交应用、即时通信应用、直播应用、游戏应用、短视频应用、视频应用、音乐应用、购物应用、小说应用、支付应用等具有显示文字、图像、音频以及视频等数据信息功能的应用客户端,具体可根据实际应用场景需求确定,在此不做限制。其中,该应用客户端可以为独立的客户端,也可以为集成在某客户端(例如财务管理客户端、企业事务管理客户端等)中的嵌入式子客户端,具体可根据实际应用场景确定,在此不做限定。
在相关方案中,用户使用区块链存储图片的一种方式是,计算图片Hash并将图片Hash以交易的形式存储在区块链上,而图片的原件可存储在其他存储介质上,比如存储在本地磁盘或者网络文件系统上。然而,此方式存储图片也存在风险,若图片原件因存储介质损坏或者图片原件被误删除导致图片原件丢失,则区块链上该图片的图片Hash也将失效,导致用户无法从区块链获取到图片。此外,图片Hash相同的不同图片之间也会发生图片替换的现象,导致用户无法从区块链获取到其所需的图片。
用户使用区块链存储图片的另一种方式是,图片不经压缩直接存储到区块链上,然而图片数据量较大时会导致区块链的数据存储负担增大,影响区块链的运行。而如果使用普通的压缩算法压缩图片,则很可能导致图片失真,影响图片使用效果。
为解决上述多个技术问题,特提出本申请实施例的一种基于区块链的图片处理方法。下面将结合图1的网络框架,对本申请实施例中的基于区块链的图片处理方法进行描述:
请参阅图2,本申请实施例中基于区块链的图片处理方法一个实施例包括:
101、获取原始图片的图片高度值、所述原始图片的图片宽度值、对所述原始图片的压缩算法和压缩级别、所述原始图片的压缩数据;
本实施例的方法可应用于计算机设备,该计算机设备可以是图1所示网络框架中的业务服务器100或者各终端设备。计算机设备可将数据上传至区块链进行存储,该数据可作为区块链中新的区块进行存储,或者该数据存储至区块链中已有的区块。计算机设备可以是区块链中的一个节点设备,则计算机设备直接向区块链上传数据;也可以不是区块链中的节点设备,在需要存储数据时向区块链中的任意一个节点设备发送数据,该任意一个节点设备将此数据上传至区块链。
区块链配置有数据存储协议,该数据存储协议用于规定存储至区块链的图片所应当遵循的图片存储格式,该图片存储格式包括但不限于以下多种数据对应的数据格式:
图片的图片高度值、图片的图片宽度值、对图片的压缩算法和压缩级别、图片的压缩数据。
因此,根据该数据存储协议的要求,对于待存储的原始图片,可获取其图片高度值、图片宽度值、对原始图片的压缩算法和压缩级别、原始图片的压缩数据等数据,以便根据上述数据生成对应于该数据存储协议的协议数据,进而上传至区块链。
102、根据所述图片高度值、所述图片宽度值、所述压缩算法和所述压缩级别以及所述压缩数据,生成匹配于所述图片存储格式的协议数据;
进一步地,计算机设备根据原始图片的图片高度值、原始图片的图片宽度值、原始图片的压缩算法和压缩级别以及原始图片的压缩数据,生成匹配于该图片存储格式的协议数据。因此,该协议数据可作为原始图片的另一种存在形式存储至区块链。
其中,该协议数据包括多个数组,该多个数组包括表示原始图片的图片高度值的数组、表示原始图片的图片宽度值的数组、表示原始图片的压缩算法的数组、表示原始图片的压缩级别的数组以及原始图片的压缩数据。
103、将所述协议数据上传至所述区块链;
在获得原始图片的协议数据之后,将此协议数据上传至区块链,其可以作为区块链的一个新区块进行存储,也可以直接存储至区块链中已有的区块,此处不作限定。当计算机设备作为区块链中的一个节点设备时,协议数据可直接由计算机设备上传至区块链;当计算机设备不是区块链中的节点设备时,计算机设备可先将协议数据发送至区块链的任意一个节点设备,该任意一个节点设备再将协议数据上传至区块链。
协议数据作为区块链中该原始图片的另一种存在形式,用户可从区块链下载该协议数据,并根据协议数据还原得到原始图片,实现原始图片的存储和获取。
本实施例中,根据原始图片的图片高度值和图片宽度值、原始图片的压缩算法和压缩级别以及压缩数据,生成匹配于区块链的数据存储协议规定的图片存储格式的协议数据,并将协议数据上传至区块链,用户可从区块链下载该协议数据并根据协议数据还原得到原始图片。因此,即使原始图片丢失,也能够根据协议数据还原得到原始图片。由于不同图片之间的压缩数据、图片高度、图片宽度、压缩算法和压缩级别不可能都相同,因此不同图片之间的协议数据也不可能相同,则不会发生不同图片相互替换的现象,可确保图片存储至区块链之后用户仍能获取到图片原件,提升了区块链存储图片的可靠性。
基于图2所示的实施例,在其一种优选的实施方式中,可将原始图片的压缩级别的标识转换为匹配该图片存储格式的数组,得到用于表示该压缩级别的数组;将原始图片的压缩算法的标识转换为匹配图片存储格式的数组,得到用于表示该压缩算法的数组;将原始图片的图片高度值转换为匹配图片存储格式的数组,得到用于表示该图片高度值的数组;将原始图片的图片宽度值转换为匹配图片存储格式的数组,得到用于表示该图片宽度值的数组。在获得上述多个数组之后,根据表示该压缩级别标识的数组、表示该压缩算法的数组、表示该图片高度值的数组、表示该图片宽度值的数组以及原始图片的压缩数据,生成原始图片的协议数据。
该压缩级别的标识可以是压缩级别的名称,如3级压缩、2级压缩等等;该压缩算法的标识可以是压缩算法的名称、代号等等,如Zstd压缩算法、DEFLATE压缩算法、LZO压缩算法等等。
其中,该数组可以是任意形式的数据集合。例如,该数据可以是二进制数组,则压缩级别、图片高度值/宽度值等数值,可转换为二进制值,得到对应的二进制数组,如压缩级别为3级压缩,则将数字“3”转换为4位的二进制值“0011”;而压缩算法可以根据图3所示的压缩算法的二进制值转换图表进行转换,如压缩算法为Zstd压缩算法,则根据该图表可确定其对应的二进制值为“0001”。
基于图2所示的实施例,在另一种优选的实施方式中,该数据存储协议还可规定该图片存储格式还包括但不限于以下多种数据对应的数据格式:
数据存储协议的版本、压缩标识、原始图片的压缩数据的总长度、原始图片的校验值。
其中,该压缩标识用于表示图片是否被压缩。
因此,对应地,原始图片的协议数据的多个数组,根据上述图片存储格式,还可包括以下至少一项:
表示数据存储协议的版本标识的数组、表示压缩标识的数组、表示原始图片的压缩数据的总长度的数组、表示原始图片的校验值的数组。
其中,数据存储协议的版本标识可以是版本号、版本名称等用于表示数据存储协议版本的数据。压缩标识可以包括两个值,一个值用于表示原始图片已被压缩,另一个值表示原始图片未经压缩。
而原始图片的校验值可以是计算得到的原始图片的循环冗余校验码,循环冗余校验码用于校验原始图片的压缩数据解压后的解压数据是否完整。
例如,如图4所示,数据存储协议可规定图片存储格式如下:
版本号(Version):长度为4位(bit),初始版本值为0001;
压缩标识(Flag):长度为1位(bit),1为压缩,0为未压缩;
压缩算法类型(TypeOfCompression,TOC):长度为4位(bit),各压缩算法对应的二进制值如表3所示;
压缩级别(CompressionLevelCL):长度为4位(bit),如三级压缩即“0011”;
原始图片的压缩数据的总长度(TotalLength):用32位(bit)表示,即最大长度可以达512MB;
原始图片高度(Height):用32位(bit)表示,原始图片的最大高度为2^32=4294967295像素;
原始图片宽度(Width):用32位(bit)表示,原始图片最大宽度为2^32=4294967295像素;
循环冗余校验(CRC32):用32位(bit)表示,对未压缩的图片进行CRC32运算值,用于校验解压后数据的完整性;
压缩后的数据(BGRADATA):该数据长度不定,该部分数据是由JPEG、BMP、PNG、RAW等不同格式的原始图片转化成BGRA格式字节数组,并使用压缩算法按照任意压缩级别进行压缩而得到。压缩完成后计算压缩后数据的总长度,并记录在总长度TotalLength字段中。最终,该压缩数据填于本字段(即BGRADATA)中。
以上所提及的位数以及图4所示的位数,均可以是二进制的位数。
因此,通过以上数据存储协议及其规定的图片存储格式,可根据待存储的图片生成其对应的协议数据,即上述多个字段对应的二进制值组合为协议数据,以二进制数据流形式整体打包进交易,并向区块链上传,完成图片的存储,同时也能便于后续协议数据从区块链下载并还原为图片,图片的存储和获得方便快捷,且不易丢失,提升区块链图片存储的可靠性。
在原始图片的协议数据上传至区块链之后,计算机设备或者其他设备可能需要从区块链下载该原始图片的协议数据并将其还原为该原始图片。因此,以下将进一步描述根据原始图片的协议数据获得原始图片这一过程。基于图2所示实施例,进一步参阅图5,本申请实施例中基于区块链的图片处理方法另一实施例包括:
501、获取区块链中原始图片的协议数据,所述原始图片的协议数据为根据所述图片存储格式而生成的,所述原始图片的协议数据包括多个数组;
本实施例的方法可应用于计算机设备,该计算机设备可以是图2所示实施例中的计算机设备,也可以是除了图2所示实施例中的计算机设备之外的其他计算机设备,此处不作限定。
区块链配置有数据存储协议,计算机设备作为区块链的节点设备时,可直接从区块链下载原始图片的协议数据;若计算机设备不是区块链的节点设备,则区块链中任意一个节点设备可下载该原始图片的协议数据,再将此协议数据转发给计算机设备。该数据存储协议的具体内容及其规定的图片存储格式已在前文详细描述,该原始图片的协议数据的生成方式和过程也已在前文详细描述,此处均不再赘述。
502、根据所述图片存储格式依次从所述多个数组中读取所述原始图片的图片高度值、所述原始图片的图片宽度值、所述原始图片的压缩算法和压缩级别以及所述原始图片的压缩数据;
由于原始图片的协议数据的多个数组包括表示原始图片的图片高度值的数组、表示原始图片的图片宽度值的数组、表示原始图片的压缩算法的数组、表示原始图片的压缩级别的数组以及原始图片的压缩数据,因此,可根据该图片存储格式依次从该多个数组中读取原始图片的图片高度值、原始图片的图片宽度值、原始图片的压缩算法和压缩级别以及原始图片的压缩数据,这些数据均可用来还原得到原始图片。
503、使用所述压缩算法对应的解压算法,按照所述压缩级别将所述压缩数据还原为所述图片高度值且所述图片宽度值的所述原始图片;
在经过上述步骤确定出原始图片的压缩算法、压缩级别以及原始图片的高度值/宽度值之后,可使用该压缩算法对应的解压算法,按照该压缩级别将原始图片的压缩数据还原为该图片高度值且该图片宽度值的原始图片,从而实现从区块链获取区块链存储的原始图片。
本实施例中,根据数据存储协议规定的图片存储格式,依次从原始图片的协议数据的多个数组中读取原始图片的图片高度值、原始图片的图片宽度值、原始图片的压缩算法和压缩级别以及原始图片的压缩数据,进而使用该压缩算法对应的解压算法,按照该压缩级别将原始图片的压缩数据还原为该图片高度值且该图片宽度值的原始图片。因此,即使原始图片丢失,也能够根据协议数据还原得到原始图片。由于不同图片之间的压缩数据、图片高度、图片宽度、压缩算法和压缩级别不可能都相同,因此不同图片之间的协议数据也不可能相同,则不会发生不同图片相互替换的现象,可确保图片存储至区块链之后用户仍能获取到图片原件,提升了区块链存储图片的可靠性。
基于图5所示实施例,其一种优选的实施方式中,该数据存储协议还可规定该图片存储格式还包括但不限于以下多种数据对应的数据格式:
数据存储协议的版本、压缩标识、原始图片的压缩数据的总长度、原始图片的校验值。
其中,该压缩标识用于表示图片是否被压缩。
因此,对应地,原始图片的协议数据的多个数组,根据上述图片存储格式,还可包括以下至少一项:
表示数据存储协议的版本标识的数组、表示压缩标识的数组、表示原始图片的压缩数据的总长度的数组、表示原始图片的校验值的数组。
进一步地,可根据数据存储协议规定的图片存储格式,依次从原始图片的协议数据的多个数组中读取版本标识、压缩标识、总长度以及原始图片的校验值。
例如,如图4所示,原始图片的协议数据的多个数组按序排列,因此,相对应地,可从头到尾依次从该多个数组中读取4位二进制值,表示版本号;再读取1位二进制值,表示压缩标识;再读取4位二进制值,表示压缩算法;再读取4位二进制值,表示压缩级别……以此类推,可依次读取各个数组,并将二进制值的数组转换为真实值,如表示压缩级别的数组“0011”,可转换为十进制值“3”,表示压缩级别为3级压缩;表示压缩算法的数组“0001”,可根据图3所示的图表确定其对应于Zstd压缩算法。
在读取到多个数组所表示的含义之后,可进一步判断从多个数组中读取的版本标识与区块链配置的数据存储协议的版本标识是否匹配。如果从多个数组中读取的版本标识与区块链配置的数据存储协议的版本标识不匹配,例如从多个数组中读取的版本标识为“0002”,而区块链配置的数据存储协议的版本标识为“0001”,则两者不匹配,即协议不兼容,无法解压,则放弃该图片的解压还原。若从多个数组中读取的版本标识与区块链配置的数据存储协议的版本标识匹配,则进一步判断压缩标识是否表示原始图片被压缩,例如其二进制值为“0”,表示该图片未被压缩,则直接获得原始图片;若该二进制值为“1”,表示图片经过压缩,需要进一步根据压缩算法和压缩级别进行解压和还原。
因此,可使用从协议数据读取到的压缩算法对应的解压算法,按照从协议数据读取到的压缩级别对原始图片的压缩数据进行解压,得到解压数据。为校验解压数据是否能够完整还原为原始图片,可确定解压数据的校验值,若解压数据的校验值与原始图片的校验值相等(原始图片的校验值从协议数据读取得到),则将解压数据还原为该图片高度值且该图片宽度值的原始图片,完成区块链的协议数据还原为图片这一过程。
其中,该校验值可以是循环冗余校验码,当然也可以是其他用于校验数据完整性的校验值,如奇偶校验、BCC异或校验法、LRC纵向冗余校验等校验方式的校验值,此处不作限定。
因此,本申请实施例中,在存储图片至区块链时采用Zstd压缩算法、DEFLATE压缩算法、LZO压缩算法等压缩算法对图片进行压缩,不仅能减少存储至区块链的数据量,减轻区块链的数据存储负担,而且上述压缩算法能够实现对图片的无损压缩,确保压缩数据还原为解压数据之后解压数据的完整性,避免图片失真。同时,图片的协议数据上传至区块链之后,用户从区块链下载协议数据并将其还原为原始图片,这一过程也十分方便快捷,不用担心原始图片的原件丢失而导致无法从区块链获得原始图片,提升了区块链存储图片的可靠性。
上面对本申请实施例中的基于区块链的图片处理方法进行了描述,下面对本申请实施例中的计算机设备进行描述,请参阅图6,本申请实施例中计算机设备一个实施例包括:
所述计算机设备用于区块链的图片存储,所述区块链配置有数据存储协议,所述数据存储协议用于规定上传至所述区块链的图片对应的图片存储格式;所述计算机设备包括:
获取单元601,用于获取原始图片的图片高度值、所述原始图片的图片宽度值、对所述原始图片的压缩算法和压缩级别、所述原始图片的压缩数据;
生成单元602,用于根据所述图片高度值、所述图片宽度值、所述压缩算法和所述压缩级别以及所述压缩数据,生成匹配于所述图片存储格式的协议数据,所述协议数据包括多个数组,所述多个数组包括表示所述图片高度值的数组、表示所述图片宽度值的数组、表示所述压缩算法的数组、表示所述压缩级别的数组以及所述压缩数据;
存储单元603,用于将所述协议数据上传至所述区块链。
本实施例一种优选的实施方式中,生成单元602具体用于将所述压缩级别的标识转换为匹配所述图片存储格式的数组,得到用于表示所述压缩级别的数组;将所述压缩算法的标识转换为匹配所述图片存储格式的数组,得到用于表示所述压缩算法的数组;将所述图片高度值转换为匹配所述图片存储格式的数组,得到用于表示所述图片高度值的数组;将所述图片宽度值转换为匹配所述图片存储格式的数组,得到用于表示所述图片宽度值的数组;根据表示所述压缩级别标识的数组、表示所述压缩算法的数组、表示所述图片高度值的数组、表示所述图片宽度值的数组以及所述压缩数据,生成所述协议数据。
本实施例一种优选的实施方式中,所述多个数组还包括以下至少一项:
表示所述数据存储协议的版本标识的数组、表示压缩标识的数组、表示所述压缩数据的总长度的数组、表示所述原始图片的校验值的数组;
其中,所述压缩标识用于表示图片是否被压缩。
本实施例一种优选的实施方式中,所述计算机设备还包括:
计算单元604,用于计算所述原始图片的循环冗余校验码,所述循环冗余校验码用于校验所述压缩数据解压后的解压数据是否完整。
本实施例中,计算机设备中各单元所执行的操作与前述图2所示实施例中描述的类似,此处不再赘述。
本实施例中,根据原始图片的图片高度值和图片宽度值、原始图片的压缩算法和压缩级别以及压缩数据,生成匹配于区块链的数据存储协议规定的图片存储格式的协议数据,并将协议数据上传至区块链,用户可从区块链下载该协议数据并根据协议数据还原得到原始图片。因此,即使原始图片丢失,也能够根据协议数据还原得到原始图片。由于不同图片之间的压缩数据、图片高度、图片宽度、压缩算法和压缩级别不可能都相同,因此不同图片之间的协议数据也不可能相同,则不会发生不同图片相互替换的现象,可确保图片存储至区块链之后用户仍能获取到图片原件,提升了区块链存储图片的可靠性。
下面对本申请实施例中的计算机设备进行进一步描述,请参阅图7,本申请实施例中计算机设备一个实施例包括:
所述计算机设备用于区块链的图片存储,所述区块链配置有数据存储协议,所述数据存储协议用于规定上传至所述区块链的图片对应的图片存储格式;所述计算机设备包括:
获取单元701,用于获取区块链中原始图片的协议数据,所述原始图片的协议数据为根据所述图片存储格式而生成的,所述原始图片的协议数据包括多个数组;
读取单元702,用于根据所述图片存储格式依次从所述多个数组中读取所述原始图片的图片高度值、所述原始图片的图片宽度值、所述原始图片的压缩算法和压缩级别以及所述原始图片的压缩数据;
还原单元703,用于使用所述压缩算法对应的解压算法,按照所述压缩级别将所述压缩数据还原为所述图片高度值且所述图片宽度值的所述原始图片。
本实施例一种优选的实施方式中,所述多个数组还包括以下至少一项:
表示数据存储协议的版本标识的数组、表示压缩标识的数组、表示所述压缩数据的总长度的数组、表示所述原始图片的校验值的数组;其中,所述压缩标识用于表示图片是否被压缩;
读取单元702还用于根据所述数据存储协议规定的图片存储格式,依次从所述多个数组中读取版本标识、所述压缩标识、所述总长度以及所述原始图片的校验值。
本实施例一种优选的实施方式中,还原单元703具体用于判断从所述多个数组中读取的版本标识与所述区块链配置的数据存储协议的版本标识是否匹配,以及判断所述压缩标识是否表示所述原始图片被压缩;若从所述多个数组中读取的版本标识与所述区块链配置的数据存储协议的版本标识匹配,且所述压缩标识表示所述原始图片被压缩,则使用所述压缩算法对应的解压算法,按照所述压缩级别对所述压缩数据进行解压,得到解压数据;确定所述解压数据的校验值,若所述解压数据的校验值与所述原始图片的校验值相等,则将所述解压数据还原为所述图片高度值且所述图片宽度值的所述原始图片。
本实施例中,计算机设备中各单元所执行的操作与前述图5所示实施例中描述的类似,此处不再赘述。
本实施例中,根据数据存储协议规定的图片存储格式,依次从原始图片的协议数据的多个数组中读取原始图片的图片高度值、原始图片的图片宽度值、原始图片的压缩算法和压缩级别以及原始图片的压缩数据,进而使用该压缩算法对应的解压算法,按照该压缩级别将原始图片的压缩数据还原为该图片高度值且该图片宽度值的原始图片。因此,即使原始图片丢失,也能够根据协议数据还原得到原始图片。由于不同图片之间的压缩数据、图片高度、图片宽度、压缩算法和压缩级别不可能都相同,因此不同图片之间的协议数据也不可能相同,则不会发生不同图片相互替换的现象,可确保图片存储至区块链之后用户仍能获取到图片原件,提升了区块链存储图片的可靠性。
下面对本申请实施例中的计算机设备进行描述,请参阅图8,本申请实施例中计算机设备一个实施例包括:
该计算机设备800可以包括一个或一个以上中央处理器(centralprocessingunits,CPU)801和存储器805,该存储器805中存储有一个或一个以上的应用程序或数据。
其中,存储器805可以是易失性存储或持久存储。存储在存储器805的程序可以包括一个或一个以上模块,每个模块可以包括对计算机设备中的一系列指令操作。更进一步地,中央处理器801可以设置为与存储器805通信,在计算机设备800上执行存储器805中的一系列指令操作。
计算机设备800还可以包括一个或一个以上电源802,一个或一个以上有线或无线网络接口803,一个或一个以上输入输出接口804,和/或,一个或一个以上操作系统,例如WindowsServerTM,MacOSXTM,UnixTM,LinuxTM,FreeBSDTM等。
该中央处理器801可以执行前述图2、图5所示实施例中计算机设备所执行的操作,具体此处不再赘述。
本申请实施例还提供了一种计算机存储介质,其中一个实施例包括:该计算机存储介质中存储有指令,该指令在计算机上执行时,使得该计算机执行前述图2、图5所示实施例中计算机设备所执行的操作。
本申请实施例还提供了一种计算机程序产品,其中一个实施例包括:该计算机程序产品在计算机设备上运行时,使得该计算机设备执行前述图2、图5所示实施例中计算机设备所执行的操作。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (11)
1.一种基于区块链的图片处理方法,其特征在于,所述方法应用于计算机设备,所述区块链配置有数据存储协议,所述数据存储协议用于规定上传至所述区块链的图片对应的图片存储格式;所述方法包括:
获取原始图片的图片高度值、所述原始图片的图片宽度值、对所述原始图片的压缩算法和压缩级别、所述原始图片的压缩数据;
根据所述图片高度值、所述图片宽度值、所述压缩算法和所述压缩级别以及所述压缩数据,生成匹配于所述图片存储格式的协议数据,所述协议数据包括多个数组,所述多个数组包括表示所述图片高度值的数组、表示所述图片宽度值的数组、表示所述压缩算法的数组、表示所述压缩级别的数组以及所述压缩数据;
将所述协议数据上传至所述区块链。
2.根据权利要求1所述的方法,其特征在于,所述根据所述图片高度值、所述图片宽度值、所述压缩算法和所述压缩级别以及所述压缩数据,生成匹配于所述图片存储格式的协议数据,包括:
将所述压缩级别的标识转换为匹配所述图片存储格式的数组,得到用于表示所述压缩级别的数组;
将所述压缩算法的标识转换为匹配所述图片存储格式的数组,得到用于表示所述压缩算法的数组;
将所述图片高度值转换为匹配所述图片存储格式的数组,得到用于表示所述图片高度值的数组;
将所述图片宽度值转换为匹配所述图片存储格式的数组,得到用于表示所述图片宽度值的数组;
根据表示所述压缩级别标识的数组、表示所述压缩算法的数组、表示所述图片高度值的数组、表示所述图片宽度值的数组以及所述压缩数据,生成所述协议数据。
3.根据权利要求1所述的方法,其特征在于,所述多个数组还包括以下至少一项:
表示所述数据存储协议的版本标识的数组、表示压缩标识的数组、表示所述压缩数据的总长度的数组、表示所述原始图片的校验值的数组;
其中,所述压缩标识用于表示图片是否被压缩。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
计算所述原始图片的循环冗余校验码,所述循环冗余校验码用于校验所述压缩数据解压后的解压数据是否完整。
5.一种基于区块链的图片处理方法,其特征在于,所述方法应用于计算机设备,所述区块链配置有数据存储协议,所述数据存储协议用于规定上传至所述区块链的图片对应的图片存储格式;所述方法包括:
获取区块链中原始图片的协议数据,所述原始图片的协议数据为根据所述图片存储格式而生成的,所述原始图片的协议数据包括多个数组;
根据所述图片存储格式依次从所述多个数组中读取所述原始图片的图片高度值、所述原始图片的图片宽度值、所述原始图片的压缩算法和压缩级别以及所述原始图片的压缩数据;
使用所述压缩算法对应的解压算法,按照所述压缩级别将所述压缩数据还原为所述图片高度值且所述图片宽度值的所述原始图片。
6.根据权利要求5所述的方法,其特征在于,所述多个数组还包括以下至少一项:
表示数据存储协议的版本标识的数组、表示压缩标识的数组、表示所述压缩数据的总长度的数组、表示所述原始图片的校验值的数组;其中,所述压缩标识用于表示图片是否被压缩;
所述方法还包括:
根据所述数据存储协议规定的图片存储格式,依次从所述多个数组中读取版本标识、所述压缩标识、所述总长度以及所述原始图片的校验值。
7.根据权利要求6所述的方法,其特征在于,所述使用所述压缩算法对应的解压算法,按照所述压缩级别将所述压缩数据还原为所述图片高度值且所述图片宽度值的所述原始图片,包括:
判断从所述多个数组中读取的版本标识与所述区块链配置的数据存储协议的版本标识是否匹配,以及判断所述压缩标识是否表示所述原始图片被压缩;
若从所述多个数组中读取的版本标识与所述区块链配置的数据存储协议的版本标识匹配,且所述压缩标识表示所述原始图片被压缩,则使用所述压缩算法对应的解压算法,按照所述压缩级别对所述压缩数据进行解压,得到解压数据;
确定所述解压数据的校验值,若所述解压数据的校验值与所述原始图片的校验值相等,则将所述解压数据还原为所述图片高度值且所述图片宽度值的所述原始图片。
8.一种计算机设备,其特征在于,所述计算机设备用于区块链的图片存储,所述区块链配置有数据存储协议,所述数据存储协议用于规定上传至所述区块链的图片对应的图片存储格式;所述计算机设备包括:
获取单元,用于获取原始图片的图片高度值、所述原始图片的图片宽度值、对所述原始图片的压缩算法和压缩级别、所述原始图片的压缩数据;
生成单元,用于根据所述图片高度值、所述图片宽度值、所述压缩算法和所述压缩级别以及所述压缩数据,生成匹配于所述图片存储格式的协议数据,所述协议数据包括多个数组,所述多个数组包括表示所述图片高度值的数组、表示所述图片宽度值的数组、表示所述压缩算法的数组、表示所述压缩级别的数组以及所述压缩数据;
存储单元,用于将所述协议数据上传至所述区块链。
9.一种计算机设备,其特征在于,所述计算机设备用于区块链的图片存储,所述区块链配置有数据存储协议,所述数据存储协议用于规定上传至所述区块链的图片对应的图片存储格式;所述计算机设备包括:
获取单元,用于获取区块链中原始图片的协议数据,所述原始图片的协议数据为根据所述图片存储格式而生成的,所述原始图片的协议数据包括多个数组;
读取单元,用于根据所述图片存储格式依次从所述多个数组中读取所述原始图片的图片高度值、所述原始图片的图片宽度值、所述原始图片的压缩算法和压缩级别以及所述原始图片的压缩数据;
还原单元,用于使用所述压缩算法对应的解压算法,按照所述压缩级别将所述压缩数据还原为所述图片高度值且所述图片宽度值的所述原始图片。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的方法。
11.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有指令,所述指令在计算机上执行时,使得所述计算机执行如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211507019.6A CN115866074A (zh) | 2022-11-29 | 2022-11-29 | 基于区块链的图片处理方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211507019.6A CN115866074A (zh) | 2022-11-29 | 2022-11-29 | 基于区块链的图片处理方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115866074A true CN115866074A (zh) | 2023-03-28 |
Family
ID=85667501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211507019.6A Pending CN115866074A (zh) | 2022-11-29 | 2022-11-29 | 基于区块链的图片处理方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115866074A (zh) |
-
2022
- 2022-11-29 CN CN202211507019.6A patent/CN115866074A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107395209B (zh) | 数据压缩方法、数据解压缩方法及其设备 | |
US8874531B2 (en) | Methods and systems for encoding/decoding files and transmissions thereof | |
Setiadi | Improved payload capacity in LSB image steganography uses dilated hybrid edge detection | |
US9342654B2 (en) | Encoding high quality (medical) images using standard lower quality (web) image formats | |
Alarabeyyat et al. | Lossless image compression technique using combination methods | |
RU2613031C2 (ru) | Способ кодирования данных, способ декодирования данных, кодер, декодер и кодек | |
CN114731162A (zh) | 压缩数据的部分下载 | |
CN104486434A (zh) | 一种移动终端文件上传、下载的方法及移动终端 | |
CN112491832B (zh) | 一种文件传输方法及装置 | |
CN116151740B (zh) | 一种库存交易数据过程安全管理系统及云平台 | |
CN111522784A (zh) | 一种非结构化数据文件的元数据同步方法、装置及设备 | |
WO2005088902A2 (fr) | Procede et systeme de distribution securisee de textes numeriques compresses | |
CN114579571A (zh) | 数据处理方法及装置 | |
CN111371963B (zh) | 图像处理方法和装置、存储介质和电子设备 | |
CN115866074A (zh) | 基于区块链的图片处理方法及相关设备 | |
US20180131386A1 (en) | Improved compression and/or encryption of a file | |
CN112351107A (zh) | 用于编码文件的方法、装置、电子设备及可读存储介质 | |
CN112118087A (zh) | 跨链合约压缩加密系统和方法 | |
US20190258728A1 (en) | Footers for compressed objects | |
CN114092577A (zh) | 图像数据处理方法、装置、计算机设备和存储介质 | |
CN112202453A (zh) | 对密文进行压缩的信息处理方法、装置、设备及介质 | |
CN113518113A (zh) | 一种文件存储方法、装置、计算机设备及存储介质 | |
CN112686966B (zh) | 图像无损压缩方法和装置 | |
US10505713B2 (en) | Compression and/or encryption of a file | |
Chaudhary et al. | A novel scheme for medical image compression using huffman and dct techniques |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |