ICO图标在线生成,php生成ICO图标在线制作源码

我们做web系统的时候,每个浏览器的tab这里都会有一个图标,这个图标叫favicon图标,favicon.ico文件放在系统的根目录

如果程序员没有ICO制作工具,那么要如何生成图标呢?可以用程序来实现生成啊!也可以把图标裁剪好,选择在线生成,在线生成测试地址:www.vsoyo.com/ico

下面和大家一起探讨下,php生成ICO图标在线制作源码,很简单的原理,请看如下代码

下面是ICO图标在线生成的主要代码

<?php
if(!function_exists("generate_favicon")){
function generate_favicon(){
    // Create favicon.
    $postvars = array(
        "image"             => trim($_FILES["image"]["name"]),
        "image_tmp"            => $_FILES["image"]["tmp_name"],
        "image_size"        => (int)$_FILES["image"]["size"],
        "image_dimensions"    => (int)$_POST["image_dimensions"]);

    // Provide valid extensions and max file size
    $valid_exts = array("jpg","jpeg","gif","png");
    $max_file_size = 179200; // 175kb

    $filenameParts = explode(".",$postvars["image"]);
    $ext = strtolower(end($filenameParts));
    $directory = "./favicon/"; // Directory to save favicons. Include trailing slash.
    $rand = rand(1000,9999);
    $filename = $rand.$postvars["image"];

    // Check not larger than max size.
    if($postvars["image_size"] <= $max_file_size){
        // Check is valid extension.
        if(in_array($ext,$valid_exts)){
            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);

                // Copy the image to one with the new width and height.
                imagecopyresampled($tmp,$image,0,0,0,0,$newwidth,$newheight,$width,$height);

                // Create image file with 100% quality.
                if(is_dir($directory)){
                    if(is_writable($directory)){
                        imagejpeg($tmp,$directory.$filename,100) or die(‘Could not make image file‘);
                        if(file_exists($directory.$filename)){
                            // Image created, now rename it to its
                            $ext_pos = strpos($rand.$postvars["image"],"." . $ext);
                            $strip_ext = substr($rand.$postvars["image"],0,$ext_pos);
                            // Rename image to .ico file
                            rename($directory.$filename,$directory.$strip_ext.".ico");
                            return ‘<strong>图标预览:</strong><br/>
                            <img src="‘.$directory.$strip_ext.‘.ico" border="0" title="Favicon 完毕预览" style="padding: 4px 0px 4px 0px;background-color:#e0e0e0" /><br/>
                            Favicon/ICO图标制作完毕: <a href="‘.$directory.$strip_ext.‘.ico" target="_blank" name="右键另存为下载!">点击/右键另存下载,后重命名为"favicon.ico"</a>‘;
                        } else {
                            "File was not created.";
                        }
                    } else {
                        return ‘The directory: "‘.$directory.‘" is not writable.‘;
                    }
                } else {
                    return ‘The directory: "‘.$directory.‘" is not valid.‘;
                }

                imagedestroy($image);
                imagedestroy($tmp);
            } else {
                return "Could not create image file.";
            }
        } else {
            return "图标过大,不能超过175KB";
        }
    } else {
        return "图片格式只能是后面几种 (jpg, jpeg, gif, png).";
    }
}
}

?>

需要进一步技术交流的朋友 ,请加我微信吧:15889726201

原文地址:https://www.cnblogs.com/keleyu/p/9447835.html

时间: 2024-08-29 22:49:56

ICO图标在线生成,php生成ICO图标在线制作源码的相关文章

Java开源生鲜电商平台-Java后端生成Token架构与设计详解(源码可下载)

Java开源生鲜电商平台-Java后端生成Token架构与设计详解(源码可下载) 目的:Java开源生鲜电商平台-Java后端生成Token目的是为了用于校验客户端,防止重复提交. 技术选型:用开源的JWT架构. 1.概述:在web项目中,服务端和前端经常需要交互数据,有的时候由于网络相应慢,客户端在提交某些敏感数据(比如按照正常的业务逻辑,此份数据只能保存一份)时,如果前端多次点击提交按钮会导致提交多份数据,这种情况我们是要防止发生的. 2.解决方法: ①前端处理:在提交之后通过js立即将按钮

解析大象跳转如何在线生成微信自动跳转第三方浏览器源码

