基于web html5+js的图片压缩上传技术研究

来源 :科学与财富 | 被引量 : 0次 | 上传用户:henban
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:能够在上传到服务器之前进行图片压缩处理,也就是在客户端进行图片的处理需求一直都在,对于原生APP来说,具有原生API,图片处理很简单,而对于B/S应用来说,没有原生AIP的支持,处理图片就变得有些棘手。就当前的技术发展来说,可以通过对算法的实现来解决图片的压缩,客户端的解析能力并没有想象中那么强大,算法的运行环境需要强的解析环境,同时,实现算法也会增加很大的代码量。
  关键词:web2.0;javascript;图片压
  1相关理论与技术介绍
  1.1 Web技术
  技术标准方面,2004年W3C期望发展是XHTML2.0,2009年W3C放弃了改进XHTML2.0的标准发展。当前W3C和WHATWG都在进行html5规范的修订和发展。其中W3C致力于对html5的展示层面,包括很多新的元素的制定,WHATWG致力在开发的角度进行改进。移动Web应用使用Web技术来构建,用网页语言(如HTML、JavaScript、Java等编程语言)进行撰写,并通过网页浏览器在互联网或企业内部网上执行。
  1.2 HTML5关键技术
  HTML5有两大特点:首先,强化了Web网页的表现性能。其次,追加了本地数据库等Web应用的功能。图片在线处理功能的实现正是通过HTML5强化网页表,追加的canvas标签实现的,在开发图片在线处理功能时,项目首先是通过HTML5技术实现的。HTML5图片在线处理包括四大功能,剪裁、缩放、旋转、水印。这些可以通过canvas标签调用HTML5内置API分别实现。
  1.3 XMLHTTPrequest 2.0
  XMLHttpRequest(XHR)是一个API对象,其中的方法可以用来在浏览器和服务器端传输数据。这个对象是浏览器的js环境提供的。从XHR获取数据的目的是为了持续修改一个加载过的页面,XHR是Ajax设计的底层概念。XHR使用的协议不同于HTTP,不仅可以使用XML格式的数据,也支持JSON,HTML或者纯文本。
  2 Web前端图片压缩处理技术研究
  2.1 前端操作的性能指标
  正如项目前期无框架可言一样,移动Web前端开发前期除了建立尽量完善的移动开发规范来避兔不必要的性能问题外,同样无法过度追求性能优化。多数的前端性能优化方案来自于权衡的结果。因此,前端性能优化的工作往往放在应用开发到一定阶段后开展,以及项目正式上线后定期进行维护。在对移动图片社交Web应用进行前端性能优化之前,需要进行应用整体的性能测试,并根据性能测试分析结果制定优化方案加以应用。前端性能指标主要包括加载时间指标,资源情况指标和网络连接指标。
  2.2 基本原理
  图像数据之所以能被压缩,就是因为数据中存在着冗余。图像数据的冗余主要表现为:图像中相邻像素间的相关性引起的空间冗余;图像序列中不同帧之间存在相关性引起的时间冗余;不同彩色平面或频谱带的相关性引起的频谱冗余。数据压缩的目的就是通过去除这些数据冗余来减少表示数据所需的比特数。由于图像数据量的庞大,在存储、传输、处理时非常困难,因此图像数据的压缩就显得非常重要。
  大体思路如下:
  (1)利用FileReader,读取blob对象,或者是file对象,将图片转化为data uri的形式。(2)使用canvas,在页面上新建一个画布,利用canvas提供的API,将图片画入这个画布当中。(3)利用canvas.toDataURL(),进行图片的压缩,得到图片的data uri的值。(4)上传文件。
  2.3 文件上传方式
  文件上传有2种方式:
  (1)将图片转化为base64:可以通过xhr ajax或者xhr2 FormData进行提交。
  (2)将图片数据转为Blob对象,使用FormData上传文件:Blob对象是无法注入到FormData对象当中的,当拿到了图片的data uri数据后,将其转化为Blob数据类型。
  3 图片压缩功能实现过程
  3.1 圖片预处理
  在进行图片压缩前,还是对图片大小做了判断的,如果图片大小大于200KB时,是直接进行图片上传,不进行图片的压缩,如果图片的大小是大于200KB,则是先进行图片的压缩再上传。
  3.2 图片转换为canvas
  基于HTML5 的图片方法的基本思路是利用HTML5 的input[type=file] 组件选择图片,使用FileReader 对象读取选中图片数据,使用Canvas 标签的DrawImage 方法将图片剪裁到指定大小,使用Canvas 的toDataURL 方法按照指定质量将图片数据转换成Base64 编码,最后,通过Ajax 异步通信,将图片数据发送到服务器端,服务器端接收并保存图片,从而实现图片压缩上传。
  3.3 canvas转换为图片数据格式
  转换 Canvas 为 Image,假设图像已经在canvas上处理好,那么可以使用以下方法,把canvas转变为图片Image对象。
  3.4 利用大对象进行数据传输数据
  浏览选定照片后获取上传照片文件的大小,根据其大小开辟一块内存空间用于将来存储图片对象, 然后将上传的照片文件读取到字节数组中,继而转换成二进制流的形式,并赋值给一个会话(Session)对象。
  从会话(Session)对象中将二进制流形式的图片赋值给字节变量,然后将该字节变量再赋值给插入语句的参数,最后通过执行插入语句实现媒体资料的存储。
  首先,创建一个文件用以独立显示检索的图片,在该文件中编写查询语句将图片检索出来,检索结果存入到数据表中。如果检索结果不为空,则将该图片返回到下一步的结果中。其次, 在浏览页面中编写查询语句实现图片各个信息的检索,对于图片内容应用带参数链接的方式与上一步检索出的结果联系起来,最终实现图片在页面的浏览。
  3.5 压缩方法的实现
  (1)页面添加文件选择组件
  (2)监听文件组件的change 事件并读取图片内容
  (3)图片压缩及调用
  (4)异步上传:压缩后的图片通过JQuery实现异步上传。
  (5)服务器端保存
  4结论
  基于HTML5 的Canvas 对象对图片进行压缩的方法,适用于手机的移动网站和各类移动应用的开发,对增强用户体验,减轻服务器压力有一定的实际意义。Web技术已经深入人们日常生活的方方面面,其中对HTML5安全性的研究具有重要的现实意义。BLOB 存储格式同C#代码相结合, 将图像资料转换成二进制流存入数据库,调用时再将二进制流还原成原始文件,很好地实现了图像资料的存储和读取, 解决了常规数据格式无法处理的问题,从而保证了相关专业软件的顺利应用。此外,BLOB 存储技术不仅可以应用于图像资料,对于音频、视频等资料也同样适用。以HTML5为代表的移动Web技术尚处于发展的初级阶段,标准本身在向不断完善和改进空间演进,且相比本地应用移动智能终端仍存在执行HTML5效率低、设备调用能力受限、能耗较大等问题,都影响着移动Web应用的体验。
  参考文献:
  [1]邹绍武,苏贵斌.Android应用开发中图片压缩技术的研究应[J].计算机技术, 2014(1):17.
  [2]马建华,杨波.C/S与B/S结构中BLOB类型数据的应用[J].计算机应用,2015(14):4-5.
