php 图像处理和 GD 合并图片和往图片上写文字

使用php原生GD库,在已有的一张图片上写入文字,并且将另一张图片也加到原图片上。

<?php
// Create a 300x100 image
$im = imagecreatetruecolor(300, 100);
$red = imagecolorallocate($im, 0xFF, 0x00, 0x00);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

// Make the background red
imagefilledrectangle($im, 0, 0, 299, 99, $red);

// Path to our ttf font file
$font_file = './arial.ttf';

// Draw the text 'PHP Manual' using font size 13
imagefttext($im, 13, 0, 105, 55, $black, $font_file, 'PHP Manual');

// Output image to the browser

//将另一张图片合并到图片上
imagecopymerge($im, $img2, 50, 970, 0, 0, 200, 200, 100);

header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

注意:将两张图片合并时,需要考虑到图片的透明度。

将中文写在图片上时需要考虑到编码,和写入方式(一次性写入很多汉字,还是逐字写入,要写入很多汉字时,需要计算文字排版位置等)

$img = imagecreatefromstring($imgRes);
//注意这里
imagesavealpha($img, true);
imagecopy($im, $img, 296, 490, 0, 0, 158, 152);

//写入汉字,一行15个字
for ($i = 0; $i < mb_strlen($text); $i++) {
                $line = floor($i / 15);
                $x = 175 + $width * ($i - 15 * $line);
                imagettftext($im, 16, 0, $x, $y + $height * $line, $fontColor, $defaultFont, mb_substr($text, $i, 1));
            }

get
dirname(__DIR__) //根目录
mb_substr()
mb_strlen()
strlen()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 如以上DEMO截图所示效果,我们对于这种类似的功能肯定不算陌生,因为这可以说是实际开发中一类非常常见的功能需求了。...
    Machivellia阅读 2,127评论 1 13
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,018评论 25 708
  • PHP中GD库的使用 GD简介 PHP 不仅限于只产生 HTML 的输出,还可以创建及操作多种不同格式的图像文件。...
    dptms阅读 1,028评论 0 2
  • 一、照片名称:调出照片柔和的蓝黄色-简单方法, 1、打开原图素材,按Ctrl + J把背景图层复制一层,点通道面板...
    潇湘妃子JC阅读 4,281评论 0 17
  • 今天是星期六我不知爸爸妈妈今天还是明天带我出去玩儿,因为他们周六、日不定时又要上班加班,我又不能出去玩儿,我期待着...
    张佳艺我的宝贝阅读 398评论 1 2