王国娟,李佳忻,盘细平
(上海市计算技术研究所上海200333)
一种面向即时通讯的图片管理方法及其在税务通讯软件上的实现
王国娟,李佳忻,盘细平
(上海市计算技术研究所上海200333)
结合即时通讯对图片使用要求的特点,为了提高即时通讯软件通讯中图片的加载速度,提升用户体验,开发出了一种图片管理系统。该图片管理系统主要实现方法为:以XMPP协议为依托,发送客户端将待发送图片生成缩略图,将待发送图片及其缩略图一起上传到服务器,在获取到图片在文件服务器上的URL后,生成报文消息并发送给消息服务器,接收端在接受到报文消息后,根据URL下载图片及其缩略图,完成缓存,在图片显示时,根据是否具有缓存采取相应显示方法。本方法在上海税务通讯软件上进行了实现,证明了本图片管理方法的实用性和可行性。
图片管理;XMPP;即时通讯;上海税务
随着科技的飞速发展,即时通讯已经成了目前网络上最流行的通讯方式,各种各样的即时通讯软件层出不穷。即时通讯系统中图片传输是最重要的子功能之一。用户通过传输图片不仅可以在最快的时间内清晰地获得所需要的资讯,而且增加了交流的趣味性。但是随着智能手机的普及,即时通讯的应用环境日趋复杂,既有不同的操作系统(安卓、IOS等),又有不同的终端设备,还有复杂的网络环境[1]。而即时通讯中对图片的使用频率日益频繁,片人们日渐喜欢通过图片来传达信息,并且希望是实时的,快速送达目标好友。图使用终端也日益多样化,要求我们具有完整的支持。因此如何使图片在通讯过程中能达到即时高效的传输是即时通讯图片传输的一个难点。
本即时通讯的图片管理方法原理是将要发送的图片处理后按比例压缩后在发送端对压缩后的图片和原图进行编码,将编码后的文件在IM服务器中以报文的形式进行传输[2],接收端在接收到报文后,按照相应的编码方式进行解码,显示在接收端,同时发送端将编码并将编码后的压缩文件和原文件上传到服务器端并进行保存,同时将编码[3]后的压缩文件在IM服务器[4]中以报文的形式进行传输,接收端在接收到报文后,按照相应的编码方式进行解码,显示在接收端,并且显示在接收端的压缩文件附带着服务器端的URL地址,在特定情况下当客户端需要相应的文件时,双击压缩图片利用URL地址可以从服务器端将文件下载下来,本即时通讯的图片管理方法的原理如图1所示。
图1 图片管理方法的系统框架
1)发送端:发送端的功能是将选取的文件进行压缩、剪裁,并将处理好的文件进行编码处理。
2)IM服务器:IM服务器是负责传输报文的通道;
3)服务器端:服务器端是一个网络上的存储空间,负责接收发送端发送的编码文件,并保存下来,返回一个URL地址;
4)接收端:接收端在接收到IM服务器传送过来的报文以后,将报文进行相应的解码,或者在用户选择下载那个服务器端下载文件时,根据URL地址,进行下载,并将文件显示在界面。
即时通讯是一个O2O平台,没有固定的发送端,本文中所谓的发送端和接收端都可以是安装着上海税务系统即时通讯软件和任何一部移动设备。
发送端的主要职能包括对图片的选取以及对图片进行处理。当用户需要传送图片的时候,可以通过设置是否使用手机自带相机的选择和从相册中进行已有图片的选择,从而选定一张照片。
选定照片后对照片进行处理,首先对照片进行人脸识别判断,人脸识别使用的是openCV脸部识别原理[5],这是一个目前比较成熟的方法,基于人脸识别的难度,是对人脸的关键点进行分析进而识别,所以可以避免很多麻烦,使用该原理进行人脸识别只可以识别出占整张图片大面积的人脸,而无法识别作为背景不小心被拍进画面的人脸,这样一旦进行需要图片剪裁的时候,对识别出人脸的图片,以人脸为中心,进行剪裁,而风景的画面即无法识别出人脸的画面,则以几何中心为中心进行剪裁,虽然会存在一定的误差,但是在大多数情况下,剪裁后都可以保证最大化的保留图片想表达的重点内容。
压缩图片[6]的参数在经过上海税务即时通讯系统上的反复测试,得出在压缩系数确定为0.7的时候,压缩效果可以保证图片索要表达的信息。
同时在发送端只有在图片的大小大于1080P的情况下会对图片进行剪裁,分为三个档次阶段,第一阶段,图片小于1080P直接进行等比例压缩;第二个阶段图片大于1080P小于2M的情况下,先对图片进行一次0.7系数的压缩,然后进行剪裁,剪裁后的大小在1080P左右,然后进行压缩;第三个阶段,图片的大小大于2M,对图片先进行剪裁,剪裁到2M大小,接着按照2M图片的处理方法进行处理。
在对图片进行处理编码后发送端将处理后的图片和原图片以报文的形式分别发送出去。
服务器端是一个存在于网络上的存储空间,服务器端在收到发送端发送过来的处理后的图片和原图后,给接收到的原图迅速分配一个内存的URL地址,将接收到的文件进行保存,并且将原图分配的URL地址以报文的形式发送到接收端,并且将该URL地址加载在与该原图对应的处理后的图片上。
并且在接收到接收端的请求后,将原图发送到接收端。
接收端也是任意一部安装着上海税务即时通讯软件的移动设备。
接收端在通过IM服务器接受到来自发送端直接发送的处理后的图片报文后,将报文组装后,解压缩显示在接收端界面上,并且将来自服务器端的URL地址加载在对应的处理后的图片上,并且在客户有需要的情况下,即客户双击缩略图,则接收端对服务器端发送一个http请求,在获得服务器端发送过来的原图后,以大图的形式显示子界面上。
当客户浏览大图完成后,双击大图,则图片再次变成缩略图,并且在接收端形成原图缓存,在再次想要访问原图的情况下就不需要再次向服务器端发送请求,只需要从后台缓存里取出图片,节省流量。
上海税务系统即时通讯软件又名霓歌是一款属于上海市神计信息有限公司开发的一款用于上海2016年税务改版后业内业务交流的软件。该款软件实现了税务填报人员和税务局以及税务填报客服之间的无障碍交流,现在已经进行局部上线试用,得到了业内人士的一致好评。
现在除了各个公司的私有IM协议后,绝大多数都选择使用XMPP协议[11]。XMPP协议是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性,霓歌系统在传输过程中选择了XMPP协议。
因为即时通讯管理方法主要是基于手机客户端,手机客户端的拍照结果和相册的图片格式都是JPEG。JPEG是负责创建JPEG标准和其他静止图像编码标准的联合图像专家组。该专家组开发的JPEG算法[8-9]成为国际上通用的静止图形压缩标准。JPEG不仅能处理灰度图像,是一个通用的静态图像数据压缩标准。JPEG可以按照需求调节压缩比[10],能在图像存储大小和图像质量之间得到折中。
云存储[7]是在云计算概念上衍生发展出来的一个新的概念。现在社会上存在着各式各样的云存储服务器,例如阿里的云服务,本即时图片管理系统采用的是阿里云存储服务器,阿里云存储是构建在阿里云飞天分布式系统之上的一种以表格存储方式的一种Nosql数据存储服务[12-13]基于阿里云良好的扩展性和安全性能,霓歌的服务器端选择了阿里的云存储。
本即时通讯软件的图片管理系统的整体实现方案如图2所示。
1)从手机相册选取图片或者使用手机进行拍照生成新的图片,根据显示终端尺寸以及图片尺寸选择最小差值确定压缩尺寸,根据该尺寸将图片压缩,显示到终端[14],用户选择所需要发送的图片,此处发送分为两种情况。
2)用户选择原图发送,生成缩略图,并将原图和缩略图上传到文件服务器,上传成功后返回对应的URL;
3)用户不选择原图发送,生成缩略图,并将原图压缩到一定的尺寸,将缩略图和压缩后的图片上传到文件服务器,上传成功后返回对应的URL;
4)获取到相关的URL后,生成报文发送到XMPP服务器;
5)接收客户端收到消息后,根据其中URL进行下载并缓存图片[15],一般情况下,下载缓存好时在界面中显示缩略图,用户点击查看时显示原图。
如果在订阅号等情况下需要对图片进行剪裁,最大程度保证图片显示用户最需要的部分。
图2 图片管理方法的整体实现流程
通过流量监测器在霓歌应用软件上的测试结果,在发送不同大小的图片的情况下,手机的流量的消耗都大大减少,尤其在像素点越高的情况下,节省流量的效果越加明显,像素点和流量使用情况对比如表1所示,因为即时图片管理系统是以1080P的图片大小为节点,0.7的系数进行压缩,所以从表1的结果看出。
表1 流量使用对比表
表1的结果表明,在图片越大的情况下,流量使用情况相对来说减少的越多,但是由于每个人的关注点不同,图片的剪裁是以最大人脸为中心,所以可能出现丢失部分人群需要的信息。
本即时通讯软件的图片管理方法在上海税务系统即时通讯软件上得到了很好的应用,测试结果表明,在图片的浏览方面,图片清晰,反应速度很快,而且同比于相同功能的软件,流量的使用量都大大节省,是一种及时、高效的图片管理方法。
[1]黄伟敏.基于XMPP协议的Android即时通信系统设计[J].电子设计工程,2011,19(8):57-59.
[2]周昊.基于Web图片库的设计与实现[D].北京:北京交通大学,2012.
[3]于沛东,李静,彭华.一种利用软判决的信道编码识别新算法[J].电子学报,2013(2):301-306.
[4]巩元鹏.基于XMPP协议的智能家居远程控制系统研究设计[D].硕士学位论文,2012.
[5]黎志华,李新国.基于OpenCV的红外弱小运动目标检测与跟踪[J].红外与激光工程,2013(9):2561-2565.
[6]邹绍武,武贵斌.Android应用开发中图片压缩技术的研究应用[J].计算机技术与发展,2015(6):106-109,113.
[7]魏振钢,孙维成,杨洁等.云计算在医疗结构部署中的云资源管理一种方式[J].计算机科学,2013(S1):372-373,391.
[8]熊哲源,樊晓平,刘少强,等.面向无线多媒体传感器网络的JPEG 2000图像编码算法[J].传感器与微系统,2011,2(1):55-58.
[9]李毅,李珊珊.基于VC++6.0的JPEG图像编码研究[J].计算机与现代化,2012(6):58-61.
[10]李素钧,廖胜,李强.基于多核DSP的H.264图像压缩编码的并行化实现[J].电子设计工程,2017(4):126-129.
[11]刘涌,张彦工,梁崑涛.移动设备上XMPP功耗与带宽的研究[J].小型微型计算机系统,2013,34(2):272-276.
[12]翁省辉,黄丹萍,廖天骄,等.基于移动存储设备的云端自动备份系统设计[J].电子设计工程,2016(10):77-79.
[13]姚书科,张韧志.基于云计算的海量图片存储管理系统研究[J].电子设计工程,2012(11):17-20.
[14]王坤.互动多媒体图片自适应大小的研究与实现[J].电子设计工程,2015(18):69-71.
[15]屈佳,胡志勇.基于WEB的表情图片模块动态管理与实现[J].电子设计工程,2016(9):185-187.
One of picture management method for instant messaging and its realization in tax communication software
WANG Guo⁃juan ,LI Jia⁃xin,PAN Xi⁃ping
(Shanghai Institute of Computing Technology,Shanghai200333,China)
Combined with instant messaging features for image management requirements,in order to im⁃prove communication instant messaging software image loading speed and enhance the user experience,we developed a photo management system.The image management system is mainly the method:the XMPP protocol as the basis,to be transmitted to generate a thumbnail picture,and send pictures to be uploaded to the server with a thumbnail,the image acquired on the file server's URL,the message is gen⁃erated text messages sent to the message server,the receiver receives packets in the message,according to the URL to download pictures and thumbnails,complete cache,and the cache based on the results of image display.While social software get a series of verification on the Shanghai tax communication soft⁃ware proved practical management methods,reliability.
picturesmanagement;XMPP;nstant messaging feature;Shanghai taxation administration
TN701
A
1674-6236(2017)22-0182-04
2016-10-11稿件编号:201610038
王国娟(1991—),女,山西大同人,硕士研究生。研究方向:计算机软件理论与应用。