zoukankan      html  css  js  c++  java
  • PHP 使用GD 库绘制图像,无法显示的问题

    根据官方GD 库绘制图像文档样式

    原基本样式

    $width = 120;
    $height = 50;
    $img = @imagecreatetruecolor($width, $height) or die('Cannot Initialize new GD image stream');;//新建一个GD图像资源
    $img_bgcolor = imagecolorallocate($img, mt_rand(157,255), mt_rand(157,255), mt_rand(157,255));//背景色
    $img_textcolor = imagecolorallocate($img, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));//字体颜色
    $img_rectangle = imagefilledrectangle($img,0,0,$width, $height,$img_bgcolor);//画一个矩形图像
    imagestring($img, 1, 5, 5, 'A Simple Text String', $img_textcolor);
    // 输出图像
    header("Content-type:image/png");
    imagepng($img);
    imagedestroy($img);//销毁图像
     
     
    但在实际运用中会出现无法正常显示图像的问题:
    出现的原因可能有以下几种情况:
      原因1:文件编码格式带有BOM 头,解决方法,用第3方编码工具,sublime 或 notepad++ 等把 文件格式保存为无BOM 的utf-8 格式
      原因2:PHP缓冲区的问题,解决方法利用 ob_clean();清空缓冲区。
     
    常用缓冲区函数 ob 函数

    ob_get_contents() - 返回输出缓冲区的内容

    ob_flush() - 冲刷出(送出)输出缓冲区中的内容

    ob_clean() - 清空(擦掉)输出缓冲区

    ob_end_flush() - 冲刷出(送出)输出缓冲区内容并关闭缓冲

    ob_end_clean() - 清空(擦除)缓冲区并关闭输出缓冲

    flush() - 刷新输出缓冲

    判断GD库是否安装

    function_exists('imagecreate') 通过判断扩展库提供的方法是否存在来判断get_extension_funcs() ,但不全面,不推荐该方式(因为有些扩展是没有提供函数的)

    in_array('扩展名', get_loaded_extensions()) 通过验证扩展是否在已加载的扩展中来判断是否安装(全面,但不简练)

    extension_loade('扩展库名') 通过判断扩展库是否加载来验证(全面,且不简练,推荐使用该方式来验证扩展是否安装加载)

  • 相关阅读:
    git track
    npm 升级到最新版本
    三行代码实现垂直居中和cube
    布局之定位
    MongoDB的安装问题
    正则表达式
    javascript表单验证
    Oracle中创建表,行级触发器,序列
    查找某个字符在字符串中出现的次数
    oracle表中有一列id她是自动增长的,插入一条数据时怎么取得id的值
  • 原文地址:https://www.cnblogs.com/zwesy/p/9542242.html
Copyright © 2011-2022 走看看