Heim > Backend-Entwicklung > PHP-Tutorial > Eine kurze Diskussion darüber, wie man PHP zum Generieren von ICO-Symbolen verwendet

Eine kurze Diskussion darüber, wie man PHP zum Generieren von ICO-Symbolen verwendet

青灯夜游
Freigeben: 2023-04-10 08:28:01
nach vorne
3995 Leute haben es durchsucht

In diesem Artikel erfahren Sie, wie Sie mit PHP ICO-Symbole generieren. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.

Eine kurze Diskussion darüber, wie man PHP zum Generieren von ICO-Symbolen verwendet

ico-Symbole müssen auf jeder Website verwendet werden, und die Verwendungsmethode ist im Grunde auch sehr einfach. Die folgende Methode ist die wichtigste, es gibt jedoch auch andere Methoden.

<link rel="shortcut icon" href="/favicon.ico" />
Nach dem Login kopieren

Im Allgemeinen wird das ico-Symbol im Stammverzeichnis der Website platziert. Sie können einen relativen Pfad oder einen absoluten Pfad verwenden, um es einzuführen.

Lassen Sie uns zunächst einige Funktionen verstehen. Die, die wir im folgenden Code verwenden werden, sind hauptsächlich Bildverarbeitungsfunktionen:

strtolower、end、imagecreatefromjpeg、imagecreatefromgif、imagecreatefrompng、getimagesize、imagecreatetruecolor、imagecopyresampled、imagejpeg、imagedestroy
Nach dem Login kopieren

1. strtolower-Funktion

Die strtolower-Funktion konvertiert alle Zeichenfolgen in Kleinbuchstaben. Die unterstützte Version ist PHP4. 0+, Verwendungsmethode:

<?php
echo strtolower(&#39;This is strtolower function&#39;);
?>
Nach dem Login kopieren

2. Endfunktion

Die Endfunktion zeigt den internen Zeiger des Arrays auf das letzte Element und gibt den Wert des Elements zurück. Die unterstützte Version ist PHP4.0+. Verwendung:

<?php
$info = array(&#39;red&#39;,&#39;yellow&#39;,&#39;blue&#39;,&#39;white&#39;);
echo end($info);
?>
Nach dem Login kopieren

3. Imagecreatefromjpeg-Funktion

Die imagecreatefromjpeg-Funktion lädt das JPG- oder JPEG-Format, gibt nach Erfolg Bildressourcen zurück und gibt nach einem Fehler FALSE zurück. Die Anweisungen auf php.net lauten: Erstellen Sie ein neues Bild aus einer Datei oder URL. Die Version unterstützt 4.3+. Verwendung:

<?php
$imgPath = &#39;./demo.jpg&#39;;
$im = @imagecreatefromjpeg($imgPath);
?>
Nach dem Login kopieren

4. Imagecreatefromgif-Funktion

Die Verwendung und Methode ähneln der imagecreatefromjpeg(. ) Funktion.

5. Imagecreatefrompng-Funktion

Die Verwendung und Methode ähneln der Funktion imagecreatefromjpeg().

6. getimagesize-Funktion

getimagesize-Funktion, Bildgröße abrufen, JPC, JP2, JPX, JB2, XBM, WBMP, SWC, TIFF und andere Formate unterstützen, bei Erfolg die Bildgröße und den Dateityp und man kann für gewöhnliche Zwecke verwendet werden. Die Textzeichenfolge „Höhe/Breite“ im IMG-Tag in der HTML-Datei gibt „false“ und eine Warnung zurück, wenn dies fehlschlägt. Ich persönlich empfehle, dass die PHP-Version höher als 5.0 ist, Verwendungsmethode:

<?php
$imgPath = &#39;./demo.png&#39;;
$info = getimagesize($imgPath);
?>
Nach dem Login kopieren

7. imagecreatetruecolor-Funktion

imagecreatetruecolor-Funktion, ein neues Echtfarbenbild erstellen, nach Erfolg die Bildressource zurückgeben und nach einem Fehler FALSE zurückgeben. Verwendung:

<?php
$tmp = imagecreatetruecolor($width, $height);
?>
Nach dem Login kopieren

8. Imagecopyresampled-Funktion

imagecopyresampled-Funktion, resampelt und kopiert einen Teil des Bildes und ändert seine Größe, kopiert einen quadratischen Bereich in einem Bild in ein anderes Bild und fügt daher insbesondere Pixelwerte reibungslos ein , wird die Größe des Bildes reduziert, während die hohe Klarheit erhalten bleibt.

<?php
// 参数注释:目标图象连接资源,源图象连接资源,目标 X 坐标点,目标 Y 坐标点,源的 X 坐标点,源的 Y 坐标点,目标宽度,目标高度,源图象的宽度,源图象的高度
imagecopyresampled($tmp, $image, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
?>
Nach dem Login kopieren

9. imagejpeg-Funktion

imagejpeg-Funktion, Ausgabe des Bildes an den Browser oder die Datei. PHP-Version unterstützt 4.0+, Verwendungsmethode:

<?php
// 参数注释:图像资源,路径,质量(默认值(-1)使用默认的IJG质量值(约75))
imagejpeg($tmp, $directory . $filename, 100);
?>
Nach dem Login kopieren

10. Imagedestroy-Funktion

Imagedestroy-Funktion, zerstört Bilder und gibt den zugehörigen Speicher frei. PHP-Version unterstützt 4.0+, Verwendungsmethode:

<?php
imagedestroy(&#39;./demo.png&#39;);
?>
Nach dem Login kopieren

Es gibt insgesamt 10 Funktionen. Es folgt der Code zum Generieren von ICO:

/**
 * 创建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;);
    }
}
Nach dem Login kopieren

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion darüber, wie man PHP zum Generieren von ICO-Symbolen verwendet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:cloud.tencent.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage