前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ICO图标生成实例代码-PHP语言

ICO图标生成实例代码-PHP语言

作者头像
申霖
发布2019-12-27 17:52:51
2.3K0
发布2019-12-27 17:52:51
举报
文章被收录于专栏:小白程序猿小白程序猿

ico是Icon file的缩写,是Windows的图标文件格式的一种。图标文件可以存储单个图案、多尺寸、多色板的图标文件。一个图标实际上是多张不同格式的图片的集合体,并且还包含了一定的透明区域。

ICO图标示例
ICO图标示例

一、选择图片

制作一张你自己觉得合适的图片(当然也可以去网上下载),这张图片就是将来你的网站ICO站标的雏形,图片的初始大小、格式没有要求。

二、制作图标

根据上面的图片制作ICO格式的站标图片,网络上有很多在线生成ICO站标的网站,我们通过百度直接搜索“ICO站标制作”,就可以找到了。将上面选定的图片导入“原始图像”,“目标尺寸”选择16*16,点击生成,简单搞定!

三、图标命名

将第二步中制作好的ICO文件命名为“favicon.ico”,一般情况下上述ICO制作网站生成的文件会自动帮助默认命名。

四、设置图标

将“favicon.ico”文件上传至站点FTP根目录(不推荐其他目录),然后在首页文件的<head></head>标签内加上一段ICO站标代码,代码案例如下:

代码语言:javascript
复制
<link rel="shortcut icon" href="http://www.explode.com/favicon.ico" />

五、代码

代码语言:javascript
复制
/**
 * ico 图标生成
 * @return \think\response\View
 * @author 申霖
 * @time 2019/7/28 0028 下午 8:39
 */
public function ico()
{
    return view('tool/ico');
}

/**
 * 创建图标
 * @return \think\response\Json
 * @author 申霖
 * @time 2019/7/29 0029 下午 9:08
 */
public function icoCreate()
{
    //接收参数
    $createType = input('post.type');
    $url        = input('post.img');
    if (!$url) {
        return json(['code' => 100, 'msg' => '请上传图片']);
    }
    //判断文件是否存在
    if (file_exists("." . $url) == false) {
        return json(['code' => 101, 'msg' => '图片不存在']);
    }
    //图片信息
    $imgInfo = explode('.', basename($url));
    $imgName = $imgInfo[0];
    //打开图片
    $image = \think\Image::open('.' . $url);
    //生成图片命名规则 md5 加密图片名称及类型
    $createImgName     = MD5(basename($imgName)) . "_" . $createType . '.ico';
    $createImgSavePath = './api/' . $createImgName;
    // 按照原图的比例生成缩略图并保存
    $image->thumb($createType, $createType)->save($createImgSavePath);
    if (file_exists($createImgSavePath)) {
        return json(['code' => 200, 'msg' => '创建成功,正在下载···', 'data' => $createImgSavePath]);
    } else {
        return json(['code' => 104, 'msg' => '创建失败']);
    }
}

/**
 * 图片下载
 * @return \think\response\Download
 * @author 申霖
 * @time 2019/7/29 0029 下午 8:50
 */
public function download()
{
    $file = input('get.path');
    if (!$file) {
        abort(404);
    }
    return download($file, 'ink_favicon.ico')->expire(300);
}

html代码,请到https://www.shenlin.ink/open/tool/ico.html页面右键查看源代码拷贝。贴进来的代码没有缩进了,样式太丑了,

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档