标题:
PHP图片水印
[打印本页]
作者:
Nothing
时间:
2008-4-27 19:30
标题:
PHP图片水印
<
?
php
$
uptypes
=
array
(
'image/jpg'
,
'image/jpeg'
,
'image/pjpeg'
,
'image/gif'
)
;
//上传图片文件类型列表
$
wFile
=
"a.jpg"
;
//取得文件路径
$
waterimg
=
"hq.gif"
;
//水印图片路径
if
(
in_array
(
$
wFile
[
'type'
]
,
$
uptypes
)
)
{
//检查文件类型,若上传的文件为jpg或gif图片则加水印
if
(
strstr
(
$
wFile
[
'type'
]
,
"jp"
)
)
{
//若上传图片类型为jpg,pjpeg,jpeg,则用imagecreatefromjpeg读取目标文件
$
im
=
imageCreatefromjpeg
(
$
wFile
)
;
$
wfilew
=
imagesx
(
$
im
)
;
//取得图片的宽
$
wfileh
=
imagesy
(
$
im
)
;
//取得图片的高
}
else
{
//否则若上传图片类型为gif,则用imagecreatefromgif读取目标文件
$
im
=
imageCreatefromgif
(
$
wFile
)
;
$
wfilew
=
imagesx
(
$
im
)
;
//取得图片的宽
$
wfileh
=
imagesy
(
$
im
)
;
//取得图片的高
}
//设定混合模式
imagealphablending
(
$
im
,
true
)
;
//读取水印文件
$
im2
=
imagecreatefromgif
(
$
waterimg
)
;
//若水印图片为jpg,则此去可改为$im2 = imagecreatefromjpeg($waterimg)
$
waterw
=
imagesx
(
$
im2
)
;
//取得水印图片的宽
$
waterh
=
imagesy
(
$
im2
)
;
//取得水印图片的高
//随机放水印到图片中
$
randval
=
rand
(
0
,
9
)
;
//在0-9之间产生随机数
if
(
$
randval
=
=
0
|
|
$
randval
=
=
3
|
|
$
randval
=
=
2
|
|
$
randval
=
=
8
|
|
$
randval
=
=
7
)
{
//此处还可完善放更多位置
$
wimgx
=
5
;
$
wimgy
=
5
;
//放左上角
}
else
{
$
wimgx
=
$
wfilew
-
5
-
$
waterw
;
$
wimgy
=
$
wfileh
-
5
-
$
waterh
;
//放右上角
}
//拷贝水印到目标文件
imagecopy
(
$
im
,
$
im2
,
$
wimgx
,
$
wimgy
,
0
,
0
,
$
waterw
,
$
waterh
)
;
//输出图片
if
(
strstr
(
$
wFile
[
'type'
]
,
"jp"
)
)
{
//同上
imagejpeg
(
$
im
,
$
wFile
)
;
}
else
{
imagegif
(
$
im
,
$
wFile
)
;
}
imagedestroy
(
$
im
)
;
imagedestroy
(
$
im2
)
;
}
/************************************************************
**********水印结束*******************************************
***********************************************************/
欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/)
Powered by Discuz! 6.0.0