其他文献
摘 要:当前我国工业发展已经取得了很大的成果,并且在工业领域也在不断产生新的技术。目前在世界上,经济全球化的趋势已经越来越明显,为了能够提高销售量、抢占市场份额,各企业都在不断提高自身的生产效率、扩大自身的生产规模,这样才能让企业在竞争中保留足够的竞争力。目前我国也正处于产业转型时期,很多技术都在更新换代,尤其生产模式也是一项急需改变的内容,所以只有提高生产效率、提高工业生产的自动化水平,才能在国
摘 要:伴随着我国科学技术的发展,我国的建筑工程的规模与数量不断扩大,人们对于建筑工程的要求也越来越高。公路施工在建筑工程中是一项比较重要的施工项目,对于我国交通体系的建设和完善有着决定性的作用,因此必须要加强对公路施工建设的研究,才能促进我国交通体系的完善,进一步的提升我国经济发展水平。公路施工中路面一般都离不开混凝土施工 ,所以混凝土的施工技术对于公路施工的质量和水平起到决定性的作用。如今公路
提出了一种用于实时多径传输的失序可控的负载分发模型.根据目的端反馈的各条路径的传输质量以及路径之间的失序信息,在源端动态更新各条路径上的负载分配份额,在满足与路径
如果要用一个字来总结2012年的中国广告,我想这个字一定是“微”。无论是微博还是微电影以及后期之微信,都正在改变或者即将改变广告的营销。微营销是时下比较流行的一个概念
摘 要:航空技术和飞行器设计制造水平的不断发展和进步,使航空科技的应用范围更加广大和宽泛,其中利用航空技术而开展的摄影测量工作就是极为典型的应用代表。而在空中对测量目标进行定位就需要拥有一个高精度和先进定位技术的控制系统来操控,这就是POS系统,其定位的精准程度和相关技术的应用水平都很高,得到了很多人的青睐,本文就着重分析这种系统的定位功能和类型,以及具体的实践应用情况。  关键词:航空;摄影测量
介绍了勉县早春黄瓜—秋冬蒜苗一年两茬设施高效栽培模式,并分别介绍了该模式下早春黄瓜、秋冬蒜苗的栽培技术,以期为采用该栽培模式的种植户提供参考。 This paper introdu
本文以港股通和优汇通案例为切入点,分析了人民币国际化与资本项目外汇管制之间的矛盾和由此产生的监管套利等问题,并提出,要改革我国境内个人直接投资境外证券的外汇制度,应
摘 要:以往的地铁运营管理过程中,在空调的使用方面不够节约,本文在此基础上,研制了一种基于PLC的地铁车站智能空调及语音播报系统,能够根据进入车站的人流量大小来控制制冷空调机组的制冷速率;并根据进入车站的人流量大小,通过语音播报模块,对人群进行安全提示。  关键词:PLC;控制系统;智能空调;语音播报系统  1 前言  目前,国内地铁车站(主要指地下车站)利用空调系统进行车站内温度、湿度的调节。现
国际证券市场的无纸化为资本交易带来深刻变革的同时,也对资本法律体系建构提出挑战。我国证券持有体制以直接持有为主,仅在QFII、境外持有B股、国债回购中涉及间接持有体制,
目的:近年来随着神经影像的进步,尤其是磁共振成像的普及,脑白质病变(White matter lesion, WML)已成为中老年人群中头核磁诊断报告中频繁出现的一个诊断。其在影像学上主要表现为