Home > Backend Development > PHP Tutorial > A brief discussion on how to use PHP to generate ICO icons

A brief discussion on how to use PHP to generate ICO icons

青灯夜游
Release: 2023-04-10 08:28:01
forward
3990 people have browsed it

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.

A brief discussion on how to use PHP to generate ICO icons

#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" />
Copy after login

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
Copy after login

1. strtolower function

The strtolower function converts all strings to lowercase. The supported version is PHP4.0. Usage method:

<?php
echo strtolower(&#39;This is strtolower function&#39;);
?>
Copy after login

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(&#39;red&#39;,&#39;yellow&#39;,&#39;blue&#39;,&#39;white&#39;);
echo end($info);
?>
Copy after login

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 = &#39;./demo.jpg&#39;;
$im = @imagecreatefromjpeg($imgPath);
?>
Copy after login

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 = &#39;./demo.png&#39;;
$info = getimagesize($imgPath);
?>
Copy after login

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);
?>
Copy after login

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);
?>
Copy after login

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);
?>
Copy after login

10. Imagedestroy function

imagedestroy function, destroys the image and releases the associated memory. The PHP version supports 4.0. How to use:

<?php
imagedestroy(&#39;./demo.png&#39;);
?>
Copy after login

There are 10 functions in total. Some basic functions are not introduced. The following is the ico code to generate:

/**
 * 创建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(&#39;没有创建文件的权限&#39;);
                            if(file_exists($directory . $filename)) {
                                //重命名
                                $newFilename = md5(time());
                                rename($directory . $filename, $directory . $newFilename . ".ico");
                                return &#39;"http://&#39;.$_SERVER[&#39;SERVER_NAME&#39;] . substr($directory, 1).$newFilename.".ico";
                            }
                            else {
                                echo "指定的文件不可写";
                            }
                        }
                        else {
                            return &#39;目录:&#39; . $directory . &#39;"无写入权限&#39;;
                        }
                    }
                    else {
                        return &#39;目录: "&#39; . $directory . &#39;"不存在&#39;;
                    }
                    imagedestroy($image);
                    imagedestroy($tmp);
                }
                else {
                    return "无法创建图像文件";
                }
            }
            else {
                return "图标过大,不能超过175KB";
            }
        }
        else {
            return "图片格式只能是后面几种 (jpg, jpeg, gif, png).";
        }
    }
    else {
        return view(&#39;Index/icon&#39;);
    }
}
Copy after login
Recommended learning: "

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!

Related labels:
php
source:cloud.tencent.com
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