php课程 8-28 php如何绘制生成显示图片

一、总结

一句话总结:gd库轻松解决

1、php图片操作生成的图的两种去向是什么?

一种在页面直接输出,一种存进本地磁盘

2、php操作图片的库有哪些?

PHP: Image Processing and Generation - Manual
http://php.net/manual/en/refs.utilspec.image.php
Cairo
Exif
GD
Gmagick
ImageMagick

3、如何防止网站强刷注册?

a、验证码
b、ip限制,比如这个ip只能注册30个用户,多了就让你明天再来

4、如何防止网站暴力破解用户名?

记录用户名,如果输入错5次,那只能明天再来登录
第一次没有验证码,输入出错之后验证码就出来

5、网站上面图片的缩放、裁剪、加水印是怎么实现的?

交给的php,gd库轻松解决

6、php中常见的资源类型有哪些?

数据库连接资源
gd库画布资源

7、php变量或者说资源的释放是什么样的?

一个脚本执行完,执行到最后之后,里面的所有变量或者说资源都会被删除,所以多个php脚本的重复变量是不会相互影响的。

8、html如何声明本文档是图片?

header头中content-type

header('content-type:image/jpeg');

9、gd库的使用需要额外引包么?

不需要,直接进去就开始干就行了,比如说创建画布资源

 1 <?php
2 // 1.创建画布资源
3 $img=imagecreatetruecolor(500,300);
4
5 // 2.准备颜色
6 $black=imagecolorallocate($img,0,0,0);
7 $white=imagecolorallocate($img,255,255,255);
8 $red=imagecolorallocate($img,255,0,0);
9 $green=imagecolorallocate($img,0,255,0);
10 $blue=imagecolorallocate($img,0,0,255);
11
12 // 3.填充画布
13 imagefill($img,0,0,$black);
14
15 // 4.在画布上画图像或文字
16 imagefilledellipse($img,250,150,200,200,$white);
17
18 // 5.输出最终图像或保存最终图像
19 header('content-type:image/jpeg');
20
21 // 图片从浏览器上输出
22 imagejpeg($img);
23
24 // 把图片保存到本地
25 // imagejpeg($img,'jin.jpg');
26
27 // 6.释放画布资源
28 imagedestroy($img);
29
30 ?>

10、php中gd画图的场景有哪些?

1.验证码
2.缩放
3.裁剪
4.水印

11、php中创建图像的六个步骤是什么?

1.创建画布资源
$img=imagecreatetruecolor(500,300);

2.准备颜色
$black=imagecolorallocate($img,0,0,0);
$white=imagecolorallocate($img,255,255,255);
$red=imagecolorallocate($img,255,0,0);
$green=imagecolorallocate($img,0,255,0);
$blue=imagecolorallocate($img,0,0,255);

3.填充画布
imagefill($img,0,0,$black);

4.在画布上画图像或文字
imagefilledellipse($img,250,150,200,200,$white);

5.输出最终图像或保存最终图像
header('content-type:image/jpeg');

1)图片从浏览器上输出
imagejpeg($img);

2)把图片保存到本地
imagejpeg($img,'jin.jpg');

6.释放画布资源
imagedestroy($img);

 1 <?php
2 // 1.创建画布资源
3 $img=imagecreatetruecolor(500,300);
4
5 // 2.准备颜色
6 $black=imagecolorallocate($img,0,0,0);
7 $white=imagecolorallocate($img,255,255,255);
8 $red=imagecolorallocate($img,255,0,0);
9 $green=imagecolorallocate($img,0,255,0);
10 $blue=imagecolorallocate($img,0,0,255);
11
12 // 3.填充画布
13 imagefill($img,0,0,$black);
14
15 // 4.在画布上画图像或文字
16 imagefilledellipse($img,250,150,200,200,$white);
17
18 // 5.输出最终图像或保存最终图像
19 header('content-type:image/jpeg');
20
21 // 图片从浏览器上输出
22 imagejpeg($img);
23
24 // 把图片保存到本地
25 // imagejpeg($img,'jin.jpg');
26
27 // 6.释放画布资源
28 imagedestroy($img);
29
30 ?>

二、php如何绘制生成显示图片

1、相关知识

php中gd画图的场景:
1.验证码
2.缩放
3.裁剪
4.水印

php中创建图像的六个步骤:
1.创建画布资源
$img=imagecreatetruecolor(500,300);

2.准备颜色
$black=imagecolorallocate($img,0,0,0);
$white=imagecolorallocate($img,255,255,255);
$red=imagecolorallocate($img,255,0,0);
$green=imagecolorallocate($img,0,255,0);
$blue=imagecolorallocate($img,0,0,255);

3.填充画布
imagefill($img,0,0,$black);

4.在画布上画图像或文字
imagefilledellipse($img,250,150,200,200,$white);

5.输出最终图像或保存最终图像
header('content-type:image/jpeg');

1)图片从浏览器上输出
imagejpeg($img);

2)把图片保存到本地
imagejpeg($img,'jin.jpg');

6.释放画布资源
imagedestroy($img);

