php课程 8-28 php如何绘制生成显示图片
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如何绘制生成显示图片的更多相关文章
- 斯坦福NLP课程 | 第15讲 - NLP文本生成任务
作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www. ...
- java web学习总结(九) -------------------通过Servlet生成验证码图片
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:
- JavaWeb---总结(九)通过Servlet生成验证码图片
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片 1 package gacl. ...
- [深入浅出WP8.1(Runtime)]生成图片和存储生成的图片文件
7.2.3 使用RenderTargetBitmap类生成图片 RenderTargetBitmap类可以将可视化对象转换为位图,也就是说它可以将任意的UIElement以位图的形式呈现.那么我们在实 ...
- javaweb学习总结(九)—— 通过Servlet生成验证码图片
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:
- 012. asp.net生成验证码图片(汉字示例/字母+数字)
protected void Page_Load(object sender, EventArgs e) { //生成验证码图片的基本步骤 string checkCode = "新年快乐& ...
- java web,生成验证码图片的技术
偶然知道原来有些网站的验证码图片都是随机生成的,后来听人讲了一下,就做了这个小例子 生成图片,绘制背景,数字,干扰线用到了java.awt包,主要使用BufferedImage来生成图片,然后使用Gr ...
- canvas生成遮罩图片
首先我们知道css3中增加了不少好用.好玩的css3样式可以使用.今天我们要说到是遮罩. 它的使用方式也不复杂,和background使用方式差不多.使用mask-image就 ...
- 通过Servlet生成验证码图片
原文出自:http://www.cnblogs.com/xdp-gacl/p/3798190.html 一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类, ...
随机推荐
- 数据结构——串的朴素模式和KMP匹配算法
一.朴素模式 假设我们要从主串S="goodgoogle"中找到子串T="google"的位置,步骤如下: i表示主串的当前位置下标,j表示子串的当前位置下标, ...
- 游标 scroll
scroll表示可随意移动游标指针(否则只能向前)
- Trafodion:Transactional SQL on HBase
Trafodion: Transactional SQL on HBase HBase上实时分布式事务处理 介绍 HBase的SQL能力一直不足.Phoenix缺乏Join能力,eBay提出的kyli ...
- jquery init 关系
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/st ...
- codeforces 204E. Little Elephant and Strings(广义后缀自动机,Parent树)
传送门在这里. 大意: 给一堆字符串,询问每个字符串有多少子串在所有字符串中出现K次以上. 解题思路: 这种子串问题一定要见后缀自动机Parent树Dfs序统计出现次数都是套路了吧. 这道题统计子串个 ...
- 常用处理字符串的SQL函数
汇总函数:Count.Sum.AVG.MAX.min; 数学函数: ABS:绝对值.floor:给出比给定值小的最大整数. round(m,n):m为给定的值,n为小数点后保留的位数. power(m ...
- 【2017"百度之星"程序设计大赛 - 初赛(B)】度度熊的交易计划
[链接]点击打开链接 [题意] 在这里写题意 [题解] 先设一个超级源点,向每个片区都建一条边,容量为b,费用为-a; 然后从每个片区再连一条边,指向一个超级汇点. 容量为d,费用为c; 然后从起点到 ...
- Native开发与JNI机制详解
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 文/李森 博主导读:博主不是代码大师,研究什么都很深,Java除外,所以无论什么问题,方案可以提供, ...
- 失去偏执的苹果会如何?Android 会一统天下吗?
第 一次听到Apple你绝对不会想到和手机相关.但就是这样一个不相关的东西,彻彻底底的改变了我们这个世界.说起苹果那就得必须说到乔帮主,由于苹果仅仅属于Steve jobs. 乔布斯天生聪颖.初二測得 ...
- [D3JS] Add more map layer and color
import React, {Component} from 'react'; import * as d3 from 'd3'; import 'd3-geo'; import * as topoj ...