php专区

 首页 > php专区 > PHP应用 > 常用功能 > 用PHP内置函数生成图片

用PHP内置函数生成图片

分享到:
【字体:
导读:
          第一步:创建图片 新建一个php文件,命名为new-image.php(你可以任意命名,方便后面的调用就行)。 php中有两个函数创建一张图片:mageCreate()创建一张空图片;ImageCreateFromPng()以现有的png图...

第一步:创建图片

新建一个php文件,命名为new-image.php(你可以任意命名,方便后面的调用就行)。
php中有两个函数创建一张图片:mageCreate()创建一张空图片;ImageCreateFromPng()以现有的png图片为背景来创建一张图片。(这里的”Png”可以替换为”jpg”或”gif”,根据背景图片的格式来确定)

$myImage=ImageCreate(400,60); //参数为宽度和高度    

$myImage=ImageCreateFromJpg("http://farm5.static.flickr.com/418978874_c349c14359_o.jpg");

无论你使用了上面的哪一种方法,我们就创建好了一张图片,并把图片存到了$myImage这个变量中。

第二步:添加颜色

这时我们需要通过ImageColorAllocate()函数来创建一些颜色,把他们存到变量中,方便后面使用。

$white=ImageColorAllocate($myImage, 255, 255, 255); 

 $black=ImageColorAllocate($myImage, 0, 0, 0); 

 $red=ImageColorAllocate($myImage, 255, 0, 0); 

 $green=ImageColorAllocate($myImage, 0, 255, 0); 

 $blue=ImageColorAllocate($myImage, 0, 0, 255);

第三步:绘制图形

你还可以使用php的一些内置函数来添加一些几何图形:

ImageEllipse() //绘制椭圆 

ImageArc()  //绘制曲线 

ImagePolygon() //绘制多边形 

ImageRectangle() //绘制矩形 

ImageLine() //绘制线条 

//下面是一个例子 

ImageRectangle($myImage, 50, 20, 200, 15, $blue);

这时,你会发现只绘制了矩形的轮廓,如果你想要的是填充的矩形,使用ImageFilledRectangle()方法:

ImageFilledRectangle($myImage, 50, 20, 200, 15, $blue);

第四步:添加文字

我们可以使用imagettftext()函数来为图片添加文字:

imagettftext($myImage, 12, 0, 5, 20, $black, "Fonts/Oblivious font.ttf",  "这是要显示的内容");

你肯定注意到了,在这里你需要选择字体(此处用的是Fonts/Oblivious font.ttf, 你可以使用你自己的喜欢的字体)。 如果不知道如何来获取字体,可以google一下,上面有很多的下载字体的网站,里面的内容足够让你眼花缭乱了。

第五步:生成图片

当你成功的绘制好了你要显示的图片,接下来就要把它显示在页面中了。首先要做的是,告诉页面,你要向他发送的数据是一张图片:

//这里的png可以换成jpg,或者是gif,根据你要生成的图片格式来确定 

header("Content-type:image/png"); 

ImagePng($myImage);

接下来,因为我们不在需要$myImage这个变量了,我们需要把它的内存释放掉:

ImageDestroy($myImage);

第六步:调用图片

通过前面的五步,我们已经创建了一张图片,下面给大家说一下如何调用这张创建好了的图片。
在HTML文件中,我们使用url来引入这张图片:

myImage//在src中,写入new-image.php文件的路径,你就会发现刚才创建的图片已经被成功的调用了

 

利用imagepng()可生成一个图片文件

 

例如:

$myImage=ImageCreate(400,60); //参数为宽度和高度  

 

$white=ImageColorAllocate($myImage, 255, 255, 255); 

$black=ImageColorAllocate($myImage, 0, 0, 0); 

$red=ImageColorAllocate($myImage, 255, 0, 0); 

$green=ImageColorAllocate($myImage, 0, 255, 0); 

$blue=ImageColorAllocate($myImage, 0, 0, 255);

 

imagettftext($myImage, 12, 0, 5, 20, $red, "stxingka.ttf",  "果冻 Elvis");

?>

以上代码将在根目录下生成一个xxx.jpg的图片文件。

分享到:
PHP缓存技术详谈 - php高级应用
PHP缓存技术详谈 一、引论:PHP,一门最近几年兴起的web设计脚本语言,由于它的强大和可伸缩性,近几年来得到长足的发展,php相比传统的asp网站,在速度上有绝对的优势,想mssql转6万条数据php如需要40秒,asp不下2分钟.但是,由于网站的数据越来越多,我们渴求能更快速的调用数据,不必要每次都从数据库掉,我们可以从其他的地...
php 实现多线程
通过php的Socket方式实现php程序的多线程。php本身是不支持多线程的,那么如何在php中实现多线程呢?可以想一下,WEB服务器本身都是支持多线程的。每一个访问者,当访问WEB页面的时候,都将调用新的线程,通过这一点我们可以利用WEB服务器自身的线程来解决PHP不支持多线程的问题。     下面给出通过 fsockopen() 建...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……