安卓图片批量处理软件 (12页)
- 格式:docx
- 大小:19.67 KB
- 文档页数:12
图片批量处理工具推荐与图片优化的最佳实践图片在现代互联网时代中扮演着重要的角色,无论是在网页设计、移动应用开发还是社交媒体分享,优质的图片都能极大提升用户体验和吸引力。
然而,随着图片的使用逐渐增多,如何高效处理和优化这些图片成为一个重要的问题。
本文旨在推荐几款常用的图片批量处理工具,并分享图片优化的最佳实践方法,帮助读者提升图片处理的效率和质量。
一、图片批量处理工具推荐1. Adobe PhotoshopAdobe Photoshop是业界最知名的图像处理工具之一,拥有强大的图片批量处理功能。
通过脚本和动作的方式,用户可以快速对大量图片进行批量处理,如调整大小、添加水印、降噪等。
同时,Photoshop 还支持批量导出不同格式的图片,方便用于不同的应用场景。
2. GIMPGIMP是一款开源的图像编辑软件,也具备批量处理功能。
通过插件和脚本,用户可以自定义各种批处理操作,如重命名、调整大小、自动调整颜色等。
虽然GIMP的界面相对复杂一些,但是它提供了大量的编辑工具和滤镜效果,适合进阶用户进行高级批处理操作。
3. ImageMagickImageMagick是一款跨平台的图像处理软件套件,支持命令行批处理。
它提供了丰富的图像处理函数和工具,可以对图片进行各种操作,如缩放、旋转、裁剪等。
ImageMagick还支持多种主流图像格式,同时具备硬件加速和多线程处理的能力,适合处理大规模的图片批量操作。
二、图片优化的最佳实践方法1. 选择合适的图片格式在进行图片优化前,首先需要选择合适的图片格式。
对于带有透明背景的图片,应选择PNG格式;对于颜色较多或需要保留细节的图片,应选择JPEG格式;对于线条和文字等图形,应选择SVG格式。
正确选择图片格式可以有效减小图片文件体积,并保证图片质量。
2. 压缩图片文件大小图片文件的大小直接影响页面加载速度,因此需要对图片进行适当的压缩。
可以使用图片处理工具中提供的压缩功能,或者使用在线图片压缩工具进行处理。
图片批量处理工具推荐在数字时代,图片处理工具的需求越来越大。
尤其是对于专业摄影师、设计师和社交媒体经营者来说,批量处理工具是提高工作效率的重要利器。
本文将为您推荐几款功能强大、易于使用的图片批量处理工具。
一、Adobe Photoshop(适用于专业用户)Adobe Photoshop是业界公认的图像处理软件的翘楚,它提供了强大、灵活的批量处理功能,可以帮助用户快速处理大批量图片。
无论是图像调整、裁剪、大小调整抑或是批量添加水印,Photoshop都能胜任。
二、Lightroom(适用于摄影师)Lightroom是Adobe公司专门为摄影师打造的一个图片处理和管理工具。
它具备强大的批量处理能力,可以高效地调整照片的亮度、对比度、色调等参数,并快速导出批量图片。
此外,Lightroom还提供了丰富的滤镜和预设,方便用户一键完成批量色彩和风格调整。
三、GIMP(适用于免费用户)GIMP是一款开源的图片处理工具,与Photoshop相比,它功能略显简陋,但也提供了一定的批量处理功能。
用户可以使用GIMP批量调整图像的亮度、对比度、饱和度等参数,自定义滤镜和脚本,快速处理大量图片。
四、XnConvert(适用于批量转换格式)XnConvert是一款跨平台的图片批量转换软件,它支持常见的图片格式,并提供了多种转换选项,如调整大小、旋转、添加水印等。
用户可以通过简单设置,快速将大量图片转换为所需格式。
五、IrfanView(适用于简单批量处理)IrfanView是一款简洁易用的图片浏览和编辑软件,它提供了一些基本的批量处理功能,如调整亮度、对比度、尺寸等。
虽然IrfanView的功能相对有限,但对于一些简单的批量处理需求,它是一个快速、稳定的选择。
总结:对于专业用户来说,Adobe Photoshop和Lightroom是最佳选择。
它们提供了强大的批量处理功能和丰富的滤镜预设,可以满足复杂的图片处理需求。
对于免费用户和简单需求用户,GIMP、XnConvert和IrfanView都是不错的选择,它们提供了基本的批量处理功能,能够满足一般的图片处理需求。
如何使用照片管理软件进行批量图片处理和导出在当今社交媒体和数字化世界中,照片已经成为人们记录生活和分享美好时刻的重要方式之一。
然而,随着照片数量的增加,如何有效地管理和处理这些照片变得尤为重要。
为了解决这个问题,许多照片管理软件应运而生,帮助我们批量处理和导出照片。
本文将介绍如何使用照片管理软件进行批量图片处理和导出,并在内容上分为三个部分。
第一部分:选择适合的照片管理软件首先,我们需要选择一个适合自己需求的照片管理软件。
市场上有许多照片管理软件,如Adobe Lightroom、Apple Photos、Google Photos等。
这些软件都有各自的优点和特点,我们需要根据自己的需求来选择。
在选择时,我们需要考虑以下几个因素:1. 功能:一个好的照片管理软件应该提供基本的照片浏览、标记和分类功能,同时还应该具备一些高级的图像编辑和处理功能,比如批量调整亮度、对比度、色彩,甚至进行人像美化和背景虚化等操作。
2. 用户界面:一个直观且易于使用的用户界面是一个好的照片管理软件的重要特征。
界面设计应简洁明了,操作逻辑应清晰易懂,让用户能够快速找到需要的功能并进行操作。
3. 数据管理:照片管理软件还应该提供可靠的数据管理功能,能够保证照片的安全性和完整性。
同时,它还应该提供备份和恢复选项,以防止照片意外丢失。
第二部分:批量处理照片选择了合适的照片管理软件之后,我们就可以开始批量处理照片了。
以下是一些常见的批量处理操作:1. 批量重命名:照片管理软件通常提供批量重命名功能,可以根据日期、拍摄地点、文件名等规则对照片进行重命名,方便后续查找和分类。
2. 批量调整:我们可以选择多张照片,统一调整亮度、对比度、色彩等参数,提高照片的整体质量。
此外,一些照片管理软件还提供批量裁剪、旋转和去除红眼等功能。
3. 批量添加水印:如果你是一名摄影师或者喜欢在照片上添加个人标识的用户,照片管理软件通常还提供批量添加水印的功能,方便保护个人作品的版权。
Android拍照和图片处理类应用盘点智能手机上的照相和图片处理程序越来越多,要不是光学元件大小限制,现在的智能手机大有取代家庭卡片相机的可能,毕竟手机可以拍照、编辑、分享一条龙搞定,又是随身携带。
上期介绍了iPhone众多拍照摄影集锦,Android做为Google旗下一款十分出色的移动平台,由于完全开放,其应用商店里优秀的拍照摄影应用数量也得到很大提升。
这里就总结和推荐几个不错的的Android拍照和图像处理类app应用。
大众照相类camera360——国产程序中最强大的一款android照相程序feature:从高级到低级的拍照效果都有,能同时保存原照和效果照。
2.0版本加入直接分享到微博并随机添加相框的功能,十分人性化,不过美化方面还需改进。
good:不同色彩效果模式、大头贴模式、趣味模式、移轴移色模式…功能相当丰富,各种效果满足日常所需…bad:功能太杂,而且需要事先选择相应效果再拍照,不过现在版本已经可以在拍摄完后进行小幅的色彩效果改变。
不支持导入手机内的图片配置效果。
LittlePhoto——低调而华丽feature:可重叠多种色彩特效,有绘画、文字、马赛克模糊等工具。
good:各种色彩特效很好看,各种工具方便拍照之后直接进行编辑,用不着其他的编辑程序了。
支持从手机中调入其他图片进行编辑。
bad:不能预先对焦。
界面简单得有点略显简陋,效果分类有点杂乱。
文字绘画等工具还是不及PicSay好看。
Vignette——Android经典照相程序feature:10种实用的模式,喜欢X2 double模式可以照2张图片然后重叠曝光在一起。
可以调节不同的色彩效果、长宽比例和边框。
同一张照片可以保存多个效果。
good:效果和边框的整体水平都感觉较高,多重画面的拍摄模式很方便。
用户体验较好,各方面功能全面。
bad:右上角那个红叉,实在是太小,还好可以用返回键替代。
Pudding Camera——韩国的一款界面很漂亮的照相程序feature:模拟各种实体相机的特效,用户根据自己喜好选择不同的相机以及与其搭配的胶卷,个个都是经典lomo相机。
学习使用Photoscape进行图片编辑和批量处理第一章:引言现如今,图片已经成为人们生活中不可或缺的一部分。
无论是在社交媒体上分享精美的照片,还是在工作中需要处理图片来创建专业的设计作品,图片的编辑和处理技能已经成为必备的技能之一。
本文将介绍一款功能强大的图片编辑软件Photoscape,并深入探讨如何使用Photoscape进行图片编辑和批量处理。
第二章:软件介绍Photoscape是一款免费的图片编辑软件,它提供了几乎涵盖了常见的图片编辑功能,包括修剪、调整亮度、对比度和饱和度、添加文字等等。
和其他图片编辑软件相比,Photoscape的操作简单易懂,适合初学者和业余爱好者使用。
第三章:基础编辑功能在Photoscape中,基础编辑功能是最常用的功能之一。
用户可以通过它来裁剪图片,调整颜色、亮度和对比度,以及添加滤镜效果。
此外,Photoscape还提供了修复工具,可以轻松去除图片中的瑕疵和杂乱的背景。
第四章:高级编辑功能除了基础编辑功能外,Photoscape还提供了一些高级编辑功能,例如克隆工具、橡皮擦工具和修复工具。
这些工具可以帮助用户进行更精细的图片修复和编辑。
此外,Photoscape还提供了涂鸦和形状工具,使用户可以自由绘制和添加各种形状和图形到图片上。
第五章:批量处理功能Photoscape还具有强大的批量处理功能,这使得编辑大量图片变得更加高效。
用户可以一次选择多个图片,并对它们进行相同的编辑操作,例如调整大小、旋转、添加水印等。
此外,Photoscape还提供了批量重命名功能,可以快速重命名大量图片。
第六章:创意制作功能除了编辑功能外,Photoscape还具有一些创意制作工具,使用户可以创建个性化的设计作品。
例如,Photoscape提供了拼贴功能,可以将多张图片合并成一张。
此外,Photoscape还具有拼图和动态GIF制作工具,可以帮助用户创造出独特和有趣的图片作品。
【最新】常用p图软件谢谢邀请!给你们推荐一些4款手机上的P图软件和一款拥有PS基本功能却不到10M的电脑软件,非常强大,而且很少见,下面给你们介绍下。
1.理理相册(安卓or苹果)推荐理由:一款史上功能最多的最多的修图软件,总共136种,每一种都是功能非常有趣效果:2.照片编辑器推荐理由:一款不到5M的图片编辑器,小巧且强大,功能非常多,像ps 里面的一些基本功能都有,而且还有实用工具裁剪(拼图)、压缩ZIP、创建PDF、GIF动画、网页截图、视频截图、PDF截图3.Snapseed (安卓or苹果)推荐理由:这也是一流的修图神器,软件提供了亮度调节、细节、裁剪、旋转、变形、局部加减光、污点修复、晕影、镜头模糊、光晕特效、色调对比度调节等功能外,还提供了HDR、戏剧、粗粒胶片、复古、情怀、黑白、相框等特效滤镜。
Snapseed 的特效调整效果品质很高,其专业程度不亚于电脑上的桌面图像处理软件。
4.Enlight (苹果)推荐理由:摄影师梦寐以求的修图软件,非常专业,实现了传统 PS 式控制和艺术滤镜和效果之间的完美平衡。
现在这款软件限免,苹果用户最好快点去下载,错过了时间就要收钱了。
电脑端5.Artercury图像引擎,通过显卡核心GPU提供了强悍的图片编辑能力。
Content-AAGING)是一个对数码照片画质进行改善及效果处理的软件。
简单、易用,每个人都能制作精美相框,艺术照,专业胶片效果,而且完全免费。
不需要任何专业的图像技术,就可以制作出专业胶片摄影的色彩效果,是摄影作品后期处理、图片快速美容、数码照片冲印整理时必备的图像处理软件。
可牛影像可牛影像是一款完全免费、简单易用的图片处理软件,快速的图片库管理、强大照片美化处理、让您轻松成为数码照片处理专家。
数千张精彩场景、非主流可爱饰品、影楼特效等等,告别繁琐的PS,只需1分钟即刻化身成影像明星。
CorelDRA简体下载推荐理由:Adobe发布了Photoshop CS6的正式版,在CS6中整合了其Adobe专有的 Mercury图像引擎,通过显卡核心GPU提供了强悍的图片编辑能力。
批量操作图片处理更高效作者:俞木发来源:《电脑爱好者》2020年第18期ImagesMixer(https:∥www.zapwallpaper.fr/accueil/imagesmixer/,非索尼摄像机自带的软件)支持批量转换大小、重命名、添加水印等操作。
比如公众号文章封面图片以900像素×500像素显示效果最佳,现在可以使用ImagesMixer将原来的1920像素×1080像素图片调整为最接近上述的尺寸,同时加上公司的Logo图片作为版权水印。
首先准备好需要处理的图片,启动ImagesMixer后点击“+”,将所有需要处理的图片导入程序中。
勾选Resize,在右侧的设置框中输入900(表示图片宽度调整到900像素,高度使用默认纵横比,比如1920像素×1080像素,调整后尺寸为900像素×506像素,这样调整后的图片基本不会变形)。
勾选Watermark,点击文件夹图标,打开“C:\Program Files(x86)\ZapWall Paper\ImagesMixer\Logo”选择水印图片,在Location列表中选择图片水印的位置,Center表示居中显示(图1)。
点击“Start processing”开始处理,这样程序会依次对所有的图片进行调整大小和添加水印(具体处理进程还可以多选其他功能,如勾选Rename重命名,Effect選择处理效果),在下方的窗口中可以看到选择的处理进程(图2)。
默认处理后的图片会保存在“C:\Users\当前用户\Pictures\ImagesMixer\out”。
完成上述操作后打开上述目录,可以看到图片宽度都被调整为900像素×506像素,而且每张图片中间都自动加上了Logo图片水印(图3)。
ImagesMixer还提供了许多很酷炫的处理效果(勾选Filter,选择自己需要的效果),勾选Animated GIF(可以选择多张内容一样,颜色、饱和度不一致的图片)则可以制作出动态效果的图片(图4)。
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==安卓图片批量处理软件篇一:Android_解决图片大量下载:软引用Android 解决图片大量下载:软引用1.对象的强、软、弱和虚引用为了能更加灵活控制对象的生命周期,需要知道对象引用的4中级别,由高到低依次为:强引用、软引用、弱引用和虚引用备注:这四种的区别:⑴强引用(StrongReference)强引用是使用最普遍的引用。
如果一个对象具有强引用,那垃圾回收器绝不会回收它。
当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。
⑵软引用(SoftReference)如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。
只要垃圾回收器没有回收它,该对象就可以被程序使用。
软引用可用来实现内存敏感的高速缓存(下文给出示例)。
软引用可以和一个引用队列(ReferenceQueue)联合使用,如果软引用所引用的对象被垃圾回收器回收,Java虚拟机就会把这个软引用加入到与之关联的引用队列中。
⑶弱引用(WeakReference)弱引用与软引用的区别在于:只具有弱引用的对象拥有更短暂的生命周期。
在垃圾回收器线程扫描它所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。
不过,由于垃圾回收器是一个优先级很低的线程,因此不一定会很快发现那些只具有弱引用的对象。
弱引用可以和一个引用队列(ReferenceQueue)联合使用,如果弱引用所引用的对象被垃圾回收,Java虚拟机就会把这个弱引用加入到与之关联的引用队列中。
⑷虚引用(PhantomReference)“虚引用”顾名思义,就是形同虚设,与其他几种引用都不同,虚引用并不会决定对象的生命周期。
如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收器回收。
虚引用主要用来跟踪对象被垃圾回收器回收的活动。
虚引用与软引用和弱引用的一个区别在于:虚引用必须和引用队列(ReferenceQueue)联合使用。
当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会在回收对象的内存之前,把这个虚引用加入到与之关联的引用队列中。
ReferenceQueue queue = new ReferenceQueue ();PhantomReference pr = new PhantomReference (object, queue);程序可以通过判断引用队列中是否已经加入了虚引用,来了解被引用的对象是否将要被垃圾回收。
如果程序发现某个虚引用已经被加入到引用队列,那么就可以在所引用的对象的内存被回收之前采取必要的行动2.软引用的工作原理和作用如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。
只要垃圾回收器没有回收它,该对象就可以被程序使用。
软引用可用来实现内存敏感的高速缓存,软引用可以和一个引用队列(ReferenceQueue)联合使用,如果软引用所引用的对象被垃圾回收器回收,Java虚拟机就会把这个软引用加入到与之关联的引用队列中。
经典的写法查看:/donglinlucky/article/details/28457773.android 中关于图片大批量的图片下载和内存管理的解决方案思路:(1)根据路径图片进行下载,下载后将图片的保存在imageCache (HashTable)中,并将图片下载到本地;(2)下载到第200张左右以上,应用的内存若出现不足( SoftReference softReference 决定不会oom),android的虚拟机就开始垃圾回收对象,这个时候,获取图片时会出现 SoftReference softReference 获取的图片为null,如果为null,需要根据图片的id和路径去找到已经下载的图片,直接加载显示,如果本地就没有下载过,就直接从网络上下载;可以参考:/kf/201X07/139035.html 将图片加载这个过程封装成一个下载器,专注处理图片下载和缓存问题;这里面的用的是单线程下载,可以使用多线程下载速率更快;代码如下:public Drawable loadDrawable(final String imageUrl, final ImageCallBack imageCallback) {if (imageCache.containsKey(imageUrl)) {SoftReference<Drawable> softReference = imageCache.get(imageUrl);Drawable drawable = softReference.get();if (drawable != null) {return drawable;}}final Handler handler = new Handler() {@Overridepublic void handleMessage(Message message) {imageCallback.imageLoaded((Drawable) message.obj, imageUrl);}};new Thread() {@Overridepublic void run() {Drawable drawable = null;try {drawable = getDrawable(imageUrl);imageCache.put(imageUrl, new SoftReference<Drawable>(drawable));} catch (Exception e) {e.printStackTrace();}Message message = handler.obtainMessage(0, drawable);handler.sendMessage(message);}}.start();return null;}private Drawable getDrawable(String urlString) throws Exception {if(!NetTools.isWifiConnected(context)){getImage = DataPreference.getIsAutoGetPicture(context);}else{getImage = true;}String fileName = urlString.substring(stIndexOf("/") + 1).trim();File cacheFile = null; 极客Androidif(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNT ED)) {//sdcard已挂载 cacheFile = new File(shopPicInSdcard + fileName);if (getImage) {if (!cacheFile.exists() && cacheFile.createNewFile()) {//缓存文件不存在&&创建了该文件,下载缓存图片到SdcardInputStream inputStream = getInputStreamFromHttp(urlString);writeCacheFile2SDCard(cacheFile, readStream(inputStream));}return BitmapDrawable.createFromPath(shopPicInSdcard + fileName);} else {return null;}} else {//只有在没有sdcard的时候才从网上获取数据流if (getImage) {InputStream inputStream = getInputStreamFromHttp(urlString);return Drawable.createFromStream(inputStream, urlString);} else {return null;}}}4.android 在listview getView的时候对图片的处理方式;主要对listview 中的效率优化.篇二:Android批量图片加载经典系列——采用二级缓存、异步加载网络图片(烟台杰瑞教育Android培训部原创)Android批量图片加载经典系列——采用二级缓存、异步加载网络图片Android应用中经常涉及从网络中加载大量图片,为提升加载速度和效率,减少网络流量都会采用二级缓存和异步加载机制,所谓二级缓存就是通过先从内存中获取、再从文件中获取,最后才会访问网络。
内存缓存(一级)本质上是Map集合以key-value对的方式存储图片的url和Bitmap信息,由于内存缓存会造成堆内存泄露,管理相对复杂一些,可采用第三方组件,对于有经验的可自己编写组件,而文件缓存比较简单通常自己封装一下即可。
下面就通过案例看如何实现网络图片加载的优化。
案例新闻的列表图片下面先看看实现一级缓存(内存)、二级缓存(磁盘文件)所编写的组件在内存中存储图片(一级缓存), 采用了1个map来缓存图片代码如下:public class MemoryCache {// 最大的缓存数private static final int MAX_CACHE_CAPACITY = 30;//用Map软引用的Bitmap对象, 保证内存空间足够情况下不会被垃圾回收private HashMap<String, SoftReference<Bitmap>> mCacheMap =new LinkedHashMap<String, SoftReference<Bitmap>>() {private static final long serialVersionUID = 1L;//当缓存数量超过规定大小(返回true)会清除最早放入缓存的protected boolean removeEldestEntry(Map.Entry<String,SoftReference<Bitmap>> eldest){return size() > MAX_CACHE_CAPACITY;};};/*** 从缓存里取出图片* @param id* @return 如果缓存有,并且该图片没被释放,则返回该图片,否则返回null*/public Bitmap get(String id){if(!mCacheMap.containsKey(id)) return null;SoftReference<Bitmap> ref = mCacheMap.get(id);return ref.get();}/*** 将图片加入缓存* @param id* @param bitmap*/public void put(String id, Bitmap bitmap){mCacheMap.put(id, new SoftReference<Bitmap>(bitmap));}/*** 清除所有缓存*/public void clear() {try {for(Map.Entry<String,SoftReference<Bitmap>>entry :mCacheMap.entrySet( )) { SoftReference<Bitmap> sr = entry.getValue();if(null != sr) {Bitmap bmp = sr.get();if(null != bmp) bmp.recycle();}}mCacheMap.clear();} catch (Exception e) {e.printStackTrace();}}}在磁盘中缓存图片(二级缓存),代码如下public class FileCache {//缓存文件目录private File mCacheDir;/*** 创建缓存文件目录,如果有SD卡,则使用SD,如果没有则使用系统自带缓存目录* @param context* @param cacheDir 图片缓存的一级目录*/public FileCache(Context context, File cacheDir, String dir){if(android.os.Environment.getExternalStorageState().equals、(android.os.Environment.MEDIA_MOUNTED))mCacheDir = new File(cacheDir, dir);elsemCacheDir = context.getCacheDir();// 如何获取系统内置的缓存存储路径if(!mCacheDir.exists()) mCacheDir.mkdirs();}public File getFile(String url){File f=null;try {//对url进行编辑,解决中文路径问题String filename = URLEncoder.encode(url,"utf-8");f = new File(mCacheDir, filename);} catch (UnsupportedEncodingException e) {e.printStackTrace();}return f;}public void clear(){//清除缓存文件File[] files = mCacheDir.listFiles();for(File f:files)f.delete();}}android中采用单线程模型即应用运行在UI主线程中,且Android又是实时操作系统要求及时响应否则出现ANR错误,因此对于耗时操作要求不能阻塞UI主线程,需要开启一个线程处理(如本应用中的图片加载)并将线程放入队列中,当运行完成后再通知UI主线程进行更改,同时移除任务——这就是异步任务,在android中实现异步可通过本系列一中所用到的AsyncTask或者使用thread+handler机制,在这里是完全是通过代码编写实现的,这样我们可以更清晰的看到异步通信的实现的本质,代码如下public class AsyncImageLoader{private MemoryCache mMemoryCache;//内存缓存private FileCache mFileCache;//文件缓存private ExecutorService mExecutorService;//线程池//记录已经加载图片的ImageViewprivate Map<ImageView, String> mImageViews = Collections.synchronizedMap(new WeakHashMap<ImageView, String>());//保存正在加载图片的urlprivate List<LoadPhotoTask> mTaskQueue = newArrayList<LoadPhotoTask>(); /*** 默认采用一个大小为5的线程池* @param context* @param memoryCache 所采用的高速缓存* @param fileCache 所采用的文件缓存*/public AsyncImageLoader(Context context, MemoryCache memoryCache, FileCache fileCache) {mMemoryCache = memoryCache;mFileCache = fileCache;mExecutorService = Executors.newFixedThreadPool(5);//建立一个容量为5的固定尺寸的线程池(最大正在运行的线程数量)}/*** 根据url加载相应的图片* @param url* @return 先从一级缓存中取图片有则直接返回,如果没有则异步从文件(二级缓存)中取,如果没有再从网络端获取*/public Bitmap loadBitmap(ImageView imageView, String url) {//先将ImageView记录到Map中,表示该ui已经执行过图片加载了mImageViews.put(imageView, url);Bitmap bitmap = mMemoryCache.get(url);//先从一级缓存中获取图片if(bitmap == null) {enquequeLoadPhoto(url, imageView);//再从二级缓存和网络中获取}return bitmap;}/*** 加入图片下载队列* @param url*/private void enquequeLoadPhoto(String url, ImageView imageView) {//如果任务已经存在,则不重新添加if(isTaskExisted(url))return;LoadPhotoTask task = new LoadPhotoTask(url, imageView);synchronized (mTaskQueue) {mTaskQueue.add(task);//将任务添加到队列中}mExecutorService.execute(task);//向线程池中提交任务,如果没有达到上限(5),则运行否则被阻塞}/*** 判断下载队列中是否已经存在该任务* @param url* @return*/篇三:批量处理相片大小为20K以下的方法更改相片大小为20K以下的方法(图文详解、可以批处理)*如果已经有裁好的一寸相片,用光影魔术手进行批量修改尺寸大小就可以了。