本文介紹了使用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 style="background-color:#eee"> <div class="pic11_css3"> </div> <div class="pic11_firefox"> </div> <div class="pic11_chrome"> </div> <span class="css3"> </span> <span class="sprite firefox"> </span> </body>