PHP中的图像相关函数操作

imagecreatefrom_gif_jpeg_png 系列函数

imagecreatefrom 系列函数用于从文件或 URL 载入一幅图像。

载入图像

imagecreatefrom 系列函数用于从文件或 URL 载入一幅图像,成功返回图像资源,失败则返回一个空字符串。

该系列函数有:

  • imagecreatefromgif():创建一块画布,并从 GIF 文件或 URL 地址载入一副图像
  • imagecreatefromjpeg():创建一块画布,并从 JPEG 文件或 URL 地址载入一副图像
  • imagecreatefrompng():创建一块画布,并从 PNG 文件或 URL 地址载入一副图像
  • imagecreatefromwbmp():创建一块画布,并从 WBMP 文件或 URL 地址载入一副图像
  • imagecreatefromstring():创建一块画布,并从字符串中的图像流新建一副图像

语法:

resource imagecreatefromgif( string filename )
resource imagecreatefromjpeg( string filename )
resource imagecreatefrompng( string filename )
resource imagecreatefromwbmp( string filename )
resource imagecreatefromstring( string image )

-----------------------------------------------------------------------------------------------------------------


imagecreate

如果我们要对图像进行处理,就如其它图像处理软件一样,需要创建一块画布。imagecreate() 和 imagecreatetruecolor() 函数用于创建一幅空白图像。

语法:

resource imagecreate( int x, int y )

参数 x ,y 分别为要创建图像的宽度和高度像素值,返回一个图像资源。

注意:本函数不能用于 GIF 文件格式。

-----------------------------------------------------------------------------------------------------------------


imagedestroy

图像处理完成后,使用 imagedestroy() 指令销毁图像资源以释放内存,虽然该函数不是必须的,但使用它是一个好习惯。

语法:

bool imagedestroy( resource image )

-----------------------------------------------------------------------------------------------------------------


imagecolorallocate() 函数用于为图像分配颜色。
   

imagecolorallocate() 函数用于为图像分配颜色,返回一个标识符,代表了由给定的 RGB 成分组成的颜色,如果分配失败则返回 -1 。

语法:

int imagecolorallocate( resource image, int red, int green, int blue )

参数 red,green 和 blue 分别是所需要的颜色的 红,绿,蓝 成分,取值范围 0 - 255。

例子:

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

//创建图像
$im = @imagecreate(200, 50) or die("创建图像资源失败");

//图片背景颜色并填充
$bg = imagecolorallocate($im, 204, 204, 204);

//设定文字颜色
$red = imagecolorallocate($im, 255, 0, 0);
//水平画一行字
imagestring($im, 5, 0, 0, "Hello world!", $red);

//以PNG格式输出图像
imagepng($im);

//销毁图像资源
imagedestroy($im);
?>


-----------------------------------------------------------------------------------------------------------------
imagecolordeallocate() 函数用于取消先前由 imagecolorallocate() 等函数为图像分配的颜色。

   imagecolordeallocate() 函数用于取消先前由 imagecolorallocate() 和imagecolorallocatealpha() 函数为图像分配的颜色。

语法:

bool imagecolordeallocate( resource image, int color )

例子:

<?
$im = @imagecreate(200, 50) or die("创建图像资源失败");
$bg = imagecolorallocate($im, 255, 0, 0);
imagecolordeallocate($im, $bg);
?>

-----------------------------------------------------------------------------------------------------------------


imagecopymerge()

imagecopymerge() 函数用于拷贝并合并图像的一部分,成功返回 TRUE ,否则返回 FALSE 。

语法:

bool imagecopymerge( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y,
 int src_w, int src_h, int pct )
