PHP custom size icon processing class sharing. This article mainly shares the php script (example) for generating Icon of various sizes with one click for your reference. I hope to be helpful.
The examples are as follows:
<?php /** * @name thumb 缩略图函数 * @param sting $img_name 图片路径 * @param int $max_width 略图最大宽度 * @param int $max_height 略图最大高度 * @param sting $suffix 略图后缀(如"img_x.jpg"代表小图,"img_m.jpg"代表中图,"img_l.jpg"代表大图) * @return void */ function thumb($img_name,$max_width,$max_height,$path,$new_name) { $img_infos = getimagesize($img_name); $img_height = $img_infos[0];//图片高 $img_width = $img_infos[1]; //图片宽 $img_extension = ''; //图片后缀名 switch($img_infos[2]) { case 1: $img_extension = 'gif'; break; case 2: $img_extension = 'jpeg'; break; case 3: $img_extension = 'png'; break; default: $img_extension = 'jpeg'; break; } $new_img_size = array(); $new_img_size['width'] = $max_width; $new_img_size['height'] = $max_height; $img_func = ''; //函数名称 $img_handle = ''; //图片句柄 $thum_handle = ''; //略图图片句柄 switch($img_extension) { case 'jpg': $img_handle = imagecreatefromjpeg($img_name); $img_func = 'imagejpeg'; break; case 'jpeg': $img_handle = imagecreatefromjpeg($img_name); $img_func = 'imagejpeg'; break; case 'png': $img_handle = imagecreatefrompng($img_name); imagesavealpha($img_handle, true); $img_func = 'imagepng'; break; case 'gif': $img_handle = imagecreatefromgif($img_name); $img_func = 'imagegif'; break; default: $img_handle = imagecreatefromjpeg($img_name); $img_func = 'imagejpeg'; break; } $quality = 100;//图片质量 if($img_func == 'imagepng') { $quality = 9; } $thum_handle = imagecreatetruecolor($new_img_size['height'],$new_img_size['width']); imagealphablending($thum_handle,false);//这里很重要,意思是不合并颜色,直接用$img图像颜色替换,包括透明色; imagesavealpha($thum_handle,true);//这里很重要,意思是不要丢了$thumb图像的透明色; if(function_exists('imagecopyresampled')) { imagecopyresampled($thum_handle,$img_handle, 0, 0, 0, 0,$new_img_size['height'],$new_img_size['width'],$img_height,$img_width); } else { imagecopyresized($thum_handle,$img_handle, 0, 0, 0, 0,$new_img_size['height'],$new_img_size['width'],$img_height,$img_width); } call_user_func_array($img_func,array($thum_handle,$path.'/'.$new_name,$quality)); imagedestroy($thum_handle);//清除句柄 imagedestroy($img_handle);//清除句柄 } $IconArray = array ( "IOS8" => array ( array("width" => 180, "height"=> 180, "path"=>"ios8", "name"=>"Icon-180.png"), array("width" => 120, "height"=> 120, "path"=>"ios8", "name"=>"Icon-120.png"), array("width" => 152, "height"=> 152, "path"=>"ios8", "name"=>"Icon-152.png"), array("width" => 76, "height"=> 76, "path"=>"ios8", "name"=>"Icon-76.png"), array("width" => 144, "height"=> 144, "path"=>"ios8", "name"=>"Icon-144.png"), array("width" => 72, "height"=> 72, "path"=>"ios8", "name"=>"Icon-72.png"), array("width" => 114, "height"=> 114, "path"=>"ios8", "name"=>"Icon-114.png"), array("width" => 57, "height"=> 57, "path"=>"ios8", "name"=>"Icon-57.png"), array("width" => 100, "height"=> 100, "path"=>"ios8", "name"=>"Icon-100.png"), array("width" => 50, "height"=> 50, "path"=>"ios8", "name"=>"Icon-50.png"), array("width" => 80, "height"=> 80, "path"=>"ios8", "name"=>"Icon-80.png"), array("width" => 40, "height"=> 40, "path"=>"ios8", "name"=>"Icon-40.png"), array("width" => 58, "height"=> 58, "path"=>"ios8", "name"=>"Icon-58.png"), array("width" => 29, "height"=> 29, "path"=>"ios8", "name"=>"Icon-29.png"), ), "IOS" => array ( array("width" => 180, "height"=> 180, "path"=>"ios", "name"=>"Icon-60@3x.png"), array("width" => 120, "height"=> 120, "path"=>"ios", "name"=>"Icon-60@2x.png"), array("width" => 152, "height"=> 152, "path"=>"ios", "name"=>"Icon-76@2x.png"), array("width" => 76, "height"=> 76, "path"=>"ios", "name"=>"Icon-76.png"), array("width" => 144, "height"=> 144, "path"=>"ios", "name"=>"Icon-72@2x.png"), array("width" => 72, "height"=> 72, "path"=>"ios", "name"=>"Icon-72.png"), array("width" => 114, "height"=> 114, "path"=>"ios", "name"=>"Icon-57@2x.png"), array("width" => 57, "height"=> 57, "path"=>"ios", "name"=>"Icon-57.png"), array("width" => 100, "height"=> 100, "path"=>"ios", "name"=>"Icon-50@2x.png"), array("width" => 50, "height"=> 50, "path"=>"ios", "name"=>"Icon-50.png"), array("width" => 80, "height"=> 80, "path"=>"ios", "name"=>"Icon-40@2x.png"), array("width" => 40, "height"=> 40, "path"=>"ios", "name"=>"Icon-40.png"), array("width" => 58, "height"=> 58, "path"=>"ios", "name"=>"Icon-29@2x.png"), array("width" => 29, "height"=> 29, "path"=>"ios", "name"=>"Icon-29.png"), ) , "ANDROID" => array ( array("width" => 144, "height" => 144, "path" => "android/drawable", "name"=>"icon.png"), array("width" => 144, "height" => 144, "path" => "android/drawable-xhdpi", "name"=>"icon.png"), array("width" => 72, "height" => 72, "path" => "android/drawable-hdpi", "name"=>"icon.png"), array("width" => 48, "height" => 48, "path" => "android/drawable-mdpi", "name"=>"icon.png"), array("width" => 32, "height" => 32, "path" => "android/drawable-ldpi", "name"=>"icon.png") ) ); foreach ($IconArray["IOS8"] as $key => $IconType) { thumb("icon.png",$IconType['width'],$IconType['height'],$IconType['path'],$IconType['name']); } foreach ($IconArray["IOS"] as $key => $IconType) { thumb("icon.png",$IconType['width'],$IconType['height'],$IconType['path'],$IconType['name']); } foreach ($IconArray["ANDROID"] as $key => $IconType) { thumb("icon.png",$IconType['width'],$IconType['height'],$IconType['path'],$IconType['name']); } ?>
Related recommendations:
Strong PHP image processing class
php How to implement image thumbnails
ppt image transparency php Add transparency gradient to the image Effect
The above is the detailed content of PHP custom size icon processing class sharing. For more information, please follow other related articles on the PHP Chinese website!