燃烧字体哦,燃烧字体

justfont金萱 justfont 金萱 金萱那提 蘭陽明體 凝書體 阅读详情
/**
 * Burning Words, 
 * Effect of burning text with an ability to customize colors, 
 * fonts, burning speed and other parameters.
 *
 * Version: 1.0
 * Author: Michael Ryvkin, http://www.ponticstar.com
 * License: GNU Lesser General Public License, http://www.gnu.org/licenses/lgpl.html
 * Created: 2010-04-17
 * Last updated: 2010-04-17
 * Link: http://www.ponticstar.com/projects/burning-words/
 */

if(typeof(PonticStar) == "undefined"){ var PonticStar = {}; }

PonticStar.BurningWords = function (){
   this.interval_id = null;
   this.palette     = null;
   this.canvas      = null;  

   this.stop  = function(){
      if(this.interval_id !== null) clearInterval(this.interval_id);
   };

   this.show  = function(text, text_color, font, font_size, bg_color, bg_alpha, speed, id){
      this.stop();

      // Define a palette
      if(this.palette === null){
         this.palette = [];
         for(var i = 0; i < 64; i++){
            this.palette[i]       = [i * 4, 0,     0];
            this.palette[i + 64]  = [255,   i * 4, 0];
            this.palette[i + 128] = [255,   255,   i * 4];
            this.palette[i + 192] = [255,   255,   255];
         }
      }

      this.font_string = font_size + "px " + font;

      this.text = text;
      this.text_color_string = "rgb(" + parseInt(text_color.substring(0, 2), 16) + ","
                                      + parseInt(text_color.substring(2, 4), 16) + ","
                                      + parseInt(text_color.substring(4, 6), 16) + ")";

      this.bg_color_r = parseInt(bg_color.substring(0, 2), 16);
      this.bg_color_g = parseInt(bg_color.substring(2, 4), 16);
      this.bg_color_b = parseInt(bg_color.substring(4, 6), 16);
      this.bg_color_a = Math.floor(255 * bg_alpha / 100);
      this.bg_color_a_pct = bg_alpha / 100;

      this.bg_color_string = "rgba(" + this.bg_color_r + "," + this.bg_color_g + "," + this.bg_color_b + "," + this.bg_alpha + ")";

      // If animation speed is given in milliseconds
      var speed_msec; 
      if(speed && !isNaN(Number(speed)) && speed.toString().match(/^\s+$/) === null){
         speed_msec = speed;

      // Otherwise, if animation speed is given as a keyword
      } else {
         switch(speed){
         case "x-fast":
            speed_msec =  10; break;
         case "fast":
            speed_msec =  25; break;  
         case "slow":
            speed_msec = 100; break;  
         case "x-slow":
            speed_msec = 150; break; 
         default:
         case "normal":
            speed_msec =  50; break;
         }
      }
 
      if(!id){ id = 'text-burning-' + this.counter; }

      this.counter++;

      var el = document.getElementById(id);

      var canvas_id;
      if(!el){
         document.write('<canvas id="' + id + '" style="font-family:' + font + '; font-size:' + font_size + 'px"></canvas>');
         canvas_id = id;

      } else {
         el.innerHTML = '<canvas id="' + id + '-canvas" style="font-family:' + font + '; font-size:' + font_size + 'px"></canvas>';
         canvas_id = id + "-canvas";
      }

      this.canvas = document.getElementById(canvas_id);

      if(this.canvas.getContext){
         var dc = this.canvas.getContext('2d');
         dc.font = this.font_string;
         this.text_size = dc.measureText(text);

         this.canvas.width  = this.text_size.width + 10;
         this.canvas.height = Math.floor(font_size * 1.5);

         this.fire_decay = Math.floor(3 + Math.exp(3.6 - font_size/7));

         dc.fillStyle = "rgb(0,0,0)"; //bg_color_string;
         dc.fillRect (0, 0, this.canvas.width, this.canvas.height);
         this.image = dc.getImageData(0, 0, this.canvas.width, this.canvas.height);

         dc.fillStyle = "rgb(0,0,0)";
         dc.fillRect (0, 0, this.canvas.width, this.canvas.height);
         this.image_flame = dc.getImageData(0, 0, this.canvas.width, this.canvas.height);

         // drawing code here
         dc.fillStyle = "rgb(0,0,0)";
         dc.fillRect (0, 0, this.canvas.width, this.canvas.height);

         dc.fillStyle    = "rgb(255,255,255)";
         dc.font         = this.font_string;
         dc.textAlign    = 'center';
         dc.textBaseline = 'bottom';
         dc.fillText(text, this.canvas.width/2, this.canvas.height);
         this.image_src = dc.getImageData(0, 0, this.canvas.width, this.canvas.height);

         dc.putImageData(this.image, 0, 0);

         var that = this;
         this.interval_id = setInterval(function(){ that.burn(); } , speed_msec); 

      } else {
         el.innerHTML = "Canvas element is not supported";
      }
   };

   this.burn = function(){
      var dc = this.canvas.getContext('2d');

      var image_data_len = this.canvas.width * this.canvas.height * 4;
      for(var pos = 0; pos < image_data_len; pos+=4){
         if(this.image_src.data[pos] == 255){
            this.image_flame.data[pos] = Math.floor(Math.random() * 256);
         }
      }

      var incr1 = (this.canvas.width * 4);
      for(var pos = 0; pos < (image_data_len - incr1); pos+=4){
         var x = pos % incr1;

         var l = this.image_flame.data[ ((x == 0) ? pos + incr1 : pos) - 4 ];
         var r = this.image_flame.data[ ((x == incr1 - 4) ? pos - incr1 : pos) + 4 ];
         var b = this.image_flame.data[ pos + incr1 ];
         var avg = Math.floor((l + r + b + b) / 4);

         // auto reduce it so you get lest of the forced fade and more vibrant fire waves
         if (avg > 0){ avg -= this.fire_decay; }

         // normalize
         if (avg < 0){ avg = 0; }

         this.image_flame.data[pos] = avg;
      }

         
      // 4 for 4 ints per pixel
      for(var pos = 0; pos < image_data_len; pos+=4){
         if(this.image_flame.data[pos] != 0){
            var c = this.image_flame.data[pos];
            var pal = this.palette;
            var a = (1 - (3 * c)/255);
            if(a < 0){ a = 0; }
            if(a > this.bg_color_a){ a = this.bg_color_a; }

            this.image.data[pos]     = Math.min(255, pal[c][0] + Math.floor(this.bg_color_r * a));
            this.image.data[pos + 1] = Math.min(255, pal[c][1] + Math.floor(this.bg_color_g * a));
            this.image.data[pos + 2] = Math.min(255, pal[c][2] + Math.floor(this.bg_color_b * a));
            this.image.data[pos + 3] = Math.max(this.bg_color_a, Math.min(3 * c, 255));

         } else {
            this.image.data[pos]     = this.bg_color_r;
            this.image.data[pos + 1] = this.bg_color_g;
            this.image.data[pos + 2] = this.bg_color_b;
            this.image.data[pos + 3] = this.bg_color_a;
         }
      }

      // put pixel data on canvas
      dc.putImageData(this.image, 0, 0);

      dc.fillStyle    = this.text_color_string;
      dc.font         = this.font_string;
      dc.textAlign    = 'center';
      dc.textBaseline = 'bottom';
      dc.fillText(this.text, this.canvas.width/2, this.canvas.height);
   }
};

