用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 去年盛夏之时, ...
随机推荐
- King(差分约束)
http://poj.org/problem?id=1364 题意真心看不大懂啊... 现在假设有一个这样的序列,S={a1,a2,a3,a4...ai...at}其中ai=a*si,其实这句可以忽略 ...
- zabbix3.0配置邮件报警
我们部署一套监控软件,报警这一块自然不可或缺,接下来我们看看zabbix如何实现邮件报警. 1.编写发送邮件的脚本 zabbix通脚本发送邮件,遵循的传参格式为: 脚本 收件人 标题 邮件 ...
- Excel和XML文件导入
using System;using System.Collections;using System.Collections.Generic;using System.Configuration;us ...
- OracleHelper[.Net 连接Oracle数据库的封装类]
using System; using System.Configuration; using System.Data; using System.Data.OracleClient; using S ...
- Monkey Test
以前写的,可以在报错后抓Log. ::运行此脚本前,请确认手机是否已连接至PC且已开启Debug模式 @echo off REM 循环十次 set /a Num=0 :loop set /a Num+ ...
- 在Apache上部署Django
跟php类似,要想使Apache能够处理python脚本(实际上Apache是不能处理脚本的,只是利用别的扩展模块处理相应脚本),就要给Apache安装相应的扩展模块. Apache起初的python ...
- WP8模拟器需要BIOS开启虚拟化支持(转载)
在BIOS里启用hypervisor和virtualization,然后安装WP8 SDK. 如果出现“当前用户未添加到Hyper-V管理组时”, 以管理员身份运行CMD: net localgrou ...
- [comparator] 策略模式
我们知道策略模式,首先是各种策略可以替换,其实我们常见的Arrays.sort();中可以指定比较器,实现comparator接口的比较器,作为对象传入,这不就是策略模式吗,好理解吧
- leecode 树是否是平衡树 java
https://oj.leetcode.com/problems/validate-binary-search-tree/ 1.中序遍历是否有序 /** * Definition for binary ...
- GCC内联汇编入门
原文为GCC-Inline-Assembly-HOWTO,在google上可以找到原文,欢迎指出翻译错误. 中文版说明 由于译者水平有限,故译文出错之处,还请见谅.C语言的关键字不译,一些单词或词组( ...