参数说明:
参数 说明
dst_im 目标图像
src_im 被拷贝的源图像
dst_x 目标图像开始 x 坐标
dst_y 目标图像开始 y 坐标,x,y同为 0 则从左上角开始
src_x 拷贝图像开始 x 坐标
src_y 拷贝图像开始 y 坐标,x,y同为 0 则从左上角开始拷贝
src_w (从 src_x 开始)拷贝的宽度
src_h (从 src_y 开始)拷贝的高度
pct 图像合并程度,取值 0-100 ,当 pct=0 时,实际上什么也没做,反之完全合并。

当为 pct = 100 时对于调色板图像本函数和 imagecopy() 完全一样,参考阅读:

imagecopy():拷贝图像或图像的一部分。

该函数的一个典型应用就是将图像打上水印标识:

<?
header("Content-type: image/jpeg");

//原始图像
$dst = "images/flower_1.jpg";

//得到原始图片信息
$dst_im = imagecreatefromjpeg($dst);
$dst_info = getimagesize($dst);

//水印图像
$src = "images/logo.gif";
$src_im = imagecreatefromgif($src);
$src_info = getimagesize($src);	

//水印透明度
$alpha = 30;

//合并水印图片
imagecopymerge($dst_im,$src_im,$dst_info[0]-$src_info[0],$dst_info[1]-$src_info[1],0,0,$src_info[0],
$src_info[1],$alpha);

//输出合并后水印图片
imagejpeg($dst_im);
imagedestroy($dst_im);
imagedestroy($src_im);
?>

-----------------------------------------------------------------------------------------------------------------

PHP 允许将图像以不同格式输出:

  • imagegif():以 GIF 格式将图像输出到浏览器或文件
  • imagejpeg():以 JPEG 格式将图像输出到浏览器或文件
  • imagepng():以 PNG 格式将图像输出到浏览器或文件
  • imagewbmp():以 WBMP 格式将图像输出到浏览器或文件

语法:

bool imagegif ( resource image [, string filename] )
bool imagejpeg ( resource image [, string filename [, int quality]] )
bool imagepng ( resource image [, string filename] )
bool imagewbmp ( resource image [, string filename [, int foreground]] )
参数说明:
参数 说明
image 欲输出的图像资源,如 imagecreate() 或 imagecreatefrom 系列函数的返回值
filename 可选,指定输出图像的文件名。如果省略,则原始图像流将被直接输出。
quality 可选,指定图像质量,范围从 0(最差质量,文件最小)到 100(最佳质量,文件最大),默认75 ,imagejpeg() 独有参数
foreground 可选,指定前景色,默认前景色是黑色,imagewbmp() 独有参数

绘制一个圆弧并保存到 images 目录下:

<?php header("Content-type: image/png"); $im = @imagecreate(200, 200)or die("创建图像资源失败"); $bg = imagecolorallocate($im, 204, 204, 204); $red = imagecolorallocate($im, 255, 0, 0); imagearc($im, 100, 100, 150, 150, 0, 360, $red); imagepng($im,"images/circle.png"); imagedestroy($im); ?>

在 images 目录下就会生成一个 circle.png 文件。

-----------------------------------------------------------------------------------------------------------------

php imagefttext函数用法示例@php使用FreeType 2字体将文本写入图像
 说明
        array imagefttext ( resource $image , float $size , float $angle , int $x , int $y , int $col , string $font_file , string $text [, array $extrainfo ] )
/*imagefttext($img,$size,$angle,$x,$y,$color,$fontfile,$text)
$img由图像创建函数返回的图像资源
size要使用的水印的字体大小
angle(角度)文字的倾斜角度,如果是0度代表文字从左往右,如果是90度代表从上往下
x,y水印文字的第一个文字的起始位置
color是水印文字的颜色
fontfile,你希望使用truetype字体的路径*/

-----------------------------------------------------------------------------------------------------------------

imagettftext — 用 TrueType 字体向图像

imagefttext — 使用 FreeType 2 字体将文本写入图像写入文本
-----------------------------------------------------------------------------------------------------------------


本文地址: http://blog.csdn.net/aerchi/article/details/51943836



发布了430 篇原创文章 · 获赞 415 · 访问量 925万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览