源码使用场景: 1.用来实现微信自动跳转外部浏览器下载app2.用来实现微信内打开网页链接自动跳转浏览器访问指定页面3.防止网页链接由于被微信拦截,导致用户无法正常在微信内打开 源码说明: 适用安卓和苹果系统,支持任何网页链接.并且无论链接是否已经被微信拦截,均可实现微信内自动跳转浏览器打开. 生成的跳转链接具有极佳的防拦截效果. 源码体验: 1.复制分享链接(app下载页链接或网页链接),然后在浏览器中打开大象跳转地址:http://www.go51w.cn/ 2.在工具的输入框中粘贴我们刚才

C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码

前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.. 嗯,前面讲了那么多,是时候生成一个APK在真机上玩玩了. 今天的学习内容? 也只讲一个,如何打包生成安卓可安装的APK并精简大小. 正文 我记得,之前在写安卓方面的文章的时候,有人就问过我.Xamarin.Android为什么打包出来这么大?随便一个HelloWord就20-30MB? 嗯..今天我们就来解决

一个web图片热点生成工具(winform开发) 附源码

给图片加热点是web开发中经常用到的一个功能.这方面的工具也不少. 为了更好的满足自己的需求,写了一个winform程序. 可以方便的给图片加热点,更方便灵活! 源码下载 http://download.csdn.net/download/qq_29939347/10150681 生成的代码: 1 <img src = "D:\12.jpg" usemap = "#Map_2017-12-08-10-49-17" > 2 <map name=&qu

JAVA WEB项目中生成验证码及验证实例(附源码及目录结构)

[我是一个初学者,自己总结和网上搜索资料,代码是自己敲了一遍,亲测有效,现将所有的目录结构和代码贴出来分享给像我一样的初学者] 作用 验证码为全自动区分计算机和人类的图灵测试的缩写,是一种区分用户是计算机的公共全自动程序,这个问题可以由计算机生成并评判,但是必须只有人类才能解答.可以防止恶意破解密码.刷票.论坛灌水.有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录. 原理 在servlet中随机生成一个指定位置的验证码,一般为四位,然后把该验证码保存到session中.在

CodeSmith生成的增删改查方法模板源码分享

我是个懒人,喜欢用最少的精力去做更多的事.每每做项目和写一些demo的时候,增删改查都少不了,这些功能写多了就觉得太浪费精力时间,所以就写了个模板,让自己从重复的代码中解放出来. 个人不太会构架,所以模板就是生成一个三层架构,有dal.bll.和model层的项目.对应的数据库是SQL Server 下载链接:https://github.com/lzjluoze/-CodeSmith-/tree/master/NetCms-v1.0 生成演示: 说明:

基于python2.7+HTMLTestrunner生成报告后样式美化图版以及源码获取

1.增加饼形图 2.修改代码逻辑 3.优化界面样式,采用本地样式 4.加入游戏截图报告加入游戏截图 文件夹结构如下,具体涉及的css是经过修改的,和网上直接拔下来的不一样,如果需要的话加我QQ我发给你QQ:827435858 首先奉上代码,把代码复制下来命名HTMLTestRunner.py放到python2的Lib下 然后 from HTMLTestRunner import HTMLTestRunner导入目标模块 #coding=utf-8 """ A TestRunn

uSurvival 1.41多人在线生存逃杀吃鸡类游戏源码

uSurvival - the new Multiplayer Survival Asset from the creator of uMMORPG. Features:* Kill Zombies with an Axe* MMO Scale Networking via Mirror & Telepathy -> [ Same Scripts for Client & Server ] -> [ Rubberband Movement ] -> [ Item Use/

Mybatis Generator的model生成中文注释,支持oracle和mysql(通过修改源码的方式来实现)

在看本篇之前,最好先看一下上一篇通过实现CommentGenerator接口的方法来实现中文注释的例子,因为很多操作和上一篇基本是一致的,所以本篇可能不那么详细. 首先说一下上篇通过实现CommentGenerator接口的一些不足,毕竟只是实现了CommentGenerator接口,在里面的方法再怎么改,有效的也只是针对model类,并且使用的人大概也发现了,里面的addClassComment方法都知道是在类文件上面生成注释,但是无论我们在这个方法实现里写什么都没有效果,其实因为MGB默认是