zoukankan      html  css  js  c++  java
  • php生成文字图片效果

    php生成文字图片效果
    最近看到php的GD功能,试着做了一个基本生成文字图片效果的代码:

    显示文字图片页面:demo.php
    <?php
    $str = $_REQUEST['str'] ? $_REQUEST['str']:"暂无输入";
    //$str = "中华人民共和国";
    $im = imagecreate(200,200);
    $white = imagecolorallocate($im,0xFF,0xFF,0xFF);
    imagecolortransparent($im,$white); //imagecolortransparent() 设置具体某种颜色为透明色,若注释

    $black = imagecolorallocate($im,0x00,0x00,0x00);
    imagefilledrectangle($im,50,50,150,150,$black);
    imagestring($im,5,50,160,"happy every day",$black);

    imagettftext($im,15,0,50,40,$black,"D:windowsFontssimhei.ttf",$str); //字体设置部分linux和windows的路径可能不同
    header("Content-type:image/png");
    imagepng($im);
    ?>

    调用图片页面:demo2.php
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <?php $var = "中华人民共和国"; ?>
    <img src="demo.php?str=<?php echo $var?>">

    文字图片进阶:
    环境:Red Hat AS4.0+GD2.0.28+FreeType 2.1.9
    目的:生成类似链接的即具有下划线的蓝色文字图像

    //获取文字并将其转化成图片
    //$str = urldecode($_REQUEST['str']) ? urldecode($_REQUEST['str']):"暂无输入";
    //$str = "中华人民共和国";
    $font_file = "/usr/share/fonts/zh_CN/TrueType/gbsn00lp.ttf";//字体设置部分linux的路径
    $text = $str; //要显示的字符串
    $font_size = 14; //字体大小
    $arr = imagettfbbox($font_size,0,$font_file,$text); //确定会变化的字符串的位置
    $text_width = $arr[2]-$arr[0]; //字符串文本框长度
    $text_height = $arr[3]-$arr[5]; ////字符串文本框高度

    $im = imagecreate($text_width,$text_height);
    $white = imagecolorallocate($im,0xFF,0xFF,0xFF);
    imagecolortransparent($im,$white); //imagecolortransparent() 设置具体某种颜色为透明色,若注释
    $blue = imagecolorallocate($im,0,0,255);

    $arr = imagettftext($im,$font_size,0,0,$text_height-5,$blue,$font_file,$text);
    imageline($im,$arr[0],$arr[1],$arr[2],$arr[3],$blue);
    //imagettftext($im,12,0,0,20,$black,"c:windowsFontssimhei.ttf",$url);//字体设置windows的路径

    header("Content-type:image/png");
    imagepng($im);
    imagedestroy($im);

    文字水印:
    <?php
    $pic=imagecreate(250,30);
    $black=imagecolorallocate($pic,0,0,0);
    $white=imagecolorallocate($pic,255,255,255);
    $font="C://WINDOWS//Fonts//simhei.ttf";
    $str ='php'.iconv('gb2312','utf-8','面对对象')." ovliverlin.cnblogs.com";
    imagettftext($pic,10,0,10,20,$white,$font,$str);

    header("Content-type: image/jpeg");
    $filename='../src/images/photo.jpg';
    $im=imagecreatefromjpeg($filename);
    imagecopymerge($im,$pic,0,0,0,0,250,30,50);
    imagejpeg($im);
    ?>

  • 相关阅读:
    通过Vim+少量插件配置一个高效简洁的IDE
    Javascript中Closure及其相关概念
    MongoDB对Javascript的支持
    正则表达式中分组功能高级用法
    NAT穿透解决方案介绍
    平衡二叉树算法分析
    字符串匹配KMP算法详解
    node 内存溢出
    React项目编译node内存溢出
    正则表达正整数/正则表达正整数不包括0
  • 原文地址:https://www.cnblogs.com/zqifa/p/php-15.html
Copyright © 2011-2022 走看看