输出图像

PHP作为一种Web语言,无论是解析出的HTML代码还是二进制的图片,最终都要通过浏览器显示。应用GD2函数绘制图像首先需要用header()函数发送HTTP头信息给浏览器,告知所要输出的图像的类型,然后应用imagegif()函数、imagejpeg()函数或者imagepng()函数等分别输出GIF,JPG和PNG格式的图片。

header(string,replace,http_response_code)
参数 描述
string 必需。规定要发送的报头字符串。
replace 可选。指示该报头是否替换之前的报头,或添加第二个报头。 默认是 true(替换)。false(允许相同类型的多个报头)。
http_response_code 可选。把 HTTP 响应代码强制为指定的值。(PHP 4 以及更高版本可用)

bool imagegif( resource $image[, string $filename] )
    imagegif()函数从image图像以filename为文件名创建一个GIF图像。image参数是imagecreate()或imagecreatefromgif()等创建图像函数的返回值,图像格式为GIF。如果应用imagecolortransparent()函数,则图像设置为透明,格式即为gif。filename参数为可选,如果省略,则原始图像流将被直接输出。
imagejpeg()和imagepng()函数的使用方法与imagegif()函数的使用方法类似,这里不再讨论。

例如:
    首先应用header()函数发送HTTP头信息给浏览器告知输出的媒体类型,在这里输出GIF格式的图片,然后创建一副192*36像素的画布,并在画布上绘制"I Like PHP"的文字,最后应用函数imagegif()输出所创建的图像。
<?php
    header("Content-type:image/gif");
    $image = imagecreatetruecolor(192,36);//新建图像
    $trans_color = imagecolorAllocate($image,200,200,200);   //分配一个灰色
    imagefill($image,0,0,$trans_color);                 // 从左上角开始填充灰色
    $color = imagecolorallocate($image,255,0,255);//设置图像中文字的颜色
    imagettftext($image,18,0,50,26,$color,"arial.ttf","I Like PHP");//输出文字
    imagegif($image);//输出图像
    imagedestroy($image);//释放内存空间

运行结果为:

代码解析:

用imagecreatetruecolor(int x,int y)建立的是一幅大小为x和y的黑色图像(默认为黑色),如想改变背景颜色则需要用填充颜色函数imagefill($img,0,0,$color);

imagecreate 新建一个空白图像资源,用imagecolorallocate()添加背景色

    array Imagettftext(int im, int size, int angle, int x, int y, int col, string fontfile, string text);

本函数将 TTF (TrueType Fonts) 字型文字写入图片。参数 size 为字形的尺寸;angle 为字型的角度,顺时针计算,0 度为水平,也就是三点钟的方向 (由左到右),90 度则为由下到上的文字;x,y 二参数为文字的坐标值 (原点为左上角);参数 col 为字的颜色;fontfile 为字型文件名称,亦可是远端的文件;text 当然就是字符串内容了。返回值为数组,包括了八个元素,头二个分别为左下的x、y 坐标,第三、四个为右下角的 x、y 坐标,第五、六及七、八二组分别为右上及左上的 x、y 坐标。

注意此函数中的fontfile的路径问题,上例中,字体文件和PHP文件处于同一个目录中。
时间: 2024-11-13 02:41:09

输出图像的相关文章

PHP 输出图像 imagegif 、imagejpeg 与 imagepng 函数

imagegif().imagejpeg().imagepng() 和 imagewbmp() 函数分别允许以 GIF.JPEG.PNG 和 WBMP 格式将图像输出到浏览器或文件. PHP 输出图像 PHP 允许将图像以不同格式输出: imagegif():以 GIF 格式将图像输出到浏览器或文件 imagejpeg():以 JPEG 格式将图像输出到浏览器或文件 imagepng():以 PNG 格式将图像输出到浏览器或文件 imagewbmp():以 WBMP 格式将图像输出到浏览器或文件

输出图像到文件 imwrite()[OpenCV 笔记7]