PS-制作燃烧的字体 PS-制作燃烧的字体 (作者:王浩 写作时间:2019年4月30日) 设计灵感:来之于字体,在网上找了很多种字体。我选择的字体是燃烧的字体,在网上搜索做这个字体的教程,来临摹它的一个元素。 设计完成的展示图 设计过程 第一步:先给它一个背景颜色,颜色为“#000000”。 第二步:用横排文字工具打出“祝老师们五一劳动节快乐”,字... 阅读详情

相关推荐

LoRA学习: SX1276/SX1277/SX1278对比

Lora芯片 SX1276/SX1277/SX1278的比较SX1276/7/8是一种半双工传输的低中频收发器,配备标了标准FSK和远距离扩频Lora调制解调器。该芯片可以用于超长距离的Lora扩频通信,并且抗干扰性强,同时达到低功耗要求。1、芯片关键参数对比: 可以看出SX1276的带宽范围为 7.8~500kHz ,扩频 因子6~12,并覆盖所有可用频段。 SX1277的带宽和频段方位与 S

HowieXue 薛永浩的博客 1万+

CSS3新增属性text-shadow详解及燃烧的字体实战开发

今天我们有很多程序员在给文本设置样式时,都感觉无从下手。一般有两种情况: 1) 不知道关于文本到底有哪些样式属性; 2) 即使借助开发工具的自动提醒,依然不清楚样式属性的具体意思,以及具体用法。   今天这篇文章,我将带领大家一起来领受CSS3在文本样式应用方面的超强能力。通过精彩的实例,来使大家重新认识CSS3文本样式,真心希望大家通过此篇文章,即使不能做到精通CSS3的文本样式的应...

cikegroup的专栏 666

css实现燃烧字体

使用css3实现燃烧字体的制作,使用css3的新属性text-shadow来实现

CSS3字体火焰燃烧效果

// fire @keyframes fireDiv { 0% { text-shadow: 0 0 4px white, 0 -5px 4px #ff3, 2px -10px 6px #fd3, -2px -15px 11px #f80, 2px -25px 18px #f20; } 25% { text-shadow: 0 0 4px white, 2px -7px 6px #ff3, 2px -12px 8px #fd3, -3px -20px 1.

小屁孩大帅-保密的博客 714

基于单片机的电子密码锁源代码

包含4-5个源程序,课程设计所搜,需要的拿走

WEB下载控件(ReYoWebDownLoad)最新版

