求一个PHP可以生成缩略图和加水印的类.. 求一个PHP可以生成缩略图和加水印的类.. 缩图的话能固定宽高缩和按比例缩...重要的是不能失真..网上找过一些,都不太好用..希望可以有人给我提供一个,谢谢.. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function watermask($destination,$waterpngfilename,$pos = 'rb',$transparent = 50) { $imagetype = array("1"=>"gif","2"=>"jpeg","3"=>"png","4"=>"wbmp"); //here,is the type of image style $image_size = getimagesize($destination); $iinfo=getimagesize($destination,$iinfo); $f ="imagecreatefrom".$imagetype[$iinfo[2]]; $simage = $f($destination); $imagesize_mask = getimagesize($waterpngfilename); $f ="imagecreatefrom".$imagetype[$imagesize_mask[2]]; $simage1 = $f($waterpngfilename); switch($pos) //the position of the watermask you want { case 'lt': imagecopymerge($simage,$simage1,0,0,0,0,$imagesize_mask[0], $imagesize_mask[1],$transparent); break; case 'lb': imagecopymerge($simage,$simage1,0,$image_size[1]-$imagesize_mask[1] ,0,0,$imagesize_mask[0],$imagesize_mask[1],$transparent); break; case 'rt': imagecopymerge($simage,$simage1,$image_size[0]-$imagesize_mask[0], 0,0,0,$imagesize_mask[0],$imagesize_mask[1],$transparent); break; case 'rb': imagecopymerge($simage,$simage1,$image_size[0]-$imagesize_mask[0], $image_size[1]-$imagesize_mask[1],0,0,$imagesize_mask[0], $imagesize_mask[1],$transparent); break; } $f ="image".$imagetype[$iinfo[2]]; $f($simage,$destination); imagedestroy($simage); imagedestroy($simage1); } function DrawImage(ImgD,iwidth,iheight){ //参数(图片,允许的宽度,允许的高度) var image=new Image(); image.src=ImgD.src; if(image.width>0 && image.height>0){ flag=true; if(image.width/image.height>= iwidth/iheight){ if(image.width>iwidth){ ImgD.width=iwidth; ImgD.height=(image.height*iwidth)/image.width; }else{ ImgD.width=image.width; ImgD.height=image.height; } ImgD.alt=image.width+"×"+image.height; }else{ if(image.height>iheight){ ImgD.height=iheight; ImgD.width=(image.width*iheight)/image.height; }else{ ImgD.width=image.width; ImgD.height=image.height; } ImgD.alt=image.width+"×"+image.height; } }} 为什么都是觉得自己写的代码很乱 正则匹配不以xx结尾的任意字符怎么写? PHP问题 在CSDN 论坛 没分就没人给回答吗?? 请问mysql如何随机返回限定数量的纪录 菜鸟问题:窗口大小问题。 关于ftp上传的问题,请各位大侠不吝赐教 PHP调用COM组件如何获得返回的参数 怎样读取用file表单传入的文件路径的文件? 几个我不会的问题,可能你会! 如何判断用户在线? 为什么启动不了apache服务器? 优化表后出现了is marked as crashed and last (automatic?) repair failed
function watermask($destination,$waterpngfilename,$pos = 'rb',$transparent = 50)
{
$imagetype = array("1"=>"gif","2"=>"jpeg","3"=>"png","4"=>"wbmp"); //here,is the type of image style
$image_size = getimagesize($destination);
$iinfo=getimagesize($destination,$iinfo);
$f ="imagecreatefrom".$imagetype[$iinfo[2]];
$simage = $f($destination);
$imagesize_mask = getimagesize($waterpngfilename);
$f ="imagecreatefrom".$imagetype[$imagesize_mask[2]];
$simage1 = $f($waterpngfilename);
switch($pos) //the position of the watermask you want
{
case 'lt':
imagecopymerge($simage,$simage1,0,0,0,0,$imagesize_mask[0],
$imagesize_mask[1],$transparent);
break;
case 'lb':
imagecopymerge($simage,$simage1,0,$image_size[1]-$imagesize_mask[1]
,0,0,$imagesize_mask[0],$imagesize_mask[1],$transparent);
break;
case 'rt':
imagecopymerge($simage,$simage1,$image_size[0]-$imagesize_mask[0],
0,0,0,$imagesize_mask[0],$imagesize_mask[1],$transparent);
break;
case 'rb':
imagecopymerge($simage,$simage1,$image_size[0]-$imagesize_mask[0],
$image_size[1]-$imagesize_mask[1],0,0,$imagesize_mask[0],
$imagesize_mask[1],$transparent);
break;
}
$f ="image".$imagetype[$iinfo[2]];
$f($simage,$destination);
imagedestroy($simage);
imagedestroy($simage1);
}
function DrawImage(ImgD,iwidth,iheight){
//参数(图片,允许的宽度,允许的高度)
var image=new Image();
image.src=ImgD.src;
if(image.width>0 && image.height>0){
flag=true;
if(image.width/image.height>= iwidth/iheight){
if(image.width>iwidth){
ImgD.width=iwidth;
ImgD.height=(image.height*iwidth)/image.width;
}else{
ImgD.width=image.width;
ImgD.height=image.height;
}
ImgD.alt=image.width+"×"+image.height;
}
else{
if(image.height>iheight){
ImgD.height=iheight;
ImgD.width=(image.width*iheight)/image.height;
}else{
ImgD.width=image.width;
ImgD.height=image.height;
}
ImgD.alt=image.width+"×"+image.height;
}
}
}