处理被旋转后图片的显示位置的方法及装置的制造方法

文档序号:10553566阅读:209来源:国知局
处理被旋转后图片的显示位置的方法及装置的制造方法
【专利摘要】本发明实施例提供一种处理被旋转后图片的显示位置的方法及装置。该方法包括:读取目标图片的字节流;根据读取的所述字节流确定所述目标图片中是否包含可交换图像文件EXIF信息;若确定所述目标图片中包含EXIF信息,则根据所述EXIF信息获取所述目标图片的图片旋转信息;根据所述图片旋转信息,旋转所述目标图片到旋转前的位置。
【专利说明】
处理被旋转后图片的显示位置的方法及装置
技术领域
[0001]本发明涉及图形图片处理技术领域,尤其涉及一种处理被旋转后图片的显示位置的方法及装置。
【背景技术】
[0002]有的用户上传了头像到应用上,结果头像是倒置的。这是因为原来照片的属性中存储了旋转信息。通常,我们在手机上上传了旋转后图片头像到APP上的时候,之所以看到照片显示的位置都很正确,其实是因为1s系统,还有大部分的安卓系统发现图片被旋转了之后都有将图片旋转回来的处理。但是在部分android系统中,却没有做这种处理,由此导致被旋转后的图片上传后仍旧在旋转的角度上,影响了图片的显示效果。
[0003]经过调研发现,目前并没有现成的java类库来做这件事情,基本都是从系统层面就解决了这个问题。虽然可利用andr1d开发工具包和iphone开发工具包中的类库进行角度回旋,但是,jar包可有将近一个MB的容量,添加一个图片处理类库的大jar包进来就只为获取图片的旋转信息,占用的存储资源较大,代码中添加无用类库,污染了代码环境。

【发明内容】