API说明 ReYoWebDL.copyright="锐洋软件拥有版权 http://www.interdrp.com/" //必须 ReYoWebDL.url="http://dl.baofeng.com/storm3/Storm2009-0504-1.exe" //下载文件的路径 ReYoWebDL.path ="" //保存文件地址 ReYoWebDL.ReYoStartDownload() //下载动作 ReYoWebDL.ReYoStopDownload() //停止下载 ReYoWebDL.size //下载文件大小 ReYoWebDL.bytes//已下载大小 ReYoWebDL.speed //下载速度 KB/S ReYoWebDL.done //下载是否完成 ReYoWebDL.cancle=true; //是否取消下载 ReYoWebDL.urlsource //下载文件名 ReYoWebDL.percent //下载百分比

免费字体大宝库:16款燃烧的火焰效果英文字体

  我们生活在一个视觉的世界里,被众多的视觉效果环绕。不管你是在电脑前还是在户外,我们接触大量的图片,颜色和字体等等。字体是视觉元素成功的重要因素之一,在网页设计图形设计中扮演者关键角色。字体大宝库系列文章今天给大家带来的是16款燃烧的火焰效果英文字体,可以免费下载使用。 Blazed Che Lives Guevera Phoenix One S...

weixin_30404405的博客 95

飞机大战完整版代码

基本都加注释 个人感觉还是不错的。

c++C语言 萝莉喵喵

c++C语言c++C语言 萝莉 喵喵

计算机网络期末复习题

计算机网络期末复习题 201708-201801计算机网络复习指导发布-校考学生!!下载截止于12.5日晚上9点 2017-12-04 23:07 计算机网络复习指导-校内考试 §1.名词解释: 1. 计算机网络 2.网络体系结构 3.高速以太网 4.静态路由选择 5. 动态路由选择 6.子网掩码 8.动态主机配置协议 9.套接字 10.客户/服务器模型(C/S模型) 11.域名系统(DNS) 12.光纤分布式数据接口FDDI §2.简答题: 1.试谈你对网络安全的威胁和防病毒技术的认识。(线下教学课件) 2.简述物理层的四个特性。(线下教学课件) 3.计算机网络的组成(P2-P3) 4.计算机网络的功能(P3) 5.计算机网络标准化的相关组织(P4+线下教学课件) 6.计算机网络的性能指标(P8+线下教学课件) 7.简述你所知道的网络传输介质(P33-34) 8.物理层的四个特性(P34) 9.简述四种帧边界的划分方法(即组帧方法)。(P52-54+线下教学课件) 10.简述停止-等待流量控制(协议)。(P59+P62-P64+线下教学课件) 11.简述时分多路复用(P69+线下教学课件) 12.简述频分多路复用(P68+线下教学课件) 13.简述IPv4地址的分类(P122-123) 14.UDP数据报与IP分组的区别(P187) §3.论述题: 1.试说明数据链路层原语和协议的转换。(线下教学课件) 2.描述常规释放的过程,并画出其示意图。(线下教学课件) 3.奈奎斯特定理公式和香农定理公式的主要区别是什么? 4.试比较电路交换、报文交换和分组交换等三种数据传输方式。(P27-29) 5.谈谈你对差错控制方法的理解。(P54-58+线下教学课件) 6.谈谈域名解析过程(P225-226) 7.ARP和DNS是否有些相似?它们有何区别?(P227) 8.FTP的工作原理。(P228)

红太阳教育网站

红太阳教育网站

PS设计逼真的火焰燃烧字体

1、使用Photoshop 工具T文字输入DU英文字,颜色选为橙黄色。2.添加图层样式,为文字图层添加红色的外发光。3.添加图层样式,为文字添加光泽,选为正片叠底,不透明度100%,角度48,距离和大小自己调4、添加图层样式,为文字添加内发光,模式为颜色减淡,不透明度100%,大小自己调整5.扣取火焰比较漂亮的部分,叠在文字上,图层模式选线性减淡(添加)。...

zwcwu31的专栏 1413

51单片机发光二极管循环点亮

发光二极管循环点亮程序,发光二极管循环点亮程序,发光二极管循环点亮程序

marqueeview更改字体颜色_航海王燃烧意志:如何发布彩色聊天字体?这些代码可以浪一下...

诸君安好,雾夏菌报道。很多时候我们在游戏中,会看到有人在聊天栏发布的字体竟然是彩色的,更有甚者还能搞个炫彩的,很过分,很嚣张,自己也想整一个,那么这一回合就来看一下,究竟是怎么整的。1、彩色字体这个是比较容易的,使用的代码是:此处填字 也有更直接的:此处填字color=red,这个red就是红色,你可以替换成其他的颜色英文,就可以发送出来对应颜色的聊天字体了。目前只要是常规的颜色,都可以输入后发出...

weixin_39823299的博客 417

Unity 升级 xLua 版本,编译不同平台链接库

Unity 升级 xLua 详解

LymanCao的专栏 1801

NXP S32K3xx 多次复位(reset)后MCU跑死、崩溃、出错分析

s32k3出现多次复位后死机的情况

HeFlyYoung的博客 9515
上一篇: 使用dbcp做为数据库连接池
下一篇: 10大优秀的移动Web应用程序开发框架推荐
程序员迈克
博客等级 码龄16年 36粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值