>  기사  >  백엔드 개발  >  PHP를 사용하여 ICO 아이콘을 생성하는 방법에 대한 간략한 설명

PHP를 사용하여 ICO 아이콘을 생성하는 방법에 대한 간략한 설명

青灯夜游
青灯夜游앞으로
2021-06-16 17:56:313939검색

이 글에서는 PHP를 사용하여 ico 아이콘을 생성하는 방법을 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

PHP를 사용하여 ICO 아이콘을 생성하는 방법에 대한 간략한 설명

ico 아이콘은 모든 웹 사이트에서 사용해야 하며 사용 방법도 매우 간단합니다. 기본적으로 다음 방법이 주된 방법이지만 다른 방법도 있습니다.

<link rel="shortcut icon" href="/favicon.ico" />

일반적으로 ico 아이콘은 웹사이트의 루트 디렉터리에 위치하며, 이에 대한 명확한 규정은 없습니다.

먼저 다음 코드에서 사용할 함수는 주로 이미지 처리 함수입니다.

strtolower、end、imagecreatefromjpeg、imagecreatefromgif、imagecreatefrompng、getimagesize、imagecreatetruecolor、imagecopyresampled、imagejpeg、imagedestroy

1. strtolower 함수

strtolower 함수는 모든 문자열을 소문자로 변환하며 지원되는 버전은 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 함수, 새로운 트루 컬러 이미지 생성, 성공 후 이미지 리소스 반환, 실패 후 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 Video Tutorial"

위 내용은 PHP를 사용하여 ICO 아이콘을 생성하는 방법에 대한 간략한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cloud.tencent.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제