PHP图像处理
    画图
        验证码,统计图

安装GD库-----LAMP
            安装后在D:\APMServ5.2.6\PHP\ext文件中有php_gd2.dll文件
            在php.ini中extension=php_gd2.dll
        (1)创建画布---创建资源类型---高度  宽度
            resource imagecreate ( int $x_size , int $y_size )新建一个基于调色板的图像
            resource imagecreatetruecolor ( int $width , int $height ) 新建一个真彩色图像
        (2)绘制图像
            制定各种颜色
            imagecolorallocate();为一幅图像分配颜色
            (使用imagecolorallocate()要使用imagecreate()创建图像)

imagefill()区域填充
            矩形,圆,点,线段,扇形,画字(字符,字符串,freeType)
            每一个图像对应一个函数
            imagefilledrectangle()画一矩形并填充
            imagerectangle()画一个矩形
            imageline()画一条线段
            imagesetpixel()画一个单一像素
            imageellipse() 画一个椭圆

    imagefilledellipse() 画一椭圆并填充

<?php
    //1.创建图片资源
    $img=imagecreatetruecolor(200,200);

//    $img=imagecreate(200,200);

    $red=imagecolorallocate($img, 255, 0, 0);
    $yellow=imagecolorallocate($img,255,255,0);
    $green=imagecolorallocate($img,0,255,0);
    $blue=imagecolorallocate($img,0,0,255);
    $white=imagecolorallocate($img,255,255,255);
    //区域填充
    imagefill($img,0,0,$white);

    //2.画各种图像
    //画一矩形并填充
    imagefilledrectangle($img, 10, 10, 50, 30, $blue);
    //画一个矩形
    imagerectangle($img,100,100,190,80,$green);

    //画一条线段
    imageline($img,0,0,200,200,$red);
    //画点
    imagesetpixel($img,200,90,$yellow);
    //画一个椭圆
    imageellipse($img,100,100,100,100,$green);
    //画一个椭圆并填充
    imagefilledellipse($img,100,100,10,10,$red);
    //3.输出或保存图像
    header("Content-Type:image/gif");
    imagegif($img);

    //4.释放资源
    imagedestroy($img);

?>

imagefilledarc()画一椭圆弧且填充

<?php
    //1.创建图片资源
    $img=imagecreatetruecolor(200,200);

    $white=imagecolorallocate($img,255,255,255);  //白
    $gray=imagecolorallocate($img,0xc0,0xc0,0xc0); //灰
    $darkgray=imagecolorallocate($img,0x90,0x90,0x90);  //淡灰
    $navy=imagecolorallocate($img,0,0,0x80);    //
    $darknavy=imagecolorallocate($img,0,0,0x50);
    $red=imagecolorallocate($img,255,0,0);     //红
    $darkred=imagecolorallocate($img,0x90,0,0);  //淡红

    //背景设为白色
    imagefill($img, 0, 0, $white);

    //2.制作3D的效果
    for($i=60;$i>50;$i--){
        //imagefilledarc() 画一椭圆弧且填充
        imagefilledarc($img,50,$i,100,50,-160,40,$darknavy,ING_ARC_PIE);
        imagefilledarc($img,50,$i,100,50,40,75,$darkgray,ING_ARC_PIE);
        imagefilledarc($img,50,$i,100,50,75,200,$darkred,ING_ARC_PIE);
    }
    imagefilledarc($img,50,$i,100,50,-160,40,$navy,ING_ARC_PIE);
    imagefilledarc($img,50,$i,100,50,40,75,$gray,ING_ARC_PIE);
    imagefilledarc($img,50,$i,100,50,75,200,$red,ING_ARC_PIE);
    //3.输出或保存图像
    header("Content-Type:image/gif");
    imagegif($img);

    //4.释放资源
    imagedestroy($img);

?>

    imagechar() 水平地画一个字符
            imagefttext()使用 FreeType 2 字体将文本写入图像

<?php
    //创建图片资源
    $img=imagecreatetruecolor(200,200);

    $white=imagecolorallocate($img,255,255,255);
    $gray=imagecolorallocate($img,0xc0,0xc0,0xc0);
    $darkgray=imagecolorallocate($img,0x90,0x90,0x90);
    $navy=imagecolorallocate($img,0,0,0x80);
    $darknavy=imagecolorallocate($img,0,0,0x50);
    $red=imagecolorallocate($img,255,0,0);
    $darkred=imagecolorallocate($img,0x90,0,0);

    //背景设为白色
    imagefill($img, 0, 0, $gray);
    //水平画字符
    imagechar($img,5,100,100,"A",$red);
    imagechar($img,5,120,120,"B",$red);
    //垂直画字符
    imagecharup($img,5,60,60,"C",$red);
    imagecharup($img,5,80,80,"D",$red);
    //画字符串
    imagestring($img, 3, 10, 10, "hello", $navy);
    imagestringup($img,3,150,150,"hello",$navy);

    //imagefttext()使用 FreeType 2 字体将文本写入图像
    imagettftext($img, 25, 60, 160, 160, $red, "simkai.ttf", "你好");
    //输出或保存图像
    header("Content-Type:image/gif");
    imagegif($img);

    //释放资源
    imagedestroy($img);

