php绘制商业模式画布作业画布如何循环

php制作验证码时,画布怎么显示不出来_百度知道
php制作验证码时,画布怎么显示不出来
&?php$num=4;$str=getcode($num,0);$width=$num*20;$height=30;$im=imagecreatetruecolor($width,$height);$bg=imagecolorallocate($im,200,200,200);imagefill($im,0,0,$bg);header(...
&?php $num=4; $str=getcode($num,0);
$width=$num*20; $height=30; $im=imagecreatetruecolor($width,$height); $bg=imagecolorallocate($im,200,200,2 00);
imagefill($im,0,0,$bg);
header (&Content-Type:image/png&); imagepng($im);
imagedestroy($im);
function getcode( $m=4,$type=0){ $str=&abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ&; $t =array(9,35,strlen($str)-1); $c=&&; for($i=0;$i&$m;$i++){ $c.=$str[rand(0,$t[$type])];
} return $c; } //echo getcode(4,1); ?&
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
采纳数:331
获赞数:586
&?php $num=4; $str=getcode($num,0);
$width=$num*20; $height=30; $im=imagecreatetruecolor($width,$height);// 你这里最后一个200中间多打了一个空格 $bg=imagecolorallocate($im,200,200,200);
imagefill($im,0,0,$bg);
header (&Content-Type:image/png&); imagepng($im); imagedestroy($im);
function getcode( $m=4,$type=0){
$str=&abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ&;
$t =array(9,35,strlen($str)-1);
for($i=0;$i&$m;$i++){
// 这里换成{}符号
$c.=$str{rand(0,$t[$type])};
return $c; } //echo getcode(4,1); ?&
还是不行啊
那肯定是你路径弄错了,我这边都是可以的,你检查下路径
为你推荐:
其他类似问题
您可能关注的内容
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。正文 php gd库基础之创建图像的方法
php gd库基础之创建图像的方法
发布时间: & 编辑:www.jquerycn.cn
本文介绍下,有关php gd库的一些基础用法,学习使用php gd库创建图像的方法,有需要的朋友参考下。
$im = imagecreate(200,150);
Resource id #1
二,magecreatetruecolor& -& 创建一个真彩色的画布
1,格式:imagecreatetruecolor ( int x_size, int y_size )
2,解析:同imagecreate一样,创建一个空白的画布,区别在于这个函数创建的画布支持的色彩数更多,所以效果更好,传入画布宽度和高度的像素值,返回的是系统分配给这块画布的id号,例如:
复制代码 代码示例:
$im = imagecreatetruecolor(200,150);
Resource id #2
三,imagecreatefromgif& -& 创建一块画布,并将一张gif格式的图片读取到这块画布
1,格式:imagecreatefromgif ( string filename )
2,解析:传入的参数是一张gif图片的文件名(加路径),如果其他格式的图片将会报一个错误,返回的是系统分配给这块画布的id号,用于别的画图函数的调用,例如:
复制代码 代码示例:
$im = imagecreatefromgif('gd_image/gif.gif');
Resource id #3
四,imagecreatefromjpeg& - 创建一块画布,并将一张jpg格式的图片读取到这块画布
1,格式:imagecreatefromjpeg ( string filename )
2,解析:传入的参数是一张jpg图片的文件名(加路径),如果其他格式的图片将会报一个错误,返回的是系统分配给这块画布的id号,用于别的画图函数的调用,例如:
复制代码 代码示例:
$im = imagecreatefromjpeg('gd_image/gif.jpg');
Resource id #4
五,imagecreatefrompng& -& 创建一块画布,并将一张png格式的图片读取到这块画布
1,格式:imagecreatefrompng ( string filename )
2,解析:传入的参数是一张png图片的文件名(加路径),如果其他格式的图片将会报一个错误,返回的是系统分配给这块画布的id号,用于别的画图函数的调用,例如:
复制代码 代码示例:
$im = imagecreatefromgif('gd_image/gif.gif');
Resource id #4您可能感兴趣的文章:HTML5 canvas画布详解(四)
原创
 15:46:18
1253
arcTo用法用法:arcTo(x1, y1, x2, y2, radius) 说明:arcTo()方法将利用当前端点、端点1(x1,y1)和端点2(x2,y2)这三个点所形成的夹角,然后绘制一段与夹角的两边相切并且半径为radius的圆上的弧线。弧线的起点就是当前端点所在边与圆的切点,弧线的终点就是端点2(x2,y2)所在边与圆的切点,并且绘制的弧线是两个切点之间长度最短的那个圆弧。此外,如果当前端点不是弧线起点,arcTo()方法还将添加一条当前端点到弧线起点的直线线段。&!DOCTYPE html&
&meta http-equiv=&Content-Type& content=&text/ charset=utf-8& /&
&title&arcTo()绘制&/title&
&canvas id=&drawing& width=&400& height=&300& style=&border:#0F0 solid 1px&&A Drawing of something&/canvas&
var drawing=document.getElementById(&drawing&);
//确定浏览器支持&canvas&元素
if(drawing.getContext){
//取得绘图上下文对象的引用,“2d”是取得2D上下文对象
var context=drawing.getContext(&2d&);
//设置canvas的onmouse事件
//路径指定
context.beginPath();
//单独使用arcTo()方法必须指定绘图开始的基点
context.moveTo(20,20);
//创建两切线之间的弧/曲线
context.arcTo(200,150,20,280,50);
//起始端点(20,20)、端点1(290,150)、端点2(20,280)三点组成的夹角相切并且半径为50的圆弧,并且只保留两切点之间圆弧部分以及起始端点到第一个切点之间部分
context.lineTo(200,280);
context.strokeStyle=&red&;
//指定路径线的粗细
context.lineWidth=3;
//绘制路径
context.stroke();
//绘制文字标注
context.fillText(&当前端点(20,20)&, 20,20);
context.fillText(&端点1(200,150)&, 200,150);
context.fillText(&端点2(20,280)&, 20,280);
context.fillText(&直线结束点(200,280)&, 200,280);
//绘制辅助线
context.lineWidth = 1;
context.strokeStyle=&blue&;
context.moveTo(20,20);
context.lineTo(200,150);
context.lineTo(20,280);
context.stroke();
&/html&如上图,当前端点(20,20)、端点1(200,150),端点2(20,280)三点组成夹角绘制弧线,弧线半径为50并与夹角相切。当前端点不是弧线起点,arcTo()方法还将添加一条当前端点到弧线起点的直线线段。 最后一段直线则是context.lineTo(200,280);绘制出来的,与arcTo绘制的弧线没有关系。stroke()和fill()用法stroke():绘制已定义的路径 fill():填充当前绘图路径 下面的代码中我用了两个画布,画图方法分别为drawCanvas1和drawCanvas2,以方便比较两者的区别。&!Doctype html&
&title&stroke()、fill()用法&/title&
&meta charset=&utf-8&/&
.myCanvas{
border:2px solid #f00;
window.onload = function(){
drawConvas1();
drawConvas2();
function drawConvas1(){
var canvas = document.getElementById(&myCanvas1&);
var context = canvas.getContext(&2d&);
//1、绘制三解形路径
context.beginPath();
context.moveTo(20,20);
context.lineTo(20,100);
context.lineTo(100,100);
context.lineTo(20,20);
context.strokeStyle = &red&;
context.stroke();
//2、绘制矩形80*80
context.beginPath();
context.moveTo(20,200);
context.lineTo(100,200);
context.lineTo(100,280);
context.lineTo(20,280);
context.lineTo(20,200);
context.stroke();
//绘制坐标点标注,以方便看其原理
context.fillText(&(20,20)&,20,20);
context.fillText(&(20,100)&,20,100);
context.fillText(&(100,100)&,100,100);
context.fillText(&(20,200)&,20,200);
context.fillText(&(100,200)&,100,200);
context.fillText(&(100,280)&,100,280);
context.fillText(&(20,280)&,20,280);
function drawConvas2(){
var canvas = document.getElementById(&myCanvas2&);
var context = canvas.getContext(&2d&);
//1、绘制三解形填充
context.beginPath();
context.moveTo(20,20);
context.lineTo(20,100);
context.lineTo(100,100);
context.lineTo(20,20);
context.fillStyle = &red&;
context.fill();
//2、绘制填充矩形80*80,先绘制路径再用fill()方法填充
context.beginPath();
context.moveTo(20,200);
context.lineTo(100,200);
context.lineTo(100,280);
context.lineTo(20,280);
context.lineTo(20,200);
context.fill();
//上面的代码相当于
//context.fillRect(20,200,80,80);
//3、使用方法fillRect(x,y,width,height)绘制矩形填充
context.fillRect(120,200,80,80);
}&/script&&/head&&body&
&canvas class=&myCanvas& id=&myCanvas1& width=&400& height=&400&&
您的浏览器不支持canvas
&canvas class=&myCanvas& id=&myCanvas2& width=&400& height=&400&&
您的浏览器不支持canvas
&/html&createPattern()用法语法:createPattern(image, repetitionStyle) 说明:createPattern()方法用于创建一个表示将图像在当前图形上以什么样的方式进行重复平铺的CanvasPattern对象。参数image指定用于平铺的图像,该参数可以是一个Image对象,也可以是一个Canvas对象。参数repetitionStyle表示图像如何进行重复平铺,可能的值有repeat(在水平和垂直方向上均进行重复平铺,这也是默认值)、repeat-x(只在水平方向上重复平铺)、repeat-y(只在垂直方向上重复平铺)、no-repeat(只铺一次,不进行重复平铺)。 看下面的示例:&!Doctype html&
&title&createPattern()用法&/title&
&meta charset=&utf-8&/&
.myCanvas{
border:2px solid #f00;
window.onload = function(){
drawConvas1();
drawConvas2();
function drawConvas1(){
var canvas = document.getElementById(&myCanvas1&);
var context = canvas.getContext(&2d&);
//1、创建一个图片对象
var img = new Image();
img.src = &html5.png&;
///当图片加载完毕后再设置对应的图像平铺模式并填充矩形
img.onload = function(){
var pattern = context.createPattern(img, &repeat&);
context.fillStyle =
context.fillRect(0,0,200,200);
function drawConvas2(){
var canvas = document.getElementById(&myCanvas2&);
var context = canvas.getContext(&2d&);
//1、创建一个图片对象
var img = new Image();
img.src = &html5.png&;
///当图片加载完毕后再设置对应的图像平铺模式并填充矩形
img.onload = function(){
var pattern = context.createPattern(img, &repeat&);
context.fillStyle =
context.fillRect(30,30,200,200);
&canvas class=&myCanvas& id=&myCanvas1& width=&400& height=&400&&
您的浏览器不支持canvas
&canvas class=&myCanvas& id=&myCanvas2& width=&400& height=&400&&
您的浏览器不支持canvas
&/html&注意二者的区别,仅仅在于矩形区域的起点坐标。第一个为canvas画布的起点坐标(0,0),第二个起点为(30,30)。从效果来看第二幅图的第一个图像并不是完整的。 需要注意:CanvasPattern对象开始平铺图像的参考起点并不是我们当前绘制图形的左上角,而是整个canvas画布的左上角,确切地说,即canvas的起点坐标(0,0)。createImageData和putImageData语法:createImageData(width,height);创建宽和高分别为width和height的ImageData 对象。返回ImageData对象。createImageData(imageData);创建与指定的imageData对象相同的新的ImageData对象。返回ImageData对象。putImageData(imgData,x,y,tyX,dirtyY,dirtyWidth,dirtyHeight); 功能: 将图像数据(从指定的 ImageData 对象)放回画布上。 imgData:为需要放置在画布上的ImageData对象。 x:画布的左上角x坐标 y:画布的左上角y坐标 dirtyX,dirtyY,dirtyWidth,dirtyHeight四个参数可选,如果没有该四个参数,则将imageData从x、y坐标完整绘制在画布上;若有该四个参数,则保留imageData的dirtyX,dirtyY起始坐标,宽dirtyWidth、高dirtyHeight的部分图像。getImageData(x,y,width,height);x、y为开始复制的左上角位置的 x 坐标,width、height为将要复制区域的宽和高。返回ImageData 对象。&!Doctype html&
&title&putImageData()用法&/title&
&meta charset=&utf-8&/&
.myCanvas{
border:2px solid #f00;
window.onload = function(){
drawConvas1();
drawConvas2();
//画布1使用createImageData()、putImageData()画图
function drawConvas1(){
var canvas = document.getElementById(&myCanvas1&);
var context = canvas.getContext(&2d&);
var imgData=context.createImageData(100,100);
for (var i=0;i&imgData.data.i+=4)
imgData.data[i+0]=255;
imgData.data[i+1]=0;
imgData.data[i+2]=0;
imgData.data[i+3]=255;
context.putImageData(imgData,10,10);
//画布2使用getImageData()、putImageData()画图
function drawConvas2(){
//获取canvas1中的ImageData,并绘制在canvas2中
var canvas1 = document.getElementById(&myCanvas1&);
var context1 = canvas1.getContext(&2d&);
var imgData = context1.getImageData(10,10,100,100);
var canvas2 = document.getElementById(&myCanvas2&);
var context2 = canvas2.getContext(&2d&);
context2.putImageData(imgData,10,10);
&canvas class=&myCanvas& id=&myCanvas1& width=&400& height=&400&&
您的浏览器不支持canvas
&canvas class=&myCanvas& id=&myCanvas2& width=&400& height=&400&&
您的浏览器不支持canvas
&/html&toDataURL()语法:canvas.toDataURL(“image/png”);注意对象是canvas而不是context 功能:将convas画布导出为图片,返回图片数据。&!DOCTYPE html&
&meta charset=&utf-8& /&
&title&canvas绘图&/title&
window.onload = function()
drawCanvas1();
drawCanvas2();
function drawCanvas1()
var canvas=document.getElementById(&myCanvas1&);
var context=canvas.getContext(&2d&);
//绘制红色矩形
context.fillStyle=&red&;
context.fillRect(10,10,200,200);
function drawCanvas2()
//取得画布1图像的数据URL
var canvas1 = document.getElementById(&myCanvas1&);
var imgURL = canvas1.toDataURL(&image/png&);
//把画布1的图像显示在画布2上
var canvas2=document.getElementById(&myCanvas2&);
var context2=canvas2.getContext(&2d&);
var image = new Image();
image.src = imgURL;
context2.drawImage(image, 10, 10);
&canvas id=&myCanvas1& width=&400& height=&400& style=&border:#F00 solid 1px&&
您的浏览器不支持canvas
&canvas id=&myCanvas2& width=&400& height=&400& style=&border:#F00 solid 1px&&
您的浏览器不支持canvas
&h3&canvas2为使用toDataURL()方法,导出在canvas1元素上绘制的图像。&/h3&
&/html&注意为什么画布二的矩形位置和画布一不一样? 因为toDataURL()导出的是整个画布,而画布二又是从(10,10)开始绘制的。以上就是HTML5 canvas画布详解(四)的详细内容,更多请关注php中文网其它相关文章!
江湖传言:PHP是世界上最好的编程语言。真的是这样吗?这个梗究竟是从哪来的?学会本课程,你就会明白了。
PHP中文网出品的PHP入门系统教学视频,完全从初学者的角度出发,绝不玩虚的,一切以实用、有用...
点击数(110842)
ThinkPHP是国内最流行的中文PHP开发框架,也是您Web项目的最佳选择。《php.cn独孤九贱(5)-ThinkPHP5视频教程》课程以ThinkPHP5最新版本为例,从最基本的框架常识开始,将...
点击数(108767)
《php.cn原创html5视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了HTML知识。
点击数(83522)
本套教程,以一个真实的学校教学管理系统为案例,手把手教会您如何在一张白纸上,从零开始,一步一步的用ThinkPHP5框架快速开发出一个商业项目。
点击数(82684)
所有计算机语言的学习都要从基础开始,《PHP入门视频教程之一周学会PHP》不仅是PHP的基础部分更主要的是PHP语言的核心技术,是学习PHP必须掌握的内容,任何PHP项目的实现都离不开这部分的内容,通...
点击数(79905)
全栈工程师
文章总浏览数
相关视频章节扫一扫体验手机阅读
php 知识总结
<span type="1" blog_id="2089995" userid='
29篇文章,1W+人气,0粉丝
企业级网安运维
¥51.0057人订阅
鸟瞰Web应用开发
¥51.0026人订阅//创建画布,设定画布大小(此时画布是黑色背景)
$im = imagecreatetruecolor(200, 200);
//更改画布的背景色
$color = imagecolorallocate($im, 222, 207, 87);
imagefill($im, 0, 0, $color);
//设定字体的颜色
$font_color = ImageColorAllocate ($im, 0, 0, 0);
//文字内容
$text = "微云科技";
//字体文件路径
$font_file = "test2.ttf";
//背景、文字大小、文字逆时针旋转角度、文字在画布上坐标X、文字在画布上坐标Y
imagettftext($im, 30,0, 10, 36, $font_color ,$font_file, $text);
imagettftext($im, 26,0, 10, 100, $font_color ,$font_file, $text);
imagettftext($im, 35,30, 10, 150, $font_color ,$font_file, $text);
//输出图片
Header("Content-Type: image/png");//即便是从jpg拷贝的图片,也能以png输出,
ImagePng ($im);
ImageDestroy($im);
函数的具体用法科技参照php官方手册
主要是使用了GD库,确保php.ini文件中开启GD功能
【PHP】GD库笔记
初探GD库的坐标
昨天在用GD库的imagettftext在图片上写字的时候,发现写字的坐标并不是很精确的按照指定的参数的位置插入字体的,一直觉得很诡异。由于GD库中很多画图操作都是以坐标为基础的,因而就花了点时间了解...
利用PHP实现文字绘制到新的图片上的功能
php把文字添加到图像中的方法。
PHP实现文字写入图片
* PHP实现文字写入图片
class wordsOnImg {
public $config =
PHP实现图片上添加文字(证书生成)
首先,确定服务器中已经安装并开启GD2图形库
然后,代码如下:
PHP 根据文字内容添加图片上实现自动换行的小程序
前进的动力来自很多东西,渴望也好,向往也好,压力也好。 总之是源于人对更好的事物的追求。
想要变成大牛,就永远不要失去这种渴望,这种追求。
最近这一周一直在鼓捣一个将用户输入的文字...
PHP GD竖排文字写法
PHP GD竖排文字写法
$white = imagecolorallocate($image, 255, 255, 0);
imagettftext($image, 44, ...
PHP Imagick发光文字
PHP Imagick发光文字
$canvas = new Imagick();
$canvas-&newImage(500, 200, 'white');
$canvas-&set...
PHP合成图片、生成文字、居中对齐、画线、矩形、三角形、多边形、图片抗锯齿、不失真 高性能源码示例
function generateImg($source, $text1, $text2, $text3, $font = './msyhbd.ttf') {
$date = '' . dat...
没有更多推荐了,}

我要回帖

更多关于 绘制商业模式画布 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信