• php imagick添加文字和图片的方法


    Imagick添加文字和图片的方法
    <pre>
    <?php $image = new Imagick(); $image->readImage("/home/www/wordpress/1212/p1_bg.png");

    $watermark = new Imagick();

    $watermark->readImage("/home/www/wordpress/1212/2.png");
    /*$watermark->scaleImage(750, 1206, true); */ //放到等比例按照宽度缩小图片 按照
    $image->compositeImage($watermark, imagick::COMPOSITE_OVER, 0, 0);

    $text = new Imagick();
    $text>newImage(750, 1206, 'none'); 这个是包含文字的外面的容器 类似div
    $text>setImageFormat('png');
    $draw = new ImagickDraw();
    $draw>setFont ('fanzhengdahei.ttf');//设置中文字体 可以解决中文乱码问题
    /*$draw-&gt;setTextAlignment(1);*/ //1 从文字的左下方开始计算的 2 从文字中下来计算 3 从文字右下来计算 默认为1
    $draw>setFillColor(new ImagickPixel('#f00'));
    $draw>setFontSize(50);
    $draw->;annotation(100, 60, 'welcome');
    $draw>annotation(100, 80, 'welcome1'); //换行写法


    $draw1 = new ImagickDraw();
    $draw1>setFont ('fanzhengdahei.ttf');//设置中文字体 可以解决中文乱码问题
    /*$draw>setTextAlignment(1);*/ //1 从文字的左下方开始计算的 2 从文字中下来计算 3 从文字右下来计算 默认为1
    $draw1>setFillColor(new ImagickPixel('#f00'));
    $draw1>setFontSize(50);
    $draw1>annotation(400, 360, '啦啦啦啦啦啦');

    $text->drawImage($draw);
    $text->drawImage($draw1);


    $image>compositeImage($text, imagick::COMPOSITE_OVER, 0, 0);

    w
    </pre>
    ps:文字之间加间距 直接打空格就行了

    每行14个字 分割成数组的写法
    <pre> $mubiao = '哦啦啦啦啦阿拉啊啊啊啊啊啊啊啊啊二维违法微风啊我飞挖坟挖坟挖坟服务';

    $mubiaocount = mb_strlen($mubiao, 'utf-8');
    $fenge = 14;
    $jihang = $mubiaocount / $fenge;
    $mubiaolist = array();
    for ($i = 0; $i &lt;= $jihang; $i++) {
    $mubiaolist[] = mb_substr($mubiao, $fenge*$i, $fenge, 'utf-8');
    }
    </pre>
    <pre>ps:imagick实现多行文字
    foreach ($mubiaolist as $k =&gt; $v) {
    $draw1-&gt;annotation(170, 580+$k*40, $v);
    }
    </pre>
    ps:多行文字 可以用属性互相覆盖的

    <pre>
    $draw1->setTextAlignment(3);
    $draw1->annotation(350, 600, 'waf');
    $draw1->setTextAlignment(1);
    $draw1->annotation(177, 540, 'eee');
    </pre>

    ps:多行 字间距问题都用 单独给文字设置坐标来写为好

  • 相关阅读:
    Spring Batch 之 Sample(XML文件操作)(五)
    Spring Batch 之 Spring Batch 简介(一)
    Spring Batch 之 Sample(固定长格式文件读写)(六)
    Spring Batch 之 Sample(复合格式文件的读、多文件的写)(七)
    bat调用jar包的两个典型问题
    Spring Batch 之 Sample(Hello World)(三)
    开园大吉
    js中createElement方法的兼容性
    Struts2中关于"There is no Action mapped for namespace / and action name"的总结
    Spring Batch 之 框架流程简单介绍(二)
  • 原文地址:https://www.cnblogs.com/newmiracle/p/11871366.html
Copyright © 2020-2023  润新知