javascript - 动态生成的图标

标签 javascript html favicon html5-canvas

是否可以仅使用 JavaScript 和 HTML 来动态生成网站图标,使用当前页面的网站图标作为背景,并在前景中使用随机数?

例如,假设当前的网站图标看起来与此类似:

======================
====XXXXXXXXXXXXXX====
====X=================
====X=================
====X=====XXXXXXXX====
====X============X====
====X============X====
====XXXXXXXXXXXXXX====
======================

如果可能,我如何仅使用 JavaScript 和 HTML 使其看起来与此类似:

======================
====XXXXXXXXXXXXXX====
====X=================
====X=================
====X=====XXXXXXXX====
====X=========--111--=
====X=========--1-1--=
====XXXXXXXXXX----1--=
==============--1111-=

map :
= : 白色背景
x : 原始 Favicon 图片
- : 带有数字的红色生成图像
1 : 白色文本

想法:

  • Canvas ?
  • 数据 URI 的?

最佳答案

编辑:得到它的工作

var canvas = document.createElement('canvas');
    canvas.width = 16;canvas.height = 16;
    var ctx = canvas.getContext('2d');
    var img = new Image();
    img.src = '/favicon.ico';
    img.onload = function() {
        ctx.drawImage(img, 0, 0);
        ctx.fillStyle = "#F00";
        ctx.fillRect(10, 7, 6, 8);
        ctx.fillStyle = '#FFFFFF';
        ctx.font = 'bold 10px sans-serif';
        ctx.fillText('2', 10, 14);

        var link = document.createElement('link');
        link.type = 'image/x-icon';
        link.rel = 'shortcut icon';
        link.href = canvas.toDataURL("image/x-icon");
        document.getElementsByTagName('head')[0].appendChild(link);
    }

您实际上可以运行 chrome 并粘贴此内容:

javascript: var canvas = document.createElement('canvas');canvas.width = 16;canvas.height = 16;var ctx = canvas.getContext('2d');var img = new Image();img.src = '/favicon.ico';img.onload = function() {ctx.drawImage(img, 0, 0);ctx.fillStyle = "#F00";ctx.fillRect(10, 7, 6, 8);ctx.fillStyle = '#FFFFFF';ctx.font = 'bold 10px sans-serif';ctx.fillText('2', 10, 14);var link = document.createElement('link');link.type = 'image/x-icon';link.rel = 'shortcut icon';link.href = canvas.toDataURL("image/x-icon");document.getElementsByTagName('head')[0].appendChild(link);}

进入浏览器并查看它的运行情况。

enter image description here

关于javascript - 动态生成的图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6964144/

相关文章:

html - 文本叠加隐藏在旁边的图像后面

asp.net - 图标未显示

动态元素的 foreach 类上的 Javascript 函数脚本

javascript - 函数命名的不同方式?

javascript - plugin-transform-es2015-modules-commonjs 未遵循代码顺序

html - 如何在横幅图片后面放置一个可点击的图标?

html - 使用氚在文本中的特定单词后注入(inject)换行符

javascript - Titanium ScrollView 无法正确显示 UI

html - 默认 fontawesome favicon 但颜色不同?可能通过类或 css

browser - 当书签拖到工具栏时如何设置图标/图标?