[AIR]批量修改目录中图片的操作方式

本文介绍了一个用于批量修改或合并图片的小工具开发过程。该工具能够按照特定规则读取指定目录下的图片文件,并进行高效处理及合成,最终转换为jpg格式以节省存储空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【需求来源】业务部门需要,为了节省修片同事的工作量

【具体需求】需要一个小工具,按照一定的规矩,大批量的修改或合并图片


通过需求分析,大概知道了这个工具中需要用到的方法,目录读取 (File),遍历目录中所有图片(list),还有一个规则的制定(startID,endID),然后就是图片处理合成(BitmapData)


1.前面的功能都挺简单的,所以直接忽略:

var picVect:Vector.<String > ;  //图片地址列表
//获取图片目录下所有的图片文件
function getFilesBytes(patch:String):Vector.<String > 
{
	var file:File = File.applicationDirectory.resolvePath(patch);
	var list:Array = file.getDirectoryListing();
	var vect:Vector.<String> = new Vector.<String> ();
	for (var i:uint=0; i<list.length; i++)
	{
		var subfile:File = list[i] as File;
		debugInfo("路径:"+subfile.nativePath+"文件名:"+subfile.name);
		if (subfile.nativePath.indexOf("xml") == -1)
		{
			vect.push(subfile.nativePath);
		}
	}
	return vect;
}

2.图片地址有了,就是loader加载器按照规则去加载图片,然后依依处理或合并后再合成,这个逻辑是具体业务需求了,所以也不提供太具体的代码,毕竟这里不牵涉太多的功能设计,只是业务逻辑

3.图片合成,这里就是技术难点,因为所处理的图片像素都比较大,单张图的效率就已经不乐观了,还要批量。

尝试过多种方式,最后总结效率较高的思路是:

图片加载成功后---------------按业务需求处理图片---------------------处理完毕后有一个BitmapData-----------利用 BMPEncoder ,获得ByteArray-----FileStream直接写入本地文件------利用convert.exe,配置好参数bmp格式转jpg

为什么不直接写入jpg,因为经过测试,写入jpg的时候,开销太大,运行不流畅,所以这个动作交给第三方工具代为处理,只要传入合适的参数即可


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值