[0004]本发明实施例提供一种处理被旋转后图片的显示位置的方法及装置,可以在不使用第三方类库的前提下,解决旋转后图片的显示位置异常的技术问题,同时节约存储资源。
[0005]本发明实施例的一个方面是提供一种处理被旋转后图片的显示位置的方法,包括:
[0006]读取目标图片的字节流;
[0007]根据读取的所述字节流确定所述目标图片中是否包含可交换图像文件EXIF信息;
[0008]若确定所述目标图片中包含EXIF信息,则根据所述EXIF信息获取所述目标图片的图片旋转信息;
[0009]根据所述图片旋转信息,旋转所述目标图片到旋转前的位置。
[0010]可选的,在根据读取的所述字节流确定所述目标图片中是否包含EXIF信息之前,该方法还包括:
[0011]根据读取的所述字节流确定所述目标图片是否为合法图片格式。
[0012]可选的,在所述根据读取的所述字节流确定所述目标图片中是否包含EXIF信息之后,该方法还包括:
[0013]确定包含的所述EXIF信息是否为合法格式。
[0014]可选的,所述根据所述EXIF信息获取所述目标图片的图片旋转信息,具体包括:
[0015]根据所述EXIF信息确定所述目标图片的字节序列标准;
[0016]根据确定所述字节序列标准确定所述目标图片是否为有效图片;
[0017]若确定是有效图片,则根据有效图片的标准格式读取旋转标签位上的参数值;
[0018]根据所述参数值确定目标图片的图片旋转信息。
[0019]可选的在确定是有效图片后,该方法还包括:确定有效图片是否包含图片旋转信息。
[0020]本发明实施例的另一个方面是提供一种处理被旋转后图片的显示位置的装置,包括:
[0021]读取模块,用于读取目标图片的字节流;
[0022]旋转信息确定模块,用于根据读取的所述字节流确定所述目标图片中是否包含可交换图像文件EXIF信息;
[0023]旋转信息获取模块,用于若旋转信息确定模块确定所述目标图片中包含EXIF信息,则根据所述EXIF信息获取所述目标图片的图片旋转信息;
[0024]旋转模块,用于根据所述图片旋转信息,旋转所述目标图片到旋转前的位置。
[0025]可选的,还包括:
[0026]合法确定模块,用于根据读取的所述字节流确定所述目标图片是否为合法图片格式。
[0027]可选的,所述旋转信息确定模块,还用于确定包含的所述EXIF信息是否为合法格式。
[0028]可选的,所述旋转信息获取模块,具体用于根据所述EXIF信息确定所述目标图片的字节序列标准;根据确定所述字节序列标准确定所述目标图片是否为有效图片;若确定是有效图片,则根据有效图片的标准格式读取旋转标签位上的参数值;根据所述参数值确定目标图片的图片旋转信息。
[0029]可选的,该装置还包括:
[0030]信息包含确定模块,用于确定有效图片是否包含图片旋转信息。
[0031]本发明实施例提供的处理被旋转后图片的显示位置的方法及装置,通过从目标图片的字节码中读取EXIF信息,并从该EXIF信息中获取的图片旋转信息,在根据图片旋转信息对图片进行校正旋转,将其旋转到旋转前的位置的技术手段,解决了现有技术中,由于图片被旋转后,没有经过处理直接显示导致的显示位置异常的技术问题,进而实现可以通过纠正图片的显示位置,同时节约存储资源,便于实现和移植的技术效果。
【附图说明】
[0032]图1为本发明实施例提供的一种处理被旋转后图片的显示位置的方法流程图;
[0033]图2为本发明实施例提供的另一种处理被旋转后图片的显示位置的方法流程图;
[0034]图3为本发明实施例提供的Intel标准的EXIF信息字节码片段的示意图;
[0035]图4为本发明实施例提供的Motorola标准的EXIF信息字节码片段的示意图;
[0036]图5为本发明实施例提供的旋转标签位上的参数值与旋转信息之间的对应含义关系示意图。
[0037]图6为本发明实施例提供的一种处理被旋转后图片的显示位置的装置结构示意图。
【具体实施方式】
[0038]本实施例提供一种处理被旋转后图片的显示位置的方法,如图1所示,该方法适合部署在需要对旋转的图片进行回旋处理的设备上,该方法包括:
[0039]101,读取目标图片的字节流;
[0040]102,根据读取的所述字节流确定所述目标图片中是否包含可交换图像文件EXIF信息;若确定所述目标图片中包含EXIF信息,则执行103;否则,不处理。
[0041 ] 在确定包含EXIF信息后,该102还可包括如下步骤:
[0042]确定包含的所述EXIF信息是否为合法格式。
[0043]103,根据所述EXIF信息获取所述目标图片的图片旋转信息;
[0044]该103可通过如下方式实现:
[0045]根据所述EXIF信息确定所述目标图片的字节序列标准;
[0046]根据确定所述字节序列标准确定所述目标图片是否为有效图片;
[0047]若确定是有效图片,则根据有效图片的标准格式读取旋转标签位上的参数值;
[0048]根据所述参数值确定目标图片的图片旋转信息。
[0049]可交换图像文件(Exchangeable Image File,EXIF)信息,是数码相机的拍摄信息,当中包含了专门为数码相机的照片而定制的元数据,可以记录数码照片的拍摄参数,缩略图及其他属性信息,也包含了图片的旋转信息。因此可以通过从图片中的EXIF信息中得到旋转信息,进而得知该图片被旋转的角度等信息,从而可以实现将图片自动回旋。
[0050]104,根据所述图片旋转信息,旋转所述目标图片到旋转前的位置。
[0051 ]本实施例提供的方法通过从目标图片的字节码中读取EXIF信息,并从该EXIF信息中获取的图片旋转信息,在根据图片旋转信息对图片进行校正旋转,将其旋转到旋转前的位置的技术手段,解决了现有技术中,由于图片被旋转后,没有经过处理直接显示导致的显示位置异常的技术问题,进而实现可以通过纠正图片的显示位置,同时节约存储资源的技术效果。
[0052]可选的,本实施例提供的方法在根据读取的所述字节流确定所述目标图片中是否包含EXIF信息之前,还包括:
[0053]根据读取的所述字节流确定所述目标图片是否为合法图片格式。
[0054]可选的,在确定是有效图片后,该方法还包括:确定有效图片是否包含图片旋转信息。
[0055]本实施例具体结合在服务器上对旋转后的图片进行显示位置的处理的场景为例,提供一种处理被旋转后图片的显示位置的方法。如图2所示,该方法包括:
[0056]201,服务器读取目标图片的字节流;
[0057]在压缩文件的格式中JPEG格式的储存了EXIF信息,本实施例以目标图片是JPEG格式为例描述。
[0058]202,根据读取的所述字节流确定所述目标图片是否为合法图片格式;若是,则执行203;否则执行200。
[0059]例如:读入图片文件的字节流。判断是否以ffffffff ffffffd8(合法的JEPG格式的图片的开头都是ffffffff ffffffd8)开始,若是,执行203;否则执行200。
[0060]203,根据读取的所述字节流确定所述目标片是否包含EXIF信息;若包含,则执行204;否则,执行200;
[0061 ] EXIF信息都是以ffffffff ffffffel开头,因此本步骤为:查找字节流中是否存在ffffffff fffffTel字节(ffffTfTf前面有双数个字节),如果是,继续执行204;如果不存在,则执行200。
[0062]204,根据读取的所述字节流确定包含的所述EXIF信息是否为合法格式;若合法,则执行205 ;否则,执行200 ;
[0063]继续判断读取的字节流中ffffffff ffffffel字节之后隔两个字节是否是45 7869 66 O 0(代表exifOO,是否exif信息的合法格式),如果是,继续执行205;如果不是,则执行 200。
[0064]205,根据所述EXIF信息确定所述目标图片的字节序列标准;
[0065]继续判断45 78 69 66 O O字节之后是49 49还是4d 4cL49 4,其中,表示字节序列是英特尔InteI标准,参照图3。4d 4d表示字节序列是摩托罗拉MotoroIa标准,参照图4。
[0066]206,根据确定所述字节序列标准确定所述目标图片是否为有效图片;若是,则执行207;否则,执行200;
[0067]针对Intel标准,则是判断4949之后是否是2a 0(有效合法格式),若是,则判断2aO之后是否是8 O O 0(有效合法格式);否则执行200。
[0068]针对Motorola标准,则是判断4d 4d之后是否是O 2a,若是,则判断O 2a之后是否是O O O 8;否则,执行200。
[0069]207,确定有效图片是否包含图片旋转信息;若包含,则执行208;否则执行200;
[0070]针对Intel标准,则是判断8O O O之后是否含有12 1(12前面有双数个字节),没有执行200。有则取之后的第7位和第8位。如果第8位不为零,则执行200。
[0071]针对Motorola标准,则是判断O O O 8之后是否含有I 12(1前面有双数个字节),没有执行200。有则取之后的第7位和第8位。如果第7位不为零,则执行200。
[0072]208根据有效图片的标准格式读取旋转标签位上的参数值;
[0073]有效图片的格式都是标准的。标准的格式中,该旋转标签为上的参数值就是第7位。针对Intel标准如果第7位在是I到8之间的数字,则为其旋转方向。针对Motorola标准,如果第8位在是I到8之间的数字,则为其旋转方向。
[0074]参数值可以有1-8的8个值。分别对应于旋转O度,水平翻转,旋转180度,垂直翻转,顺时针90度一+水平翻转,顺时针90度,顺时针90度+垂直翻转,逆时针90度。参照如图5所不O
[0075]209,根据所述参数值确定目标图片的图片旋转信息。
[0076]根据参数值和如图5所示的参数值与旋转之间的关系,可以确定图片旋转信息。
[0077]210,根据所述图片旋转信息,旋转所述目标图片到旋转前的位置。
[0078]要想旋转到旋转前的位置,执行相应旋转操作即可。如若旋转信息为逆时针90度。要想图片显示位置正确,则执行顺时针旋转90度即可。
[0079]200,无效图片,不处理。
[0080]本实施例提供的方法中,先确定图片格式是否为合法的图片格式,并在合法图片格式的基础上,提取EXIF信息,以及其中包含的图片旋转信息,再根据该个图片旋转信息确定了需要旋转的角度,进而使目标图片可以显示正确的位置。该方案是针对固定问题的方案,代码实现简单,占用存储资源较少。
[0081]为了便于上述方法的实现,本实施例继续提供一种处理被旋转后图片的显示位置的装置,如图6所示,包括:
[0082]读取模块61,用于读取目标图片的字节流;
[0083]旋转信息确定模块62,用于根据读取的所述字节流确定所述目标图片中是否包含可交换图像文件EXIF信息;
[0084]旋转信息获取模块63,用于若旋转信息确定模块确定包含EXIF信息,则根据所述EXIF信息获取所述目标图片的图片旋转信息;
[0085]旋转模块64,用于根据所述图片旋转信息,旋转所述目标图片到旋转前的位置。
[0086]其中,所述旋转信息确定模块62,还用于确定包含的所述EXIF信息是否为合法格式。
[0087]所述旋转信息获取模块63,具体用于根据所述EXIF信息确定所述目标图片的字节序列标准;根据确定所述字节序列标准确定所述目标图片是否为有效图片;若确定是有效图片,则根据有效图片的标准格式读取旋转标签位上的参数值;根据所述参数值确定目标图片的图片旋转信息。
[0088]可选的,还包括:合法确定模块,用于根据读取的所述字节流确定所述目标图片是否为合法图片格式。
[0089]该还包括:信息包含确定模块,用于确定有效图片是否包含图片旋转信息。
[0090]本发明实施例提供的处理被旋转后图片的显示位置的装置,具有从目标图片的字节码中读取EXIF信息,并从该EXIF信息中获取的图片旋转信息,在根据图片旋转信息对图片进行校正旋转,将其旋转到旋转前的位置的功能,解决了现有技术中,由于图片被旋转后,没有经过处理直接显示导致的显示位置异常的技术问题,进而实现可以通过纠正图片的显示位置,同时节约存储资源,便于实现和移植的技术效果。
[0091]在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0092]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0093]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0094]上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,R0M)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0095]本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0096]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【主权项】
1.一种处理被旋转后图片的显示位置的方法,其特征在于,包括: 读取目标图片的字节流; 根据读取的所述字节流确定所述目标图片中是否包含可交换图像文件EXIF信息;若确定所述目标图片中包含EXIF信息,则根据所述EXIF信息获取所述目标图片的图片旋转信息; 根据所述图片旋转信息,旋转所述目标图片到旋转前的位置。2.根据权利要求1所述的方法,其特征在于,在根据读取的所述字节流确定所述目标图片中是否包含EXIF信息之前,该方法还包括: 根据读取的所述字节流确定所述目标图片是否为合法图片格式。3.根据权利要求1或2所述的方法,其特征在于,在根据读取的所述字节流确定所述目标图片中是否包含EXIF信息之后,该方法还包括: 确定包含的所述EXIF信息是否为合法格式。4.根据权利要求1或2所述的方法,其特征在于,所述根据所述EXIF信息获取所述目标图片的图片旋转信息,具体包括: 根据所述EXIF信息确定所述目标图片的字节序列标准; 根据确定所述字节序列标准确定所述目标图片是否为有效图片; 若确定是有效图片,则根据有效图片的标准格式读取旋转标签位上的参数值; 根据所述参数值确定目标图片的图片旋转信息。5.根据权利要求4所述的方法,其特征在于,在确定是有效图片后,该方法还包括: 确定有效图片是否包含图片旋转信息。6.一种处理被旋转后图片的显示位置的装置,其特征在于,包括: 读取模块,用于读取目标图片的字节流; 旋转信息确定模块,用于根据读取的所述字节流确定所述目标图片中是否包含可交换图像文件EXIF信息; 旋转信息获取模块,用于若旋转信息确定模块确定所述目标图片中包含EXIF信息,则根据所述EXIF信息获取所述目标图片的图片旋转信息; 旋转模块,用于根据所述图片旋转信息,旋转所述目标图片到旋转前的位置。7.根据权利要求6所述的装置,其特征在于,还包括: 合法确定模块,用于根据读取的所述字节流确定所述目标图片是否为合法图片格式。8.根据权利要求6或7所述的装置,其特征在于,所述旋转信息确定模块,还用于确定包含的所述EXIF信息是否为合法格式。9.根据权利要求6或7所述的装置,其特征在于,所述旋转信息获取模块,具体用于根据所述EXIF信息确定所述目标图片的字节序列标准;根据确定所述字节序列标准确定所述目标图片是否为有效图片;若确定是有效图片,则根据有效图片的标准格式读取旋转标签位上的参数值;根据所述参数值确定目标图片的图片旋转信息。10.根据权利要求10所述的装置,其特征在于,该装置还包括: 信息包含确定模块,用于确定有效图片是否包含图片旋转信息。
【文档编号】G06T3/60GK105913381SQ201610261965
【公开日】2016年8月31日
【申请日】2016年4月25日
【发明人】谢晓静
【申请人】乐视控股(北京)有限公司, 乐视网信息技术(北京)股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1