bool imwrite(const string& filename, InputArray img, const vector<int>& params=vector<int>()); filename 待写入的文件名.保存图像的格式由扩展名决定. img 一般为一个Mat类型的图像 params 特定格式保存的参数编码: JPEG:params表示0到100的图片质量(CV_IMWRITE_JPEG_QUALITY),默认值为95: PNG:params表示压

mvc4验证码&amp;输出图像的处理方式

/// <summary> /// 绘制验证码 /// </summary> /// <returns></returns> public ActionResult VerificationCode() { int _verificationLength = 6; int _width = 100, _height = 20; SizeF _verificationTextSize; Bitmap _bitmap = new Bitmap(Server.Ma

【Machine Learning 学习笔记】OSX Octave 输出图像问题

Uninstall any existing gnuplot on your OSX brew uninstall gnuplot Install gnuplot with either X or X11 brew-install gnuplot --with-x11 Finally, set the GNUTERM to X11 setenv("GNUTERM","X11") 或者 brew install gnuplot --with-qt setenv(&qu

OpenCV点滴3

这段时间想稍微系统地学下: 1.Mat-基本图像容器: OpenCV函数中输出图像的内存分配是自动完成的(如果不特别指定的话). 使用OpenCV的C++接口时不需要考虑内存释放问题. 赋值运算符(=)和拷贝构造函数( Mat A,Mat B(A) )只拷贝信息头. 使用函数 clone() 或者 copyTo() 来拷贝一副图像的矩阵. Mat M(2,2, CV_8UC3, Scalar(0,0,255)); 行数,列数,8位,3通道,指定的值初始化: Point2f P(5,1) -->[

程序员取悦女朋友的正确姿势---Tips(iOS美容篇)

前言 女孩子都喜欢用美图工具进行图片美容,近来无事时,特意为某人写了个自定义图片滤镜生成器,安装到手机即可完成自定义滤镜渲染照片.app独一无二,虽简亦繁. JH定律:魔镜:最漂亮的女人是你老婆魔镜:程序员不是木头人 核心技术 图片滤镜核心技术的基本思路如下: 核心技术流程 具体流程 1.创建一个图像处理工具类 注:该类实例包括一个图像处理方法,该方法在传入原始图像和一个颜色矩阵后生成一个处理好的图像. @interface JHFeilterManager : NSObject @proper

Opencv图像识别从零到精通(9)----对比度亮度改变

一张图像来说,会有不同的亮暗程度,很多时候都要增强一下,增强的方法有很多,从大量可以说是线性变换和非线性变换,当然这是说空间域的,频率域的暂时不考虑. 线性变换增强,也是对点的操作,如下图 一.点操作,线性增强 两种常用的点过程(即点算子),是用常数对点进行 乘法 和 加法 运算: 两个参数  和  一般称作 增益 和 偏置 参数.我们往往用这两个参数来分别控制 对比度 和 亮度 . 你可以把  看成源图像像素,把  看成输出图像像素.这样一来,上面的式子就能写得更清楚些: 其中,  和  表示

Opencv图像识别从零到精通(7)----图像平移、旋转、镜像

根据vc6.0c++的学习经验,如果可以很好的自己编程,让图像进行平移旋转这些操作,那么就好像能够清楚的看见图像的内部结构当然这里你怎么访问像素,这个可以自己选一种适合的,最多的是ptr指针,at也是挺多的.看着很简单的变换,可以对图像处理上手的更快,当然对于旋转可能就稍微i难了一点,不过opencv提供了resize(0,remap()等这样的函数,可以方便的让我们进行学习-特别是旋转的时候,有很多的变换,你可以任意旋转一个角度,也可能一直旋转,当然还可以保持图像大小不变的旋转和大小变换的旋转

详解OS X和iOS图像处理框架Core Image

转自:http://www.csdn.net/article/2015-02-13/2823961-core-image 摘要:本 文结合实例详解了OS X和iOS图像处理框架Core Image的使用,如何通过Core Image来创建和使用iOS的内置滤镜,非常适合初学者学习.虽然示例代码是用Swift写的iOS程序,不过实现概念很容易转换到 Objective-C和OS X. 这篇文章会为初学者介绍一下Core Image,一个OS X和iOS的图像处理框架. 如果你想跟着本文中的代码学习