?>

(3)输出图像/保存处理好的图像
            输出各种类型(gif,png,jpeg)
            imagegif();
            imagejpeg();
            imagepng();
        (4)释放资源
            imagedestroy();

PHP图像处理之画图的更多相关文章

  1. Java -- AWT 画图,图像处理

    1. AWT画图  Graphics类  提供绘制简单图形的方法 更新图片时用到 repaint , update , 程序不应该主动调用paint和update, 这两个方法都应该是由AWT系统负责 ...

  2. ASP.NET 画图与图像处理-生成高质量缩略图

    http://www.cftea.com/c/2007/08/SG9WFLZJD62Z2D0O.asp

  3. ASP.NET 画图与图像处理-如何直接输出到页面

    有时候我们生成的图片并不需要保存到磁盘中,而是直接输出到页面,比如验证码.实时报表等,如何做呢?请参考如下:     protected void Page_Load(object sender, E ...

  4. opencv6.3-imgproc图像处理模块之边缘检测

    接opencv6.2-improc图像处理模块之图像尺寸上的操作 本文大部分都是来自于转http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutori ...

  5. 黄聪:C#图像处理(各种旋转、改变大小、柔化、锐化、雾化、底片、浮雕、黑白、滤镜效果) (转)

    一.各种旋转.改变大小 注意:先要添加画图相关的using引用. //向右旋转图像90°代码如下:private void Form1_Paint(object sender, System.Wind ...

  6. C# (GDI+相关) 图像处理(各种旋转、改变大小、柔化、锐化、雾化、底片、浮雕、黑白、滤镜效果) (转)

    C#图像处理   (各种旋转.改变大小.柔化.锐化.雾化.底片.浮雕.黑白.滤镜效果)     一.各种旋转.改变大小   注意:先要添加画图相关的using引用.   //向右旋转图像90°代码如下 ...

  7. MATLAB图像处理工具箱

    下列表格中除了个别函数外,其余函数都是图像处理工具箱提供的关于图像处理的函数,现摘录到此以备查找. 表1 图像显示 函数名 功能说明 函数名 功能说明 colorbar 颜色条显示 montage 按 ...

  8. windows“画图”工具用法

    图片编辑工具不少,photoshop功能强大,但是并不是那么容易掌握.而且,倘若一个简单的图片处理问题就使用这么强大的工具,有点“杀鸡焉用牛刀”的意思,要知道只打开photoshop就需要一段等待时间 ...

  9. matlab图像处理

    matlab图像处理 转自:http://www.cnblogs.com/lovebay/p/5094146.html 1. 图像和图像数据 缺省情况下,MATLAB将图像中的数据存储为双精度类型(d ...

随机推荐

  1. JavaWeb基础:HTTP协议和基于Restful的架构

    HTTP介绍 HTTP协议是互联网上应用最广泛的协议,它是一种无状态的数据传输协议,规定了数据请求方和数据响应方的数据传输方式:使用HTTP协议可以跨平台,跨语言的进行数据传输和展示. 目前的Web应 ...

  2. Java 基础知识点(必知必会其二)

    1.如何将数字输出为每三位逗号分隔的格式,例如“1,234,467”? package com.Gxjun.problem; import java.text.DecimalFormat; impor ...

  3. uva514(trail)(模拟栈)

    //#define LOCAL #include<cstdio> #include<cstring> #include<cstdlib> #include<s ...

  4. PHP获取当前页面的URL作为参数以供下一层的页面可以返回上一层页面

    1.基础url的获取 #测试网址: http://localhost/blog/testurl.php?id=5 //获取域名或主机地址 echo $_SERVER['HTTP_HOST'].&quo ...

  5. influxdb和boltDB简介——底层本质类似LMDB,MVCC+B+树

    influxdb influxdb是最新的一个时间序列数据库,最新一两年才产生,但已经拥有极高的人气.influxdb 是用Go写的,0.9版本的influxdb对于之前会有很大的改变,后端存储有Le ...

  6. BZOJ3993 [SDOI2015]星际战争

    二分答案...然后最大流验证是否可行... 没了,好水啊QAQ /************************************************************** Prob ...

  7. [转]BeginInvoke和EndInvoke方法浅析

    开发语言:C#3.0   IDE:Visual Studio 2008   一.C#线程概述   在操作系统中一个进程至少要包含一个线程,然后,在某些时候需要在同一个进程中同时执行多项任务,或是为了提 ...

  8. 使用MediaPlayer播放音频-----之一

    MediaPlayer提供了如下方法来指定装载相应的音频文件: 1.void  setDataSource( String  path):指定装载path路径所代表的文件. 2.void  setDa ...

  9. OLAP vs OLTP: what makes the difference

    OLAP vs OLTP: what makes the difference OLPT and OLAP are complementingtechnologies. You can't live ...

  10. 在 Ubuntu 14.04/15.04 上配置 Node JS v4.0.0

    大家好,Node.JS 4.0 发布了,这个流行的服务器端 JS 平台合并了 Node.js 和 io.js 的代码,4.0 版就是这两个项目结合的产物——现在合并为一个代码库.这次最主要的变化是 N ...