PHP を使用して ICO アイコンを生成する方法についての簡単な説明

青灯夜游
リリース: 2023-04-10 08:28:01
転載
3861 人が閲覧しました

この記事では、PHP を使用して ico アイコンを生成する方法を紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。

PHP を使用して ICO アイコンを生成する方法についての簡単な説明

#ico アイコンはどの Web サイトでも使用する必要があり、使用方法も非常に簡単です。基本的には次の方法がメインですが、他にもいくつかの方法があります。メソッド。

<link rel="shortcut icon" href="/favicon.ico" />
ログイン後にコピー

通常、ico アイコンは Web サイトのルートディレクトリに配置され、使用する場合は相対パスまたは絶対パスで導入できますが、明確な規定はありません。

まず、いくつかの関数を理解しましょう。次のコードで使用する関数は主に画像処理関数です:

strtolower、end、imagecreatefromjpeg、imagecreatefromgif、imagecreatefrompng、getimagesize、imagecreatetruecolor、imagecopyresampled、imagejpeg、imagedestroy
ログイン後にコピー

1. strto lower function

strto lower 関数は、すべての文字列を小文字に変換します。サポートされているバージョンは PHP4.0 です。使用方法:

<?php
echo strtolower(&#39;This is strtolower function&#39;);
?>
ログイン後にコピー

2. end 関数

end 関数は、内部配列の最後の要素へのポインタを返し、要素の値を返します。サポートされているバージョンは PHP4.0 です。使用方法:

<?php
$info = array(&#39;red&#39;,&#39;yellow&#39;,&#39;blue&#39;,&#39;white&#39;);
echo end($info);
?>
ログイン後にコピー

3. Imagecreatefromjpeg 関数

#imagecreatefromjpeg 関数は、jpg または jpeg 形式をロードし、成功すると画像リソースを返し、失敗すると FALSE を返します。 php.net の手順は次のとおりです: ファイルまたは URL から新しい画像を作成します。バージョンは 4.3 をサポートします。使用方法:

<?php
$imgPath = &#39;./demo.jpg&#39;;
$im = @imagecreatefromjpeg($imgPath);
?>
ログイン後にコピー

4. Imagecreatefromgif 関数

使用方法と方法は、imagecreatefromjpeg() 関数と似ています。

5. imagecreatefrompng 関数

使用方法とメソッドは imagecreatefromjpeg() 関数と似ています。

6. getimagesize 関数

getimagesize 関数は、画像サイズを取得し、JPC、JP2、JPX、JB2、XBM、WBMP、SWC、TIFF などの形式をサポートします。成功した場合、画像のサイズとファイル タイプ、および通常の HTML ファイルの IMG タグで使用できる高さ/幅のテキスト文字列。失敗した場合は false と警告が返されます。個人的には、PHP バージョンは 5.0 以降をお勧めします。使用方法:

<?php
$imgPath = &#39;./demo.png&#39;;
$info = getimagesize($imgPath);
?>
ログイン後にコピー

7. imagecreatetruecolor 関数

imagecreatetruecolor 関数は、新しい True Color イメージを作成し、成功後の画像リソース。失敗した場合は FALSE を返します。使用法:

<?php
$tmp = imagecreatetruecolor($width, $height);
?>
ログイン後にコピー

8. imagecopyresampled 関数

imagecopyresampled 関数は、画像の一部をリサンプリングしてコピーし、サイズを調整して、ある画像の正方形の領域を別の画像にスムーズにコピーします。画像内のピクセル値を補間するため、とりわけ、優れた鮮明さを維持しながら画像のサイズを縮小します。

<?php
// 参数注释:目标图象连接资源,源图象连接资源,目标 X 坐标点,目标 Y 坐标点,源的 X 坐标点,源的 Y 坐标点,目标宽度,目标高度,源图象的宽度,源图象的高度
imagecopyresampled($tmp, $image, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
?>
ログイン後にコピー

9. Imagejpeg 関数

imagejpeg 関数は画像をブラウザまたはファイルに出力します。 PHP バージョンは 4.0 をサポート、使用方法:

<?php
// 参数注释:图像资源,路径,质量(默认值(-1)使用默认的IJG质量值(约75))
imagejpeg($tmp, $directory . $filename, 100);
?>
ログイン後にコピー

10. Imagedestroy 関数

imagedestroy 関数は、イメージを破棄し、関連付けられているメモリを解放します。 PHP バージョンは 4.0 に対応しています 使い方:

<?php
imagedestroy(&#39;./demo.png&#39;);
?>
ログイン後にコピー

関数は全部で 10 個ありますが、一部の基本的な関数は紹介していません 生成する 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;);
    }
}
ログイン後にコピー
推奨学習: 「

PHP ビデオ チュートリアル >>

以上がPHP を使用して ICO アイコンを生成する方法についての簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:cloud.tencent.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!