APP开发项目在后台制作时怎样处理图片处理问题,App上线后不断接收用户反馈,有的App经过一段时间的反馈和产品调整后会面临App改版的问题。App改版一般会有比较大的UI改动,改动UI.那么图片的尺寸也必须改变。
一、APP开发或者改版对于图片的处理技巧
深圳APP开发公司工程师在本站APP开发栏目中设计API的要点”一文中,提到App后台图片处理的一个基本原则:数据库只保存原图的路径。对于同张图片来说,针对不同机型、不同App版本所需要的尺寸不同,使用动态生成的策略,大体思路如下。
(1) App在图片的URL末尾加上参数,其用来声明需要生成的图片的新的尺寸,例如:App端需要图片(http://www. baidu.com/img/bdlogo. gif)80×80的尺寸,则在图片的路径加上宽和高的参数(类似于CDN的机制)http://www.baidu. com/img/bdlogo. gif?w:80&h:80.
(2)服务器接收到图片的请求,先在缓存中查找这个尺寸的图片是否已经生成,如果已经在缓存中有记录,则不用重新生成。
(3)如果该尺寸的图片还没生成,则生成新的图片尺寸,并把新生成的图片路径放在缓存中,同时把该尺寸图片的路径返回给App。App整体架构中的图片最少有两层缓存。
·App本地的图片缓存,如果App中没有该图片时,才从服务器获取图片。
·服务器的图片缓存,记录不同尺寸图片的保存路径。
深圳APP开发工程师的的建议是:直接使用七牛或又拍等文件云存储服务,文件云存储不但可以加速图片的下载/上传,也能实现图片的大量操作(例如图
片裁剪、加水印等常用的操作)。图片的上传/下载速度是影响用户体验的个重要部分。
二、APP开发视频处理经验
在热门的社交类App中视频到处可见,例如在社交类的App上用户可以拍摄属于自己的小视频并发布到相应的栏目中,App后台常见的视频处理有以下几种。
·视频的截图。很多App的视频列表上用一张图片表示该视频,这张图片就是通过截取视频的某一帧(通常是第一帧)得到的。
·出于版权保护的目的给视频加水印。
·视频转码,允许用户上传手机上的视频并转换为App后台支持的格式。
视频的处理对于大多数APP开发爱好者程序员来说是个很陌生的领域,这里介绍一个视频处理最常用的工具:APP开发视频处理FFmpeg
FFmpeg的官网(http://ffⅢpeg.org/)是这样介绍的:A c omplete,c ross-platform s olution t orecord,c01lvert and stream audio and video。FFmpeg可以用来记录、转换数字音频、视频,并能将其转化为流的开源汁算机软件。FFmpeg是个跨平台的软件,可以在Linux下使用,也可以在Windows或Mac下使用。这个项目最早由Fabrice B ellard发起,现在由Michael FIiedermaver维护。许多FFmpeg的开发人员部来自MPlaver项目,而且当前FFmpeg项目也是放在MPlaver项目组的服务器上。项目的名称来自MPEG视频编码标准,前面的“FF”代表“Fast Forward”。国内的七牛云存储的音视频处理的核心模块也是使用FFmpeg。FFmpeg可以实现的功能有。
视频采集。
音/视频格式转换
视频抓图。
加视频水印。
FFmpeg主要由以下几个部分组成
·Libavcodec:包含了所有FFmpeg音/视频编解码器的库。为了保证最优性能和高可复用性,大多数编解码器从头开发的
·Libavformat:包含了所有的普通音/视格式的解析器和产生器的库。三个实例程序
·FFmpeg:命令行的视频格式转换程序(般就直接调用这个文件)
·FFplay:视频播放程序(需要SDL支持)。
·FFserver:多媒体服务器。
好了,深圳APP开发公司对于项目制作或者改版时如何处理图片以及视频的实操经验方面的知识就分享到这里。下期我们会聊聊APP制作时怎样在后台调用FFmpeg。博纳网络编辑。