This article will introduce to you how to use PHP to generate ico icons. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to everyone.
#ico icon needs to be used in every website, and the method of use is also very simple. Basically, the following method is the main one, but there are other methods.
<link rel="shortcut icon" href="/favicon.ico" />
Generally, the ico icon is placed in the root directory of the website. When using it, you can use a relative path or an absolute path to introduce it. There is no clear regulation on this.
Let’s first understand a few functions. The ones we will use in the following code are mainly image processing functions:
strtolower、end、imagecreatefromjpeg、imagecreatefromgif、imagecreatefrompng、getimagesize、imagecreatetruecolor、imagecopyresampled、imagejpeg、imagedestroy
1. strtolower function
The strtolower function converts all strings to lowercase. The supported version is PHP4.0. Usage method:
<?php echo strtolower('This is strtolower function'); ?>
2. end function
The end function points the internal pointer of the array to the last element and returns the value of the element. The version supported is PHP4.0. Usage method:
<?php $info = array('red','yellow','blue','white'); echo end($info); ?>
3. Imagecreatefromjpeg function
# The ##imagecreatefromjpeg function loads jpg or jpeg format, returns the image resource after success, and returns FALSE after failure. The instructions given on php.net are: Create a new image from a file or URL. The version supports 4.3. Usage method:<?php $imgPath = './demo.jpg'; $im = @imagecreatefromjpeg($imgPath); ?>
4. Imagecreatefromgif function
The usage and method are similar to the imagecreatefromjpeg() function.5. Imagecreatefrompng function
The usage and method are similar to the imagecreatefromjpeg() function.6. getimagesize function
getimagesize function, obtains the image size, supports JPC, JP2, JPX, JB2, XBM, WBMP, SWC, TIFF and other formats, if successful The size and file type of the image and a height/width text string that can be used in the IMG tag in a normal HTML file. Failure will return false and a warning. Personally recommend that the PHP version is higher than 5.0. How to use it:<?php $imgPath = './demo.png'; $info = getimagesize($imgPath); ?>
7. imagecreatetruecolor function
imagecreatetruecolor function creates a new true color image and returns the image resource after success. Returns FALSE on failure. Usage:<?php $tmp = imagecreatetruecolor($width, $height); ?>
8. Imagecopyresampled function
imagecopyresampled function, resamples and copies part of the image and adjusts the size, copying a square area in one image to another Smoothly interpolates pixel values within an image, thus, inter alia, reducing the size of the image while still maintaining great sharpness.<?php // 参数注释:目标图象连接资源,源图象连接资源,目标 X 坐标点,目标 Y 坐标点,源的 X 坐标点,源的 Y 坐标点,目标宽度,目标高度,源图象的宽度,源图象的高度 imagecopyresampled($tmp, $image, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height); ?>
9. Imagejpeg function
imagejpeg function outputs the image to the browser or file. PHP version supports 4.0, usage method:<?php // 参数注释:图像资源,路径,质量(默认值(-1)使用默认的IJG质量值(约75)) imagejpeg($tmp, $directory . $filename, 100); ?>
10. Imagedestroy function
imagedestroy function, destroys the image and releases the associated memory. The PHP version supports 4.0. How to use:<?php imagedestroy('./demo.png'); ?>
/** * 创建ico图标 * @return string * */ public function icon() { if(request()->isPost()) { //获取图片信息 $postVars = ["image" => trim($_FILES["image"]["name"]), "image_tmp" => $_FILES["image"]["tmp_name"], "image_size" => (int)$_FILES["image"]["size"], "image_dimensions" => (int)$_POST["image_dimensions"]]; //设置图片格式 $validExts = ["jpg", "jpeg", "gif", "png"]; //设置图片文件大小 175kb $max_file_size = 179200; //图片名称和类型 $filenameParts = explode(".", $postVars["image"]); //获取图片格式 $ext = strtolower(end($filenameParts)); //设置图片存储路径 $directory = "./favicon/"; //设置命名格式 $rand = time(); $filename = $rand . $postVars["image_size"]; //判断图片大小 if($postVars["image_size"] <= $max_file_size) { //判断图片格式 if(in_array($ext, $validExts)) { //依据格式使用不同函数 if($ext == "jpg" || $ext == "jpeg") { $image = imagecreatefromjpeg($postVars["image_tmp"]); } else if($ext == "gif") { $image = imagecreatefromgif($postVars["image_tmp"]); } else if($ext == "png") { $image = imagecreatefrompng($postVars["image_tmp"]); } if($image) { list($width, $height) = getimagesize($postVars["image_tmp"]); $newWidth = $postVars["image_dimensions"]; $newHeight = $postVars["image_dimensions"]; $tmp = imagecreatetruecolor($newWidth, $newHeight); //将图像复制到具有新宽度和高度的图像 imagecopyresampled($tmp, $image, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height); //创建100%质量的图像文件 if(is_dir($directory)) { if(is_writable($directory)) { imagejpeg($tmp, $directory . $filename, 100) or die('没有创建文件的权限'); if(file_exists($directory . $filename)) { //重命名 $newFilename = md5(time()); rename($directory . $filename, $directory . $newFilename . ".ico"); return '"http://'.$_SERVER['SERVER_NAME'] . substr($directory, 1).$newFilename.".ico"; } else { echo "指定的文件不可写"; } } else { return '目录:' . $directory . '"无写入权限'; } } else { return '目录: "' . $directory . '"不存在'; } imagedestroy($image); imagedestroy($tmp); } else { return "无法创建图像文件"; } } else { return "图标过大,不能超过175KB"; } } else { return "图片格式只能是后面几种 (jpg, jpeg, gif, png)."; } } else { return view('Index/icon'); } }
PHP video tutorial》
The above is the detailed content of A brief discussion on how to use PHP to generate ICO icons. For more information, please follow other related articles on the PHP Chinese website!