您的位置:首页 > 编程语言 > PHP开发

PHP图片处理GD库及相关

2008-12-29 18:32 423 查看
如何利用GD库为我的图片添加(透明)水印

<?php
//读取目标文件
$im = imageCreatefromjpeg("a.jpg");
//设定混合模式
imagealphablending($im, true);
//读取水印
$im2 = imagecreatefrompng("2.png");
//下面是我写的字,可以不看
$color = imagecolorallocate($im2, 0, 0, 0);
imagestring($im2, 12, 1, 1, "i love u jingjing", $color);
//字结束
//拷贝水印到目标文件
imagecopy($im, $im2, 5, 5, 0, 0, 250, 40);
//输出,可以输出到文件里
imagejpeg($im);

imagedestroy($im);
imagedestroy($im1);
?>
需要注意的是,水印应该是透明的,而且拷贝到目标文件的大小也不能超过它本来的大小(长和宽)。
====================================================================

====================================================================

如何用GD生成透明背景图片

<?php
header ("Content-type: image/gif"); // 有些浏览器不能识别image/png,这样写通用点
$im = imagecreate (200,300);
$background_color = ImageColorAllocate($im, 0,255,0); // 指派一个绿色
imagecolortransparent($im,$background_color); // 设置为透明色,若注释掉该行则输出绿色的图
imagepng ($im);
imagedestroy ($im);
?>
水印也可以改成透明的gif。$im2 = imagecreatefromgif("2.gif");即可
====================================================================

====================================================================

用gd写的图片php文件如何防止被浏览器直接打开显示
比如我用php的gd写了一个num.php文件
我只希望在同目录的auth.php中调用
<img src="num.php?num=$num">

而在浏览器直接输入
num.php?num=$num则不能让其把图片显示出来

在这里num.php和auth.php实际上都是独立的,也就是说我们实际上向服务器发送了两次请求..一次是获得num.php,一次是获得auth.php..

你可以用SESSION来实现....

auth.php
<?php
session_start();
$_SESSION['id']="ok";
?>
<img src="num.php?num=$num" alt="pic" />

num.php
<?php
session_start();

if ($_SESSION['id']=="ok")
{
//图片生成代码...
}
else
{
echo "禁止访问";
}
unset($_SESSION['id']);
?>

====================================================================

====================================================================

GetImageSize

作用:取得图片的大小[即长与宽] 用法:array GetImageSize(string filename, array [imageinfo]);

ImageArc
作用:画弧线 用法:int ImageArc(int im, int cx, int cy, int w, int h, int s, int e, int col);

ImageChar
作用:写出横向字符 用法:int ImageChar(int im, int font, int x, int y, string c, int col);

ImageCharUp
作用:写出竖式字符 用法:int ImageCharup(int im, int font, int x, int y, string c, int col);

ImageColorAllocate
作用:匹配颜色 用法:int ImageColorAllocate(int im, int red, int green, int blue);

ImageColorTransparent
作用:指定透明背景色 用法:int ImageColorTransparent(int im, int [col]);

ImageCopyResized
作用:复制新图并调整大小 用法:int ImageCopyResized(int dst_im, int src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH);

ImageCreate
作用:建立新图 用法:int ImageCreate(int x_size, int y_size);

ImageDashedLine
作用:绘虚线 用法:int ImageDashedLine(int im, int x1, int y1, int x2, int y2, int col);

ImageDestroy 作用:结束图形 用法解释:int ImageDestroy(int im);

ImageFill
作用:图形着色 用法:int ImageFill(int im, int x, int y, int col);

ImageFilledPolygon作用:多边形区域着色 用法:int ImageFilledPolygon(int im, array points, int num_points, int col);

ImageFilledRectangle作用:矩形区域着色 用法:int ImageFilledRectangle(int im, int x1, int y1, int x2, int y2, int col);

ImageFillToBorder作用:指定颜色区域内着色 用法:int ImageFillToBorder(int im, int x, int y, int border, int col);

ImageFontHeight
作用:取得字型的高度 用法:int ImageFontHeight(int font);

ImageFontWidth作用:取得字型的宽度 用法:int ImageFontWidth(int font);

ImageInterlace作用:使用交错式显示与否 用法:int ImageInterlace(int im, int [interlace]);

ImageLine作用:绘实线 用法:int ImageLine(int im, int x1, int y1, int x2, int y2, int col);

ImageLoadFont作用:载入点阵字型 用法:int ImageLoadFont(string file);

ImagePolygon作用:绘多边形 用法:int ImagePolygon(int im, array points, int num_points, int col);

ImageRectangle作用:绘矩形 用法:int ImageRectangle(int im, int x1, int y1, int x2, int y2, int col);

ImageSetPixel作用:绘点 用法:int ImageSetPixel(int im, int x, int y, int col);

ImageString 作用:绘横式字符串 用法:int ImageString(int im, int font, int x, int y, string s, int col);

ImageStringUp作用:绘直式字符串 用法:int ImageStringUp(int im, int font, int x, int y, string s, int col);

ImageSX
作用:取得图片的宽度 用法:int ImageSX(int im);

ImageSY
作用:取得图片的高度 用法:int ImageSY(int im);

ImageTTFBBox
作用:计算 TTF 文字所占区域 用法:array ImageTTFBBox(int size, int angle, string fontfile, string text);

ImageTTFText作用:写 TTF 文字到图中 用法:array ImageTTFText(int im, int size, int angle, int x, int y, int col, string fontfile, string text); ImageColorAt 作用:取得图中指定点颜色的索引值 用法:int ImageColorAt(int im, int x, int y);

ImageColorClosest
作用:计算色表中与指定颜色最接近者 用法:int ImageColorClosest(int im, int red, int green, int blue);

ImageColorExact
作用:计算色表上指定颜色索引值 用法:int ImageColorExact(int im, int red, int green, int blue);

ImageColorResolve
作用:计算色表上指定或最接近颜色的索引值 用法:int ImageColorResolve(int im, int red, int green, int blue);

ImageColorSet
作用:设定色表上指定索引的颜色 用法:boolean ImageColorSet(int im, int index, int red, int green, int blue); ImageColorsForIndex 作用:取得色表上指定索引的颜色用法:array ImageColorsForIndex(int im, int index);

ImageColorsTotal
作用:计算图的颜色数 用法:int ImageColorsTotal(int im); ImagePSLoadFont 作用:载入 PostScript 字型 用法:int ImagePSLoadFont(string filename);

ImagePSFreeFont
作用:卸下 PostScript 字型 用法:void ImagePSFreeFont(int fontindex);

ImagePSEncodeFont
作用:PostScript 字型转成向量字 用法:int ImagePSEncodeFont(string encodingfile);

ImagePSText作用:写 PostScript 文字到图中 用法:array ImagePSText(int image, string text, int font, int size, int foreground, int background, int x, int y, int space, int tightness, float angle, int antialias_steps);

ImagePSBBox作用:计算 PostScript 文字所占区域 用法: array ImagePSBBox(string text, int font, int size, int space, int width, float angle);

ImageCreateFromPNG作用:取出 PNG 图型 用法:int ImageCreateFromPng(string filename);

ImagePNG作用:建立 PNG 图型 用法:int ImagePng(int im, string [filename]);

ImageCreateFromGIF作用:取出 GIF 图型 用法:int ImageCreateFromGif(string filename);

ImageGIF作用:建立 GIF 图型 用法:int ImageGif(int im, string [filename]);

其他库如 imagemagick jpgraph
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: