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

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

作者头像
申霖
发布于 2019-12-27 09:52:51
发布于 2019-12-27 09:52:51
2.5K00
代码可运行
举报
文章被收录于专栏:小白程序猿小白程序猿
运行总次数:0
代码可运行

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

一、选择图片

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

二、制作图标

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

三、图标命名

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

四、设置图标

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<link rel="shortcut icon" href="http://www.explode.com/favicon.ico" />

五、代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * 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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
手写dubbo 5-服务治理(redis番外篇)
博客中代码地址:https://github.com/farliu/farpc.git
并发笔记
2019/07/19
6020
手写dubbo 5-服务治理(redis番外篇)
基于Redis实现分布式消息队列(二)
1、访问Redis的工具类 public class RedisManager {
后端技术探索
2018/08/09
6520
【Jedis配置】springSSM + Jedis连接池配置
当一个类实现了Serializable接口(该接口仅为标记接口,不包含任何方法定义),表示该类可以序列化.序列化的目的是将一个实现了Serializable接口的对象转换成一个字节序列,可以。 把该字节序列保存起来(例如:保存在一个文件里),以后可以随时将该字节序列恢复为原来的对象。甚至可以将该字节序列放到其他计算机上或者通过网络传输到其他计算机上恢复,只要该计 算机平台存在相应的类就可以正常恢复为原来的对象。 实现:要序列化一个对象,先要创建某些OutputStream对象,然后将其封装在一个ObjectOutputStream对象内,再调用writeObject()方法即可序列化一个对象;反序列化也类似。 注意:使用对象流写入到文件是不仅要保证该对象是序列化的,而且该对象的成员对象也必须是序列化的
用户5640963
2019/07/25
2.9K0
jedispool使用自动归还jedis解决方案「建议收藏」
在使用jedispool的时候遇到一个尴尬的问题。实例必须要手动归还。即jedis高版本的jedis.close()来归还。 由于我们系统是用grpc做通信机制,所以不存在通过spring 管理实例的生命周期来控制,经研究决定也决定不采用Redisson. 那接下来只有用比较扎实的办法了。 封装一层实现归还。附上代码。。。有更强大的方法欢迎指导。 “` /* Title: Redis操作接口 * Description: * * @author wenquan * @date 2017年1月4日 */ public class RedisUtil { private static JedisPool pool = null;
全栈程序员站长
2022/10/03
9360
redis【redis入门到精通】
Redisredis 是完全开源免费的,是一个高性能的key-value数据库,目前市面上主流的数据库 Redis、Memcache、Tair(淘宝自研发)
高大北
2022/06/27
5940
redis【redis入门到精通】
使用JedisPool资源池操作Redis,并进行性能优化
JedisPool保证资源在一个可控范围内,并且提供了线程安全,但是一个合理的GenericObjectPoolConfig配置能为应用使用Redis保驾护航,下面将对它的一些重要参数进行说明和建议:
小勇DW3
2019/06/11
1.5K0
RedisPool操作Redis,工具类实例
redis.properties 配置文件内容 redis.pool.maxActive=100 redis.pool.maxIdle=20 redis.pool.maxWait=3000 redis.pool.testOnBorrow=false redis.pool.testOnReturn=false redis.ip=127.0.0.1 redis.port=6379 redis.port1=6380 redis.password=**** package com.szreach.rcrp
生活创客
2018/01/30
1.9K0
Spring-Data-Redis 2.X以上版本使用心得和一些坑
最近在修改之前旧项目的时候,将spring-data-redis的版本升级到了2.X以上,查看了官方的文档之后,发现新版本有一些新特性和新的使用方法,这里记录整理一下,并附上自己在使用的时候遇到的一点坑。 spring-data-redis最新版官方文档
星如月勿忘初心
2020/08/02
4.1K1
redis分布式锁加锁删除
下面的分布式锁分别是利用JedisPool 和Redisson 实现的,可以选择行使用。其中方法的命名匹配的为一类,希望可以帮助大家!
gfu
2019/08/28
1.8K0
项目-无侵入代码方式使用Redis实现缓存功能
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
洋仔聊编程
2019/10/25
1.2K0
redis的sentinel主从切换(failover)与Jedis线程池自动重连
本文介绍如何通过sentinel监控redis主从集群,并通过jedis自动切换ip和端口。 1、配置redis主从实例 10.93.21.21:6379 10.93.21.21:6389 10.93.21.21:6399 主从同步关系 master:10.93.21.21:6379 slave:10.93.21.21:6389,10.93.21.21:6399 master配置如下: # 实例ip和端口 bind 10.93.21.21 port 6379 # pid文件 pidfile redis_63
用户1225216
2018/03/05
2.3K0
ssm整合Redis
这次谈谈Redis,关于Redis应该很多朋友就算没有用过也听过,算是这几年最流行的NoSql之一了。 
似水的流年
2018/01/14
2.7K0
nodejs的redis工具类 原
做一个工具时,起初用到redis,后来发现有更好的解决方案,遂放弃redis,但辛辛苦苦写的code不舍得删,这里记录下
尚浩宇
2018/08/17
8950
jedispool是什么_redis工具类
项目中需要用到缓存减少数据库压力,选择redis作为工具,构建一个jedis池达到实际效果 1 1.JedisPoolCacheUtils<!– https://mvnrepository.com/artifact/redis.clients/jedis 引入pom –> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>
全栈程序员站长
2022/10/04
4520
springboot 整合redis 操作
六月的雨在Tencent
2024/03/28
1580
springboot 整合redis 操作
FunTester框架Redis压测预备
在超万字回顾FunTester的前世今生一文中我分享了FunTester测试框架一个优点:针对所有Java可实现的接口都能进行功能封装进而进行性能测试。
FunTester
2021/09/14
2690
Shiro+Redis实现tomcat集群session共享
  当我们使用了nginx做项目集群以后,就会出现一个很严重的问题亟待解决,那就是:tomcat集群之间如何实现session共享的问题,如果这个问题不解决,就会出现登陆过后再次请求资源依旧需要登陆的问题。这篇文章我们就解决这个问题。
阿豪聊干货
2018/08/09
8820
Redis实战:Redis在Java中的基本使用
Jedis 是 Java 语言开发的 Redis 客户端工具包,用于 Java 语言与 Redis 数据进行交互。
栗筝i
2023/10/16
1.7K0
Redis实战:Redis在Java中的基本使用
spring boot使用Jedis整合Redis实现缓存(AOP)
使用redis做缓存的话,需要有redis服务,可以将服务部署在远程服务器上,也可以部署到本机上。
洋仔聊编程
2019/01/15
1.9K0
Python-WXPY实现微信监控报警
概述:   本文主要分享一下博主在学习wxpy 的过程中开发的一个小程序。博主在最近有一个监控报警的需求需要完成,然后刚好在学习wxpy 这个东西,因此很巧妙的将工作和学习联系在一起。   博文中主要
九灵
2018/03/09
5.3K0
Python-WXPY实现微信监控报警
推荐阅读
相关推荐
手写dubbo 5-服务治理(redis番外篇)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验