亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

PHP基于yii框架實現生成ICO圖標

2024-05-04 23:40:20
字體:
來源:轉載
供稿:網友

本文給大家分享了2則php生成ICO圖標的代碼,第一款是基于YII框架實現的,第二款是純php編寫,都非常的不錯,有需要的小伙伴可以參考下

1,phpthumb_ico 是生成ICO圖標的類,源碼如下

 

 
  1. class phpthumb_ico { 
  2.  
  3. function phpthumb_ico() { 
  4. return true
  5.  
  6.  
  7. function GD2ICOstring(&$gd_image_array) { 
  8. foreach ($gd_image_array as $key => $gd_image) { 
  9.  
  10. $ImageWidths[$key] = ImageSX($gd_image); 
  11. $ImageHeights[$key] = ImageSY($gd_image); 
  12. $bpp[$key] = ImageIsTrueColor($gd_image) ? 32 : 24; 
  13. $totalcolors[$key] = ImageColorsTotal($gd_image); 
  14.  
  15. $icXOR[$key] = ''
  16. for ($y = $ImageHeights[$key] - 1; $y >= 0; $y--) { 
  17. for ($x = 0; $x < $ImageWidths[$key]; $x++) { 
  18. $argb = $this->GetPixelColor($gd_image, $x, $y); 
  19. $a = round(255 * ((127 - $argb['alpha']) / 127)); 
  20. $r = $argb['red']; 
  21. $g = $argb['green']; 
  22. $b = $argb['blue']; 
  23.  
  24. if ($bpp[$key] == 32) { 
  25. $icXOR[$key] .= chr($b).chr($g).chr($r).chr($a); 
  26. } elseif ($bpp[$key] == 24) { 
  27. $icXOR[$key] .= chr($b).chr($g).chr($r); 
  28.  
  29. if ($a < 128) { 
  30. @$icANDmask[$key][$y] .= '1'
  31. else { 
  32. @$icANDmask[$key][$y] .= '0'
  33. // mask bits are 32-bit aligned per scanline 
  34. while (strlen($icANDmask[$key][$y]) % 32) { 
  35. $icANDmask[$key][$y] .= '0'
  36. $icAND[$key] = ''
  37. foreach ($icANDmask[$key] as $y => $scanlinemaskbits) { 
  38. for ($i = 0; $i < strlen($scanlinemaskbits); $i += 8) { 
  39. $icAND[$key] .= chr(bindec(str_pad(substr($scanlinemaskbits, $i, 8), 8, '0', STR_PAD_LEFT))); 
  40.  
  41.  
  42. foreach ($gd_image_array as $key => $gd_image) { 
  43. $biSizeImage = $ImageWidths[$key] * $ImageHeights[$key] * ($bpp[$key] / 8); 
  44.  
  45. // BITMAPINFOHEADER - 40 bytes 
  46. $BitmapInfoHeader[$key] = ''
  47. $BitmapInfoHeader[$key] .= "/x28/x00/x00/x00"// DWORD biSize; 
  48. $BitmapInfoHeader[$key] .= $this->LittleEndian2String($ImageWidths[$key], 4); // LONG biWidth; 
  49. // The biHeight member specifies the combined 
  50. // height of the XOR and AND masks. 
  51. $BitmapInfoHeader[$key] .= $this->LittleEndian2String($ImageHeights[$key] * 2, 4); // LONG biHeight; 
  52. $BitmapInfoHeader[$key] .= "/x01/x00"// WORD biPlanes; 
  53. $BitmapInfoHeader[$key] .= chr($bpp[$key])."/x00"// wBitCount; 
  54. $BitmapInfoHeader[$key] .= "/x00/x00/x00/x00"// DWORD biCompression; 
  55. $BitmapInfoHeader[$key] .= $this->LittleEndian2String($biSizeImage, 4); // DWORD biSizeImage; 
  56. $BitmapInfoHeader[$key] .= "/x00/x00/x00/x00"// LONG biXPelsPerMeter; 
  57. $BitmapInfoHeader[$key] .= "/x00/x00/x00/x00"// LONG biYPelsPerMeter; 
  58. $BitmapInfoHeader[$key] .= "/x00/x00/x00/x00"// DWORD biClrUsed; 
  59. $BitmapInfoHeader[$key] .= "/x00/x00/x00/x00"// DWORD biClrImportant; 
  60.  
  61.  
  62. $icondata = "/x00/x00"// idReserved; // Reserved (must be 0) 
  63. $icondata .= "/x01/x00"// idType; // Resource Type (1 for icons) 
  64. $icondata .= $this->LittleEndian2String(count($gd_image_array), 2); // idCount; // How many images? 
  65.  
  66. $dwImageOffset = 6 + (count($gd_image_array) * 16); 
  67. foreach ($gd_image_array as $key => $gd_image) { 
  68. // ICONDIRENTRY idEntries[1]; // An entry for each image (idCount of 'em) 
  69.  
  70. $icondata .= chr($ImageWidths[$key]); // bWidth; // Width, in pixels, of the image 
  71. $icondata .= chr($ImageHeights[$key]); // bHeight; // Height, in pixels, of the image 
  72. $icondata .= chr($totalcolors[$key]); // bColorCount; // Number of colors in image (0 if >=8bpp) 
  73. $icondata .= "/x00"// bReserved; // Reserved ( must be 0) 
  74.  
  75. $icondata .= "/x01/x00"// wPlanes; // Color Planes 
  76. $icondata .= chr($bpp[$key])."/x00"// wBitCount; // Bits per pixel 
  77.  
  78. $dwBytesInRes = 40 + strlen($icXOR[$key]) + strlen($icAND[$key]); 
  79. $icondata .= $this->LittleEndian2String($dwBytesInRes, 4); // dwBytesInRes; // How many bytes in this resource? 
  80.  
  81. $icondata .= $this->LittleEndian2String($dwImageOffset, 4); // dwImageOffset; // Where in the file is this image? 
  82. $dwImageOffset += strlen($BitmapInfoHeader[$key]); 
  83. $dwImageOffset += strlen($icXOR[$key]); 
  84. $dwImageOffset += strlen($icAND[$key]); 
  85.  
  86. foreach ($gd_image_array as $key => $gd_image) { 
  87. $icondata .= $BitmapInfoHeader[$key]; 
  88. $icondata .= $icXOR[$key]; 
  89. $icondata .= $icAND[$key]; 
  90.  
  91. return $icondata; 
  92.  
  93. function LittleEndian2String($number, $minbytes=1) { 
  94. $intstring = ''
  95. while ($number > 0) { 
  96. $intstring = $intstring.chr($number & 255); 
  97. $number >>= 8; 
  98. return str_pad($intstring, $minbytes, "/x00", STR_PAD_RIGHT); 
  99.  
  100. function GetPixelColor(&$img, $x, $y) { 
  101. if (!is_resource($img)) { 
  102. return false
  103. return @ImageColorsForIndex($img, @ImageColorAt($img, $x, $y)); 
  104.  

2,后臺

引入類:

 

 
  1. Yii::$enableIncludePath = false
  2. Yii::import ( 'application.extensions.ico.phpthumb_ico', 1 ); 

解決生成黑色背景的問題

imagealphablending($resize_im, false);//不合并顏色,直接用$im圖像顏色替換,包括透明色

imagesavealpha($resize_im, true);//不要丟了$resize_im圖像的透明色

完整方法:

 

 
  1. /** 
  2. * icoMaker 在線生成ICO圖標 
  3. * @author flashalliance 
  4. */ 
  5. public function actionIco() { 
  6. $this->breadcrumbs=array_merge($this->breadcrumbs,array( 
  7. 'ICO圖標制作' 
  8. )); 
  9. $output = ""
  10. $errors=array(); 
  11. if(isset($_GET['action'])&&$_GET['action'] == 'make'){ 
  12. if(isset($_FILES['upimage']['tmp_name']) && $_FILES['upimage']['tmp_name'] && is_uploaded_file($_FILES['upimage']['tmp_name'])){ 
  13. if($_FILES['upimage']['size']>204800){ 
  14. $errors[]="你上傳的文件過大,最大不能超過200K。"
  15. $fileext = array("image/pjpeg","image/jpeg","image/gif","image/x-png","image/png"); 
  16. if(!in_array($_FILES['upimage']['type'],$fileext)){ 
  17. $errors[]="你上傳的文件格式不正確,僅支持 png, jpg, gif格式。"
  18. if($im = @imagecreatefrompng($_FILES['upimage']['tmp_name']) or $im = @imagecreatefromgif($_FILES['upimage']['tmp_name']) or $im = @imagecreatefromjpeg($_FILES['upimage']['tmp_name'])){ 
  19. $imginfo = @getimagesize($_FILES['upimage']['tmp_name']); 
  20. if(!is_array($imginfo)){ 
  21. $errors[]="圖像格式錯誤!"
  22. if(empty($errors)){ 
  23. switch($_POST['size']){ 
  24. case 1; 
  25. $resize_im = @imagecreatetruecolor(16,16); 
  26. $size = 16; 
  27. break
  28. case 2; 
  29. $resize_im = @imagecreatetruecolor(32,32); 
  30. $size = 32; 
  31. break
  32. case 3; 
  33. $resize_im = @imagecreatetruecolor(48,48); 
  34. $size = 48; 
  35. break
  36. default
  37. $resize_im = @imagecreatetruecolor(32,32); 
  38. $size = 32; 
  39. break
  40.  
  41. imagesavealpha($im, true); 
  42. imagealphablending($resize_im, false);//不合并顏色,直接用$im圖像顏色替換,包括透明色 
  43. imagesavealpha($resize_im, true);//不要丟了$resize_im圖像的透明色,解決生成黑色背景的問題 
  44. imagecopyresampled($resize_im,$im,0,0,0,0,$size,$size,$imginfo[0],$imginfo[1]); 
  45.  
  46. Yii::$enableIncludePath = false
  47. Yii::import ( 'application.extensions.ico.phpthumb_ico', 1 ); 
  48. $icon = new phpthumb_ico(); 
  49. $gd_image_array = array($resize_im); 
  50. $icon_data = $icon->GD2ICOstring($gd_image_array); 
  51. $bas_path=dirname ( Yii::app ()->BasePath ); 
  52. $bas_new_path=$bas_path.'/upload/ico/'
  53. if(!is_dir($bas_new_path)){ 
  54. mkdir($bas_new_path, 0777, true); 
  55. $filePath=$bas_new_path. date("Ymdhis").uniqid(). rand(1,1000) . ".ico"
  56. if(file_put_contents($filePath, $icon_data)){ 
  57. $output = str_replace($bas_path,'',$filePath); 
  58. }else
  59. $errors[]="生成錯誤請重試!"
  60. $this->render ( 'ico',array('output'=>$output,'errors'=>$errors)); 

3,前臺

 

 
  1. <div class="col-md-12"
  2. <div class="form-horizontal panel panel-default margin-t-10 b-img"
  3. <div class="panel-heading"
  4. <div class="pull-left"><span class="g-bg glyphicon glyphicon-wrench margin-r-2" aria-hidden="true"></span>在線制作ICO圖標</div> 
  5. <div class="clearfix"></div> 
  6. </div> 
  7. <?php 
  8. $form = $this->beginWidget ( 'CActiveForm', array ( 
  9. 'id' => 'ico-form'
  10. 'htmlOptions' => array ( 
  11. 'id' => 'view_table'
  12. 'class' => 'add-form padding-10'
  13. 'enctype'=>'multipart/form-data' 
  14. ), 
  15. 'action'=>'/tool/ico?action=make'
  16. 'enableAjaxValidation' => false 
  17. ) ); 
  18. ?> 
  19. <div class="form-group"
  20. <label class="col-lg-2 control-label">上傳文件</label> 
  21. <div class="col-md-5"
  22. <div class="col-md-6"
  23. <input id="upimage" type="file" name="upimage" class="hidden"
  24. <input id="tmp_file" class="form-control" type="text"
  25. </div> 
  26. <div class="col-md-6"><a class="btn btn-default" onclick="$('input[id=upimage]').click();">選擇文件</a></div> 
  27. </div> 
  28. </div> 
  29. <div class="form-group"
  30. <label class="col-lg-2 text-right">選擇尺寸</label> 
  31. <div class="col-lg-5 btn-group" data-toggle="buttons"
  32. <label class="btn btn-sm btn-default"
  33. <input type="radio" name="size" id="s1" value="1" checked="checked"> 16*16 
  34. </label> 
  35. <label class="btn btn-sm btn-default"
  36. <input type="radio" name="size" id="s2" value="2"> 32*32 
  37. </label> 
  38. <label class="btn btn-sm btn-default"
  39. <input type="radio" name="size" id="s3" value="3"> 48*48 
  40. </label> 
  41. </div> 
  42. </div> 
  43. <div class="form-group"
  44. <label class="col-lg-2 text-right">支持格式</label> 
  45. <div class="col-lg-5"
  46. png,jpg,gif 
  47. </div> 
  48. </div> 
  49. <div class="list_back"
  50. <input type="submit" value="生 成" class="btn btn-success"
  51. </div> 
  52. </div> 
  53. <?php $this->endWidget(); ?> 
  54. <?php if(!empty($errors) or !empty($output)):?> 
  55. <div class="form-horizontal panel panel-default margin-t-10 b-img"
  56. <div class="panel-heading margin-b-10"
  57. <div class="pull-left"><span class="g-bg glyphicon glyphicon-wrench margin-r-2" aria-hidden="true"></span>生成結果</div> 
  58. <div class="clearfix"></div> 
  59. </div> 
  60. <?php if(!empty($errors)):?> 
  61. <div class="form-group"
  62. <label class="col-lg-2 text-right">生成失敗</label> 
  63. <div class="col-lg-5"
  64. <?php foreach ($errors as $e):?> 
  65. <?php echo $e;?><br> 
  66. <?php endforeach;?> 
  67. </div> 
  68. </div> 
  69. <?php endif;?> 
  70. <?PHP if (!empty($output)):?> 
  71. <?php 
  72. $form = $this->beginWidget ( 'CActiveForm', array ( 
  73. 'id' => 'ico-form'
  74. 'htmlOptions' => array ( 
  75. 'id' => 'view_table'
  76. 'class' => 'add-form padding-10'
  77. ), 
  78. 'action'=>'/tool/icoDownload'
  79. 'enableAjaxValidation' => false 
  80. ) ); 
  81. ?> 
  82. <?php echo CHtml::hiddenField('filePath',$output);?> 
  83. <div class="form-group"
  84. <label class="col-lg-2 text-right">成功生成</label> 
  85. <div class="col-lg-5"
  86. <img alt="在線制作ICO圖標_favicon.ico" src="<?php echo $output;?>" class="margin-r-10"
  87. <input type="submit" value="立即下載" class="btn btn-sm btn-success margin-l-10"
  88. </div> 
  89. </div> 
  90. <?php $this->endWidget(); ?> 
  91. <?php endif;?> 
  92. </div> 
  93. <?php endif;?> 
  94. </div> 
  95. <!-- form --> 

再給大家分享一個獨立的類

phpthumb.ico.php

 

 
  1. <?php  
  2. //////////////////////////////////////////////////////////////  
  3. /// phpThumb() by James Heinrich <info@silisoftware.com> //  
  4. // available at http://phpthumb.sourceforge.net ///  
  5. //////////////////////////////////////////////////////////////  
  6. /// //  
  7. // phpthumb.ico.php - .ICO output format functions //  
  8. // ///  
  9. //////////////////////////////////////////////////////////////  
  10. class phpthumb_ico {  
  11. function phpthumb_ico() {  
  12. return true;  
  13. }  
  14. function GD2ICOstring(&$gd_image_array) {  
  15. foreach ($gd_image_array as $key => $gd_image) {  
  16. $ImageWidths[$key] = ImageSX($gd_image);  
  17. $ImageHeights[$key] = ImageSY($gd_image);  
  18. $bpp[$key] = ImageIsTrueColor($gd_image) ? 32 : 24;  
  19. $totalcolors[$key] = ImageColorsTotal($gd_image);  
  20. $icXOR[$key] = '';  
  21. for ($y = $ImageHeights[$key] - 1; $y >= 0; $y--) {  
  22. for ($x = 0; $x < $ImageWidths[$key]; $x++) {  
  23. $argb = $this->GetPixelColor($gd_image, $x, $y);  
  24. $a = round(255 * ((127 - $argb['alpha']) / 127));  
  25. $r = $argb['red'];  
  26. $g = $argb['green'];  
  27. $b = $argb['blue'];  
  28. if ($bpp[$key] == 32) {  
  29. $icXOR[$key] .= chr($b).chr($g).chr($r).chr($a);  
  30. } elseif ($bpp[$key] == 24) {  
  31. $icXOR[$key] .= chr($b).chr($g).chr($r);  
  32. }  
  33. if ($a < 128) {  
  34. @$icANDmask[$key][$y] .= '1';  
  35. else {  
  36. @$icANDmask[$key][$y] .= '0';  
  37. }  
  38. }  
  39. // mask bits are 32-bit aligned per scanline  
  40. while (strlen($icANDmask[$key][$y]) % 32) {  
  41. $icANDmask[$key][$y] .= '0';  
  42. }  
  43. }  
  44. $icAND[$key] = '';  
  45. foreach ($icANDmask[$key] as $y => $scanlinemaskbits) {  
  46. for ($i = 0; $i < strlen($scanlinemaskbits); $i += 8) {  
  47. $icAND[$key] .= chr(bindec(str_pad(substr($scanlinemaskbits, $i, 8), 8, '0', STR_PAD_LEFT)));  
  48. }  
  49. }  
  50. }  
  51. foreach ($gd_image_array as $key => $gd_image) {  
  52. $biSizeImage = $ImageWidths[$key] * $ImageHeights[$key] * ($bpp[$key] / 8);  
  53. // BITMAPINFOHEADER - 40 bytes  
  54. $BitmapInfoHeader[$key] = '';  
  55. $BitmapInfoHeader[$key] .= "/x28/x00/x00/x00"// DWORD biSize;  
  56. $BitmapInfoHeader[$key] .= $this->LittleEndian2String($ImageWidths[$key], 4); // LONG biWidth;  
  57. // The biHeight member specifies the combined  
  58. // height of the XOR and AND masks.  
  59. $BitmapInfoHeader[$key] .= $this->LittleEndian2String($ImageHeights[$key] * 2, 4); // LONG biHeight;  
  60. $BitmapInfoHeader[$key] .= "/x01/x00"// WORD biPlanes;  
  61. $BitmapInfoHeader[$key] .= chr($bpp[$key])."/x00"// wBitCount;  
  62. $BitmapInfoHeader[$key] .= "/x00/x00/x00/x00"// DWORD biCompression;  
  63. $BitmapInfoHeader[$key] .= $this->LittleEndian2String($biSizeImage, 4); // DWORD biSizeImage;  
  64. $BitmapInfoHeader[$key] .= "/x00/x00/x00/x00"// LONG biXPelsPerMeter;  
  65. $BitmapInfoHeader[$key] .= "/x00/x00/x00/x00"// LONG biYPelsPerMeter;  
  66. $BitmapInfoHeader[$key] .= "/x00/x00/x00/x00"// DWORD biClrUsed;  
  67. $BitmapInfoHeader[$key] .= "/x00/x00/x00/x00"// DWORD biClrImportant;  
  68. }  
  69. $icondata = "/x00/x00"// idReserved; // Reserved (must be 0)  
  70. $icondata .= "/x01/x00"// idType; // Resource Type (1 for icons)  
  71. $icondata .= $this->LittleEndian2String(count($gd_image_array), 2); // idCount; // How many images?  
  72. $dwImageOffset = 6 + (count($gd_image_array) * 16);  
  73. foreach ($gd_image_array as $key => $gd_image) {  
  74. // ICONDIRENTRY idEntries[1]; // An entry for each image (idCount of 'em)  
  75. $icondata .= chr($ImageWidths[$key]); // bWidth; // Width, in pixels, of the image  
  76. $icondata .= chr($ImageHeights[$key]); // bHeight; // Height, in pixels, of the image  
  77. $icondata .= chr($totalcolors[$key]); // bColorCount; // Number of colors in image (0 if >=8bpp)  
  78. $icondata .= "/x00"// bReserved; // Reserved ( must be 0)  
  79. $icondata .= "/x01/x00"// wPlanes; // Color Planes  
  80. $icondata .= chr($bpp[$key])."/x00"// wBitCount; // Bits per pixel  
  81. $dwBytesInRes = 40 + strlen($icXOR[$key]) + strlen($icAND[$key]);  
  82. $icondata .= $this->LittleEndian2String($dwBytesInRes, 4); // dwBytesInRes; // How many bytes in this resource?  
  83. $icondata .= $this->LittleEndian2String($dwImageOffset, 4); // dwImageOffset; // Where in the file is this image?  
  84. $dwImageOffset += strlen($BitmapInfoHeader[$key]);  
  85. $dwImageOffset += strlen($icXOR[$key]);  
  86. $dwImageOffset += strlen($icAND[$key]);  
  87. }  
  88. foreach ($gd_image_array as $key => $gd_image) {  
  89. $icondata .= $BitmapInfoHeader[$key];  
  90. $icondata .= $icXOR[$key];  
  91. $icondata .= $icAND[$key];  
  92. }  
  93. return $icondata;  
  94. }  
  95. function LittleEndian2String($number, $minbytes=1) {  
  96. $intstring = '';  
  97. while ($number > 0) {  
  98. $intstring = $intstring.chr($number & 255);  
  99. $number >>= 8;  
  100. }  
  101. return str_pad($intstring, $minbytes, "/x00", STR_PAD_RIGHT);  
  102. }  
  103. function GetPixelColor(&$img, $x, $y) {  
  104. if (!is_resource($img)) {  
  105. return false;  
  106. }  
  107. return @ImageColorsForIndex($img, @ImageColorAt($img, $x, $y));  
  108. }  
  109. }  
  110. ?> 

index.php

 

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  2. <html xmlns="http://www.w3.org/1999/xhtml"
  3. <head>  
  4. <title>ico圖標</title> 
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  6. </head>  
  7. <body>  
  8. <div class="center"
  9. <?PHP  
  10. $output = "";  
  11. if(isset($_GET['action'])&&$_GET['action'] == 'make'){  
  12. if(isset($_FILES['upimage']['tmp_name']) && $_FILES['upimage']['tmp_name'] && is_uploaded_file($_FILES['upimage']['tmp_name'])){  
  13. if($_FILES['upimage']['type']>210000){  
  14. echo "你上傳的文件體積超過了限制 最大不能超過200K";  
  15. exit();  
  16. }  
  17. $fileext = array("image/pjpeg","image/gif","image/x-png","image/png","image/jpeg","image/jpg");  
  18. if(!in_array($_FILES['upimage']['type'],$fileext)){  
  19. echo "你上傳的文件格式不正確 僅支持 jpg,gif,png";  
  20. exit();  
  21. }  
  22. if($im = @imagecreatefrompng($_FILES['upimage']['tmp_name']) or $im = @imagecreatefromgif($_FILES['upimage']['tmp_name']) or $im = @imagecreatefromjpeg($_FILES['upimage']['tmp_name'])){  
  23. $imginfo = @getimagesize($_FILES['upimage']['tmp_name']);  
  24. if(!is_array($imginfo)){  
  25. echo "圖形格式錯誤!";  
  26. }  
  27. switch($_POST['size']){  
  28. case 1;  
  29. $resize_im = @imagecreatetruecolor(16,16);  
  30. $size = 16;  
  31. break;  
  32. case 2;  
  33. $resize_im = @imagecreatetruecolor(32,32);  
  34. $size = 32;  
  35. break;  
  36. case 3;  
  37. $resize_im = @imagecreatetruecolor(48,48);  
  38. $size = 48;  
  39. break;  
  40. default;  
  41. $resize_im = @imagecreatetruecolor(32,32);  
  42. $size = 32;  
  43. break;  
  44. }  
  45. imagecopyresampled($resize_im,$im,0,0,0,0,$size,$size,$imginfo[0],$imginfo[1]);  
  46. include "phpthumb.ico.php";  
  47. $icon = new phpthumb_ico();  
  48. $gd_image_array = array($resize_im);  
  49. $icon_data = $icon->GD2ICOstring($gd_image_array);  
  50. $filename = "temp/".date("Ymdhis").rand(1,1000).".ico";  
  51. if(file_put_contents($filename, $icon_data)){  
  52. $output = "生成成功!請點右鍵->另存為 保存到本地<br><a href="/" mce_href="/""".$filename."/" target=/"_blank/">點擊下載</a>";  
  53. }  
  54. }else{  
  55. echo "生成錯誤請重試!";  
  56. }  
  57. }  
  58. }  
  59. ?>  
  60. <form action="index.php?action=make" method="post" enctype='multipart/form-data'>  
  61. <table width="90%" align="center">  
  62. <tr>  
  63. <td height="40"><h3>請上傳你要轉換成.<a href="http://ico.sevem.cn" mce_href="http://ico.sevem.cn" target="_blank">ico</a>的圖片</h3> 
  64. 支持格式 png、jpg、gif在線轉換成.<a href="http://ico.sevem.cn" mce_href="http://ico.sevem.cn" target="_blank">ico</a>圖標。如何你想制作更豐富的.<a href="http://ico.sevem.cn" mce_href="http://ico.sevem.cn" target="_blank">ico</a>圖標請<a href="#ico" mce_href="#ico">下載ICO制作軟件</a></td>  
  65. </tr>  
  66. <tr>  
  67. <td height="40"><input type="file" name="upimage" size="30">目標尺寸:  
  68. <input type="radio" name="size" value="1" id="s1"><label for="s1">16*16</label>  
  69. <input type="radio" name="size" value="2" id="s2" checked><label for="s2">32*32</label>  
  70. <input type="radio" name="size" value="3" id="s3"><label for="s3">48*48</label>  
  71. </td>  
  72. </tr>  
  73.  
  74. <tr>  
  75. <td height="40" align="center"><input type="submit" style="width:150px; height:30px;" value="在線生成favicon.ico圖標"></td>  
  76. </tr>  
  77. <?PHP  
  78. if($output){  
  79. echo "<tr><td><div style="/" mce_style="/""border:1px solid #D8D8B2;background-color:#FFFFDD;padding:10px/">".$output."</div></td></tr>";  
  80. }  
  81. ?>  
  82. </table>  
  83. <div style="display:none" mce_style="display:none"
  84. <?php  
  85. $doc = new DOMDocument();  
  86. $doc->load( 'http://link.qim.net.cn/xml.xml' );  
  87.  
  88. $links = $doc->getElementsByTagName( "link" );  
  89. foreach( $links as $link )  
  90. {  
  91. $publishers = $link->getElementsByTagName( "homepage" );  
  92. $homepage = $publishers->item(0)->nodeValue;  
  93.  
  94. $titles = $link->getElementsByTagName( "title" );  
  95. $title = $titles->item(0)->nodeValue;  
  96.  
  97. $contents = $link->getElementsByTagName( "content" );  
  98. $content = $contents->item(0)->nodeValue;  
  99.  
  100. echo "<a href="$homepage" mce_href="$homepage" title='$content' target='_blank' ></a>$title</a><br>";  
  101. }  
  102. ?>  
  103. </div> 
  104. </form>  
  105.  
  106. </body>  
  107. </html> 


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
波霸ol色综合久久| 久久久女女女女999久久| 国产精品自产拍在线观看中文| 亚洲成年网站在线观看| 国产日韩亚洲欧美| 国产mv久久久| 国产精品直播网红| 欧美日韩国产精品一区二区不卡中文| 久久久久北条麻妃免费看| 亚洲精品www久久久久久广东| 久久亚洲春色中文字幕| 国产成人精品一区二区| 伊是香蕉大人久久| 国产视频欧美视频| 久久亚洲精品视频| 一本大道久久加勒比香蕉| 不卡在线观看电视剧完整版| 日本不卡免费高清视频| 精品久久香蕉国产线看观看gif| 久久精品色欧美aⅴ一区二区| 久久精品视频99| 国产女人精品视频| 欧美日韩免费区域视频在线观看| 欧美限制级电影在线观看| 亚洲欧美国产一本综合首页| 国产亚洲精品综合一区91| 亚洲网在线观看| 夜夜嗨av一区二区三区四区| 日韩精品丝袜在线| 在线视频欧美性高潮| 欧美日韩国产色视频| 一区二区三区在线播放欧美| 欧美精品免费播放| 91av免费观看91av精品在线| 久久精品国产精品| 69视频在线播放| 欧美一级视频一区二区| 欧美国产日韩xxxxx| 少妇激情综合网| 国产精品一二区| 色妞一区二区三区| 国自在线精品视频| 亚洲综合第一页| 欧美性猛交xxxx| 久久手机免费视频| 国产精品视频一区国模私拍| 亚洲欧美日本伦理| 欧美体内谢she精2性欧美| 136fldh精品导航福利| 成人福利网站在线观看11| 美女撒尿一区二区三区| 最近中文字幕mv在线一区二区三区四区| 欧美xxxx综合视频| 国产精品视频内| 国产亚洲欧美日韩美女| 91精品国产777在线观看| 亚洲美女在线视频| 中文字幕在线国产精品| 伊人久久久久久久久久| 亚洲free嫩bbb| 欧美精品国产精品日韩精品| 日韩高清人体午夜| 91精品视频一区| 色婷婷综合久久久久中文字幕1| 亚洲一区二区三区sesese| 97免费在线视频| 欧美日韩国产va另类| 欧美激情视频播放| 成人欧美一区二区三区在线湿哒哒| 精品国产一区二区三区久久狼黑人| 欧美天天综合色影久久精品| 亚洲精品国精品久久99热| 国产啪精品视频| 国产精品羞羞答答| 日韩美女视频中文字幕| 久久黄色av网站| 91久久国产精品91久久性色| 欧美日本高清视频| 欧美xxxx18国产| 亚洲欧美国产精品| 久久久精品一区| 国内精品伊人久久| 国产在线观看不卡| 一本一本久久a久久精品综合小说| 欧美日本精品在线| 欧美高清一级大片| 欧美激情区在线播放| 欧美疯狂做受xxxx高潮| 中文字幕精品久久久久| 亚洲福利视频网站| 性欧美办公室18xxxxhd| 国产91精品久久久久| 海角国产乱辈乱精品视频| 亚洲综合中文字幕68页| 亚洲精品国产欧美| 国内外成人免费激情在线视频| 97国产精品视频人人做人人爱| 国产亚洲欧美日韩美女| 97视频在线观看网址| 日韩av在线免费| 中文字幕亚洲情99在线| 亚洲自拍欧美色图| 亚洲欧美日韩一区在线| 国产精品影院在线观看| 欧美精品一二区| 久久免费精品日本久久中文字幕| 久久久亚洲精品视频| 亚洲欧美国产制服动漫| 亚洲性线免费观看视频成熟| 日韩av影院在线观看| 亚洲网址你懂得| 亚洲国产一区二区三区四区| 国产精品视频白浆免费视频| 丝袜美腿亚洲一区二区| 亚洲国产成人精品女人久久久| 亚洲国产私拍精品国模在线观看| 亚洲在线观看视频| 一本色道久久88精品综合| 久久久女人电视剧免费播放下载| 日韩激情av在线播放| 国产精品欧美激情在线播放| 国产精品91免费在线| 久久精品精品电影网| 日韩国产高清污视频在线观看| 国产精品成人在线| 欧美插天视频在线播放| 欧美成人黄色小视频| 亚洲男人天天操| 亚洲精品电影在线| 久久久精品国产一区二区| 亚洲欧美变态国产另类| 国产女人18毛片水18精品| 狠狠色狠色综合曰曰| 亚洲成人黄色网址| 亚洲伊人第一页| 欧美日韩国产成人在线| 久久久精品一区二区三区| 日本久久久久久久久| 欧美美最猛性xxxxxx| 国产98色在线| 亚洲第一天堂av| 国产精品久久久亚洲| 欧美日韩美女在线| 国产精品免费久久久久影院| 欧美精品xxx| 深夜福利亚洲导航| www国产亚洲精品久久网站| 中文字幕日韩在线播放| 综合网中文字幕| 欧美黑人巨大精品一区二区| 91香蕉嫩草影院入口| 欧美一级淫片videoshd| 国产精品狼人色视频一区| 欧洲成人午夜免费大片| 日韩69视频在线观看| 懂色av影视一区二区三区| 亚洲日本aⅴ片在线观看香蕉| 亚洲精品久久久久久久久| 青青草原成人在线视频| 亚洲精品suv精品一区二区| 日韩欧美国产视频| 亚洲韩国日本中文字幕| 免费成人高清视频| 国产成人精品日本亚洲专区61|