首页 > 编程语言 >php imagick实现文字渐变

php imagick实现文字渐变

时间:2023-04-20 09:23:23浏览次数:123  
标签:draw gradual 渐变 canvas imagick rgba text php change

 

参考文档: https://fengkui.net/articles/117

 

// 实现css 

background: linear-gradient(-66deg, rgba(222,162,79,0.9) 0%, rgba(255,236,161,0.94) 39.74609375%, #DEA24F 100%);

  

   public function drawPrice($priceText) {
        // 创建新的画布对象和透明底图像
        $canvas = new \Imagick();
        $canvas->newImage(720, 480, "none");


        $text = '冯奎博客';

        $text_color = '#000000';
        $text_size = 80;

        // 创建新的imagick对象
        $im = new \Imagick();
        // 创建新图像。这将用作填充图案
        $gradual_change = 100;
        $im->newPseudoImage($gradual_change, $gradual_change, "gradient:rgba(222,162,79,0.9)-rgba(255,236,161,0.94)-rgba(222,162,79,1)");
        //$im->rotateimage("rgba(255, 255, 255, 0)", -60);

        // 创建imagickdraw对象
        $draw = new \ImagickDraw();
        // 开始一个叫做“渐变”的新模式
        $draw->pushPattern('gradient', 0, 0, $gradual_change, $gradual_change);
        // 合成图案上的渐变
        $draw->composite(\Imagick::COMPOSITE_OVER, 0, 0, $gradual_change, $gradual_change, $im);

        // 关闭模式
        $draw->popPattern();
        // 选择字体文件
        $draw->setFont("./poster/Alibaba-PuHuiTi-Medium.otf");
        // 使用称为“渐变”的图案作为填充
        $draw->setFillPatternURL('#gradient');
        // 设置字体大小
        $draw->setFontSize($text_size);

        // 添加一些文本到画布上
        $draw->annotation(30 + 250 + 30, 260, $text);

        // 将ImagickDraw绘制到画布上
        $canvas->drawImage($draw);
        // 图像周围1个黑色边框
        $canvas->borderImage('black', 1, 1);
        // 将格式设置为PNG
        $canvas->setImageFormat('png');
        // 输出图像
        // header("Content-Type: image/png");
        return $canvas;

    }

  

标签:draw,gradual,渐变,canvas,imagick,rgba,text,php,change
From: https://www.cnblogs.com/guiyishanren/p/17335451.html

相关文章

  • thinkphp
    ThinkPHP是一个开源的PHP框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。早期的思想架构来源于Struts,后来经过不断改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开......
  • 【web 开发基础】PHP 自定义函数之函数的返回值-PHP 快速入门 (27)
    前言在定义函数时,函数名后面括号中的参数列表是用户在调用函数时用来将数据传递到函数内部的接口,而函数的返回值则将函数执行后的结果返回给调用者。如果函数没有返回值,就只能算一个执行过程。只依靠函数做一些事情还不够,有时更需要在程序脚本中使用函数执行后的结果。由于变量的作......
  • thinkphp6 获取刚入库的数据ID方法
    首先,插入数据,有3个方法都可以实现create()create方法返回当前模型的对象实例,用箭头符号就能获取主键ID如果你的自增ID是id的话,获取方法也要变成$order->id$order=order::create($data);echo$order->id;save()save方法返回新增总数,不能通过返回值获取。需要通过......
  • GraphPad Prism 9.5.1 for Mac 简单高效的实用性医学绘图分析工具
    GraphPadPrismGraphPadPrism是一款非常实用的统计软件,其功能非常强大,能够帮助用户进行各类科研数据的处理和分析,快速绘制出各种专业的图像和数据报告。GraphPadPrism软件的用户界面非常友好,易于学习和操作,具有多种语言版本,可以帮助全球各地的用户完成科研数据分析工作。该软......
  • php---pdo类 添加记录
    1<?php2header("Content-type:text/html;charset=utf-8");3//设置中国时区4date_default_timezone_set('PRC');56$dsn="mysql:host=127.0.0.1;port=3306;dbname=test;charset=utf8";7$username="root";8$pass......
  • XAPMM上更改了root密码,怎么更新phpMyAdmin的配置文件
    要更新phpMyAdmin的配置文件以反映在XAPMM上更改的root密码,请按照以下步骤操作:1.打开phpMyAdmin的配置文件:在XAPMM中,phpMyAdmin的配置文件通常位于D:\xampp\phpMyAdmin2.在配置文件中,找到以下行:$cfg['Servers'][$i]['user']='root';$cfg['Servers'][$i]['password']......
  • PHP 7 教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介PHP7入门教程-从简单的步骤了解PHP7,从基本到高级概念,包括简介,性能,环境设置,标量类型声明,返回类型声明,空值合并运算符,Spaceship运算符,常量数组,匿名类,Closure::call(),Filteredunserialize(),IntlChar,CSPRNG,Expectations,useStatement,ErrorHandling,IntegerDivision,Sess......
  • Qt之渐变填充
    Qt现在支持3种类型的渐变填充:(1).线性渐变:在开始点和结束点之间插入颜色(2).辐射渐变:在焦点和环绕它的圆环间插入颜色(3).锥形渐变:在圆心周围插入颜色这三种渐变分别由QGradient的3个子类来表示,QLinearGradient表示线性渐变,QRadialGradient表示辐射渐变,QConicalGradient表示......
  • php类学习 汽车类
    <?phpclassCar{var$color;functionCar($color="red"){$this->color=$color;}functionwhat_color(){return$this->color;}}functionprint_vars($obj){foreach(get_object_vars($obj)as$prop......
  • thinkphp: 用redis存储短信验证码(thinkphp v6.0.12LTS)
    一,配置redis1,编辑.env[REDIS0]TYPE=redisHOST=127.0.0.1PORT=6379PASSWORD=2,config/cache.php<?php//+----------------------------------------------------------------------//|缓存设置//+----------------------------------------------------......