php创建sprite

php创建sprite

本文介绍了使用PHP根据文件夹内的图片生成sprite合成图示例,需要的朋友可以参考下

代码如下:

<?php

$srcdir='./image/';

$prefix="pic11_";

$dst="image";

$imagedir=scandir($srcdir);

array_shift($imagedir);

array_shift($imagedir);

$width=0;

$height=0;

foreach ($imagedir as $key => $value) {

$picinfo=getimagesize($srcdir.$value);

$width=$picinfo[0]+$width;

if ($height<$picinfo[1]) {

$height=$picinfo[1];

}

}

$image=imagecreatetruecolor($width,$height);

imagesavealpha($image, true);

$color=imagecolorallocatealpha($image,0,0,0,127) ;

imagefill($image, 0, 0, $color);

$width=0;

$height=0;

$css="";

foreach ($imagedir as $key => $value) {

$picinfo=getimagesize($srcdir.$value);

$im=imagecreatefrompng($srcdir.$value); //创建image

imagecopymerge($image, $im, $width, 0, 0, 0, $picinfo[0], $picinfo[1],100);

$picname=pathinfo($srcdir.$value);

$css=".".$prefix.$picname['filename']."{height:".$picinfo[0]."px;width:".$picinfo[1]."px;background-position: -".$width."px 0px;}".$css;

$width=$width+$picinfo[0];

imagedestroy($im); //销毁image

}

$css=$css."[class*=".$prefix."]{background-image:url('image.png');}}";

$css=$css.".".$prefix."{background-image:url('image.png');}"; //兼容ie 系列

file_put_contents("./".$dst.'.css',$css);

imagepng($image,"./".$dst.'.png');

imagedestroy($image);

?>

<link rel="stylesheet" type="text/css" href="./image.css">

<!-- <img src="./image.png"> -->

<body >

<div >

</div>

<div >

</div>

<div >

</div>

<span >

</span>

<span >

</span>

</body>