用php切割大图片为成规则的小图
将根据xml配置,将合并后的大图切割成一系列小图
<?php
/**
* 将大图片按照配置切割成一定比例的小图片
* 并按照一定规则给小图片命名
*
* 使用方法:
*根据guardians/g1目录下的Attack_1.xml配置切割Attack_1.png
*也可批量切割(我写的是批量切割)
*
* 注:需要GD2支持
*/
// echo "{${phpinfo()}}";
header("Cache-Control:no-cache,must-revalidate"); //不使用缓存 for ($i=1; $i < 100; $i++) {
$filename="guardians/g".$i."/Attack_1.png";//大图文件
$tempdir="temp";//小图存放目录
//判断文件是否存在 不存在就切割完毕
if(file_exists($filename)){
if(!file_exists($tempdir)) mkdir($tempdir);
}
$xml=simplexml_load_file("guardians/g".$i."/Attack_1.xml");
echo "guardians/g".$i."/Attack_1.xml<br>";
$j = 1;
foreach($xml -> SubTexture as $SubTexture){
$attri = $SubTexture->attributes();
$picW=$attri->frameWidth; //切割小图的宽
$picH=$attri->frameHeight;
//为支持大图片增加内存限制
ini_set( 'memory_limit', '220M' ); //切割小图的高
echo $picW.",".$picH."<br>";
list($width, $height, $type, $attr) = getimagesize($filename); $image = imagecreatefrompng($filename);
//透明背景
$im = imagecreatetruecolor((int)$picW, (int)$picH) or die("Cannot Initialize new GD image stream");//创建小图像
imagealphablending($im, false);
imagesavealpha($im, true);
$white = imagecolorallocatealpha($im,255,255,255,127);
imagefill($im,0,0,$white); $picX=$attri->width;//获取截取图片的宽度
$picY=$attri->height;//获取截取图片的高度
echo $picX.",".$picY."<br>";
$frameX = $attri->frameX;
$frameY = $attri->frameY;
$x = $attri->x;
$y = $attri->y; echo $frameX.",".$picY."<br>";
imagecopy ( $im, $image, -(int)$frameX, -(int)$frameY, (int)$x, (int)$y, (int)$picX, (int)$picY );//拷贝大图片的一部分到小图片
imagepng($im,$tempdir."/g".$i."_Attack_1_".$j.".png",0, 75);//创建小图片到磁盘,输出质量为75(0~100)
echo $tempdir."/g".$i."_Attack_1_".$j.".png". "<br>";
$j = $j + 1;
imagedestroy($im);//释放与 $im 关联的内存
imagedestroy($image);//释放与 $image 关联的内存 }
} echo " complate";
?>
完成后会在temp目录下生成小图,确保temp目录是要写的权限
用php切割大图片为成规则的小图的更多相关文章
- Android大图片之缩略图,以及对原图依照指定宽高裁剪成缩略图
<Android大图片之变换缩略图,以及对原始大图片依照指定宽.高裁剪成缩略图> 在Android的ImageView载入图像资源过程中,出于性能和内存开销的须要.有时候须要把一个原 ...
- python智能图片识别系统(图片切割、图片识别、区别标识)
@ 目录 技术介绍 运行效果 关键代码 写在最后 技术介绍 你好! python flask图片识别系统使用到的技术有:图片背景切割.图片格式转换(pdf转png).图片模板匹配.图片区别标识. 运行 ...
- HTML5将图片转化成字符画
HTML5将图片转化成字符画 字符画大家一定非常熟悉了,那么如何把一张现有的图片转成字符画呢?HTML5让这个可能变成了现实,通过canvas,可以很轻松实现这个功能.其实原理很简单:扫描图片相应位置 ...
- Android相机使用(系统相机、自定义相机、大图片处理)
本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显示出来,该例子也会涉及到Android加载大图片时候的处理(避免OOM),还有简要提一下有些人Surf ...
- Android大图片裁剪终极解决方案(上:原理分析)
转载声明:Ryan的博客文章欢迎您的转载,但在转载的同时,请注明文章的来源出处,不胜感激! :-) http://my.oschina.net/ryanhoo/blog/86842 约几个月前,我正 ...
- 减少HTTP请求之将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片(大型网站优化技术)
在网站开发过程中,对于页面的加载效率一般都想尽办法求快.那么,怎么让才能更快呢?减少页面请求 是一个优化页面加载速度很好的方法.上一篇博文我们讲解了 “利用将小图标合成一张背景图来减少HTTP请求”, ...
- 小tip: 使用CSS将图片转换成模糊(毛玻璃)效果
去年盛夏之时,曾写过“小tip: 使用CSS将图片转换成黑白”一文,本文的模式以及内容其实走得是类似路线.CSS3 → SVG → IE filter → canvas. 前段时间,iOS7不是瓜未熟 ...
- Android大图片裁剪终极解决方案 原理分析
约几个月前,我正为公司的APP在Android手机上实现拍照截图而烦恼不已. 上网搜索,确实有不少的例子,大多都是抄来抄去,而且水平多半处于demo的样子,可以用来讲解知识点,但是一碰到实际项目,就漏 ...
- [转] 小tip: 使用CSS将图片转换成模糊(毛玻璃)效果 ---张鑫旭
by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=3804 去年盛夏之时, ...
随机推荐
- http://blog.csdn.net/dyllove98/article/details/7706218
http://blog.csdn.net/dyllove98/article/details/7706218
- [topcoder]KingdomReorganization
http://community.topcoder.com/stat?c=problem_statement&pm=11282&rd=14724 这道题是最小生成树,但怎么转化是关键. ...
- asp.net中bin目录下的 dll.refresh文件
首先找到了这篇文章http://www.cnblogs.com/haokaibo/archive/2010/07/31/1789342.html 然后找到一篇英文的文章http://monsur.xa ...
- OnClientClick事件
1.OnClientClick="return validation()" //注意return 2.//默认情况下返回true function validation() ...
- suse系统FTP问题
1.修改FTP端口问题 在 这个配置文件中vi /etc/vsftpd.conf 添加 Listen_port=34 vi /etc/services ftp 21/tcp # F ...
- ARM学习笔记13——LED驱动程序设计
首先我们要根据开发板原理图得到控制LED灯的引脚是哪个,我们现在以LED1为例,我们已经知道LED1由S5PV210的GPC1_3控制,因此我们按如下步骤进行: 第一步是配制S5PV210的GPC1_ ...
- 特性扩展:WebActivatorEx
WebActivator: PreApplicationStartMethod 属性,用于标记作为东西您获取 Web 应用程序启动时调用的方法,在Application_Start前. PostApp ...
- Android 播放视频并获取指定时间的帧画面
最近做的项目要求既能播放视频(类似于视频播放器),又能每隔1s左右获取一帧视频画面,然后对图片进行处理,调查了一周,也被折磨了一周,总算找到了大致符合要求的方法.首先对调查过程中涉及到的方法进行简单介 ...
- storyboard ID
The storyboard ID is a String field that you can use to create a new ViewController based on that st ...
- windows ntp安装及调试
Setting up NTP on Windows It's very helpful that Meinberg have provided an installer for the highly- ...