Maison >développement back-end >tutoriel php >Partage de classe de traitement d'icônes de taille personnalisée PHP

Partage de classe de traitement d'icônes de taille personnalisée PHP

*文
*文original
2018-01-02 17:18:461312parcourir

Partage de la classe de traitement d'icônes de taille personnalisée PHP. Cet article partage principalement le script php (exemple) pour générer des icônes de différentes tailles en un seul clic pour votre référence. J'espère que cela aide tout le monde.

Les exemples sont les suivants :

<?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;]); 
} 
 
?>

Recommandations associées :

Classe de traitement d'image PHP forte

Comment implémenter des vignettes d'images en php

transparence d'image ppt php ajouter de la transparence aux images Effet dégradé

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn