Home > Backend Development > PHP Tutorial > PHP custom size icon processing class sharing

PHP custom size icon processing class sharing

*文
Release: 2023-03-18 22:56:01
Original
1294 people have browsed it

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 = &#39;&#39;;    //图片后缀名 
 
  switch($img_infos[2]) 
  { 
    case 1: 
      $img_extension = &#39;gif&#39;; 
      break; 
    case 2: 
      $img_extension = &#39;jpeg&#39;; 
      break; 
    case 3: 
      $img_extension = &#39;png&#39;; 
      break; 
    default: 
      $img_extension = &#39;jpeg&#39;; 
      break; 
  } 
 
  $new_img_size = array(); 
  $new_img_size[&#39;width&#39;] = $max_width; 
  $new_img_size[&#39;height&#39;] = $max_height; 
   
  $img_func = &#39;&#39;;   //函数名称 
  $img_handle = &#39;&#39;;  //图片句柄 
  $thum_handle = &#39;&#39;; //略图图片句柄 
 
  switch($img_extension) 
  { 
    case &#39;jpg&#39;: 
      $img_handle = imagecreatefromjpeg($img_name); 
      $img_func = &#39;imagejpeg&#39;; 
      break; 
    case &#39;jpeg&#39;: 
      $img_handle = imagecreatefromjpeg($img_name); 
      $img_func = &#39;imagejpeg&#39;; 
      break; 
    case &#39;png&#39;: 
      $img_handle = imagecreatefrompng($img_name); 
      imagesavealpha($img_handle, true); 
      $img_func = &#39;imagepng&#39;; 
      break; 
    case &#39;gif&#39;: 
      $img_handle = imagecreatefromgif($img_name); 
      $img_func = &#39;imagegif&#39;; 
      break; 
    default: 
      $img_handle = imagecreatefromjpeg($img_name); 
      $img_func = &#39;imagejpeg&#39;; 
      break; 
  } 
 
  $quality = 100;//图片质量 
  if($img_func == &#39;imagepng&#39;) 
  { 
    $quality = 9; 
  }  
 
  $thum_handle = imagecreatetruecolor($new_img_size[&#39;height&#39;],$new_img_size[&#39;width&#39;]); 
  imagealphablending($thum_handle,false);//这里很重要,意思是不合并颜色,直接用$img图像颜色替换,包括透明色; 
  imagesavealpha($thum_handle,true);//这里很重要,意思是不要丢了$thumb图像的透明色; 
 
  if(function_exists(&#39;imagecopyresampled&#39;)) 
  { 
    imagecopyresampled($thum_handle,$img_handle, 0, 0, 0, 0,$new_img_size[&#39;height&#39;],$new_img_size[&#39;width&#39;],$img_height,$img_width); 
  }  
  else  
  { 
    imagecopyresized($thum_handle,$img_handle, 0, 0, 0, 0,$new_img_size[&#39;height&#39;],$new_img_size[&#39;width&#39;],$img_height,$img_width); 
  } 
 
  call_user_func_array($img_func,array($thum_handle,$path.&#39;/&#39;.$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[&#39;width&#39;],$IconType[&#39;height&#39;],$IconType[&#39;path&#39;],$IconType[&#39;name&#39;]); 
} 
 
foreach ($IconArray["IOS"] as $key => $IconType)  
{ 
  thumb("icon.png",$IconType[&#39;width&#39;],$IconType[&#39;height&#39;],$IconType[&#39;path&#39;],$IconType[&#39;name&#39;]); 
} 
 
foreach ($IconArray["ANDROID"] as $key => $IconType)  
{ 
  thumb("icon.png",$IconType[&#39;width&#39;],$IconType[&#39;height&#39;],$IconType[&#39;path&#39;],$IconType[&#39;name&#39;]); 
} 
 
?>
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template