绘制图像:
• imagefill();   //区域填充
• imagesetpixel();  //画一个像素
• imageline();    //画一条线
• imagerectangle();   //画一个矩形
• imagefilledrectangle();   //画一矩形并填充
• imagepolygon();     //画一个多边形
• imagefilledpolygon();  //画一个多边形并填充
• imageellipse();  //画一个椭圆
• imagefilledellipse();    //画一个椭圆并填充
• imagearc();    //画一个椭圆弧
• imagefilledarc();  //画一个椭圆弧并填充
• imagestring();   //水平地画一行字符串
• imagestringup();  //垂直地画一行字符串
• imagechar();   //水平地画一个字符
• imagecharup();   //垂直地画一个字符
• imagettftext();  //用truetype字符向图像画一个字符串

 

2、代码

 <?php
// 1.创建画布资源
$img=imagecreatetruecolor(500,300); // 2.准备颜色
$black=imagecolorallocate($img,0,0,0);
$white=imagecolorallocate($img,255,255,255);
$red=imagecolorallocate($img,255,0,0);
$green=imagecolorallocate($img,0,255,0);
$blue=imagecolorallocate($img,0,0,255); // 3.填充画布
imagefill($img,0,0,$black); // 4.在画布上画图像或文字
imagefilledellipse($img,250,150,200,200,$white); // 5.输出最终图像或保存最终图像
header('content-type:image/jpeg'); // 图片从浏览器上输出
imagejpeg($img); // 把图片保存到本地
// imagejpeg($img,'jin.jpg'); // 6.释放画布资源
imagedestroy($img); ?>
 

php课程 8-28 php如何绘制生成显示图片的更多相关文章

  1. 斯坦福NLP课程 | 第15讲 - NLP文本生成任务

    作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www. ...

  2. java web学习总结(九) -------------------通过Servlet生成验证码图片

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:

  3. JavaWeb---总结(九)通过Servlet生成验证码图片

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片  1 package gacl. ...

  4. [深入浅出WP8.1(Runtime)]生成图片和存储生成的图片文件

    7.2.3 使用RenderTargetBitmap类生成图片 RenderTargetBitmap类可以将可视化对象转换为位图,也就是说它可以将任意的UIElement以位图的形式呈现.那么我们在实 ...

  5. javaweb学习总结(九)—— 通过Servlet生成验证码图片

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:

  6. 012. asp.net生成验证码图片(汉字示例/字母+数字)

    protected void Page_Load(object sender, EventArgs e) { //生成验证码图片的基本步骤 string checkCode = "新年快乐& ...

  7. java web,生成验证码图片的技术

    偶然知道原来有些网站的验证码图片都是随机生成的,后来听人讲了一下,就做了这个小例子 生成图片,绘制背景,数字,干扰线用到了java.awt包,主要使用BufferedImage来生成图片,然后使用Gr ...

  8. canvas生成遮罩图片

         首先我们知道css3中增加了不少好用.好玩的css3样式可以使用.今天我们要说到是遮罩.        它的使用方式也不复杂,和background使用方式差不多.使用mask-image就 ...

  9. 通过Servlet生成验证码图片

    原文出自:http://www.cnblogs.com/xdp-gacl/p/3798190.html 一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类, ...

随机推荐

  1. JAVA配置环境

  2. wget---从指定的URL下载文件

    wget命令用来从指定的URL下载文件.wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕.如果是服务器打断下 ...

  3. 【2017 Multi-University Training Contest - Team 2】Maximum Sequence

    [Link]:http://acm.hdu.edu.cn/showproblem.php?pid=6047 [Description] 给你一个数列a和一个数列b; 只告诉你a的前n项各是什么; 然后 ...

  4. Android 多种方式正确的载入图像,有效避免oom

    图像载入的方式:        Android开发中消耗内存较多一般都是在图像上面.本文就主要介绍如何正确的展现图像降低对内存的开销,有效的避免oom现象. 首先我们知道我的获取图像的来源一般有三种源 ...

  5. Property-属性动画

    今天第一次接触到属性动画.参考着 转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38067475 的博客,自己学习下. 它的区别跟 ...

  6. IO流学习笔记

    1.File类 文件和目录路径名的抽象表示形式. 4种构造方法 File(File parent, String child) File(File parent, String child) File ...

  7. NOPI 锁定Excel单元格不让编辑的方法

    简介:原生态纯JavaScript 100大技巧大收集---你值得拥有 http://www.cnblogs.com/xl900912/p/4223629.html 从博客园上看都的关于JS的一些常见 ...

  8. python学习三:列表,元组

    1.列表: 1.列表的定义方式: list1 = [1,2,3,4,"hello","world"] 如上所示,list1就是一个列表,列表的内容以中括号包含起 ...

  9. BZOJ2738: 矩阵乘法(整体二分)

    Description 给你一个N*N的矩阵,不用算矩阵乘法,但是每次询问一个子矩形的第K小数. Input 第一行两个数N,Q,表示矩阵大小和询问组数: 接下来N行N列一共N*N个数,表示这个矩阵: ...

  10. 基于Lwip协议栈中独立模式下回调函数的使用

    一.使用Lwip协议独立模式开发 最近在STM32F4上边移植了Lwip,Lwip是一个小型开源的TCP/IP协议栈,有无操作系统的支持都可以运行.我当前只测试了TCP Server功能,然后对TCP ...