Ⅰ 在php中图像处理新建一个画布用什么函数
$newImage=imagecreatetruecolor($xSize,$ySize);
//增加一个白色的底,不然新建的画布是黑色的
$white=imagecolorallocate($newImage,255,255,255);
imagefill($newImage,0,0,$white);
图像处理也经常使用到imagemerge、getimagesize、imagecreatefromjpeg等函数,建议你看下这个链接,全是图像处理的函数http://php.net/manual/zh/ref.image.php
Ⅱ php 图象处理函数 imagestring 函数的运用
可以用imagettftext来生成,支持truetype字体
array imagettftext ( resource image, float size, float angle, int x, int y, int color, string fontfile, string text )
image
图像资源。见 imagecreatetruecolor()。
size
字体大小。根据 GD 版本不同,应该以像素大小指定(GD1)或点大小(GD2)。
angle
角度制表示的角度,0 度为从左向右读的文本。更高数值表示逆时针旋转。例如 90 度表示从下向上读的文本。
x
由 x,y 所表示的坐标定义了第一个字符的基本点(大概是字符的左下角)。这和 imagestring() 不同,其 x,y 定义了第一个字符的左上角。例如 "top left" 为 0, 0。
y
Y 坐标。它设定了字体基线的位置,不是字符的最底端。
color
颜色索引。使用负的颜色索引值具有关闭防锯齿的效果。见 imagecolorallocate()。
fontfile
是想要使用的 TrueType 字体的路径。
根据 PHP 所使用的 GD 库的不同,当 fontfile 没有以 / 开头时则 .ttf 将被加到文件名之后并且会在库定义字体路径中尝试搜索该文件名。
当使用的 GD 库版本低于 2.0.18 时,一个空格字符 而不是分号将被用来作为不同字体文件的“路径分隔符”。不小心使用了此特性将会导致一条警告信息:Warning: Could not find/open font。对受影响的版本来说唯一解决方案就是将字体移动到不包含空格的路径中去。
很多情况下字体都放在脚本的同一个目录下。下面的小技巧可以减轻包含的问题。 <?php
// Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));
// Name the font to be used (note the lack of the .ttf extension)
$font = 'SomeFont';
?>
text
文本字符串。
可以包含十进制数字化字符表示(形式为:€)来访问字体中超过位置 127 的字符。UTF-8 编码的字符串可以直接传递。
如果字符串中使用的某个字符不被字体支持,一个空心矩形将替换该字符。
imagettftext() 返回一个含有 8 个单元的数组表示了文本外框的四个角,顺序为坐下角,右下角,右上角,左上角。这些点是相对于文本的而和角度无关,因此“左上角”指的是以水平方向看文字时其左上角。
例子 1. imagettftext() 例子
本例中的脚本将生成一个白色的 400x30 像素 PNG 图像,其中有黑色(带灰色阴影)Arial 字体写的“Testing...”。
<?php
// Set the content-type
header("Content-type: image/png");
// Create the image
$im = imagecreatetruecolor(400, 30);
// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
// The text to draw
$text = 'Testing...';
// Replace path by your own font path
$font = 'arial.ttf';
// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
Ⅲ PHP 自写一个函数画任意多边形
<?php
$n=6;//几边形
$width=500;//画布大小
$im=imagecreatetruecolor($width+1,$width+1);//创建画布
$background=ImageColorAllocate($im,71,76,83);
$front=ImageColorAllocate($im,146,205,249);
imagefill($im,0,0,$background);
$points=getPolygonVertices($n,$width/2);
imagepolygon($im,$points,$n,$front);
header('Content-type:image/png');//通知浏览器这不是文本而是一个图片
imagepng($im);//生成PNG格式的图片输出给浏览器
imagedestroy($im);//销毁图像资源,释放画布占用的内存空间
functiongetPolygonVertices($edges,$r){
$ca=-90;
$aiv=360/$edges;
$ata=pi()/180;
$list=array();
for($k=0;$k<$edges;$k++){
$x=cos($ca*$ata)*$r;
$y=sin($ca*$ata)*$r;
$list[]=$x+$r;
$list[]=$y+$r;
$ca+=$aiv;
}
return$list;
}
苍天啊,我太佩服我自己了~~~哈哈~~
希望对你有所帮助哈~
Ⅳ php函数绘图显示图像后就不能return了吗
没具体测试过,不过道理上应该是可以return的。仔细检查一下代码呗,或者你贴上来大家帮你看看。
imagepng只是把内容输出了,并没有退出php进程,再说imagepng函数本身也会返回true/false。
补充一点,一般来说绘图函数就是负责绘图,生成随机字符的函数负责生成,不应该将这两个功能放到一个函数里。从流程上,应该先调用随机字符函数获取字符串,然后将字符串传递给绘图函数要求它绘制。