<?php
class imgwater{
static $imgtype = array('jpeg','jpg','gif','bmp');
private function checkimg($filename){
$filename = trim($filename);
if(!$filename){
return false;
}
$img_exe = self::file_type($filename);
if(!in_array($img_exe,self::$imgtype)){
return -2;
}
return 1;
}
private function add_water($source,$water,$newimg){
$source = trim($source);
$water
= trim($water);
$newimg = trim($newimg);
if(!$source || !$water){
return false;
}
$exe
= self::file_type($source);
if(!$newimg){
$pre
= time()."newsource";
$newimg
= $pre.".".$exe;
}
$im
= imagecreatefromjpeg($source);
$img2
= imagecreatefrompng($water);
//取得各自的长宽,计算位置
$im_WH
= getimagesize($source);
$im_W
= $im_WH[0];
$im_H
= $im_WH[1];
$img2_WH= getimagesize($water);
$img2_W = $img2_WH[0];
$img2_H = $img2_WH[1];
//定义存放的位置
$NewX
= $im_W-$img2_W;
$NewY
= $im_H-$img2_H;
//填充
imagecopy($im,$img2,$NewX,$NewY,0,0,$img2_W,$img2_H);
//header("Content-type:image/jpeg");
@unlink($newimg);
switch ($exe){
case 'jpg':
imagejpeg($im,$newimg);break;
case 'jpeg':
imagejpeg($im,$newimg);break;
case 'gif':
imagegif($im,$newimg);break;
}
}
private function file_type($filename){
$file
= fopen($filename, "rb");
$bin
= fread($file, 2); //只读2字节
fclose($file);
$strInfo
= @unpack("C2chars", $bin);
$typeCode
= intval($strInfo['chars1'].$strInfo['chars2']);
$fileType
= '';
switch ($typeCode){
case 7790:
$fileType = 'exe';
break;
case 7784:
$fileType = 'midi';
break;
case 8297:
$fileType = 'rar';
break;
case 8075:
$fileType = 'zip';
break;
case 255216:
$fileType = 'jpg';
break;
case 7173:
$fileType = 'gif';
break;
case 6677:
$fileType = 'bmp';
break;
case 13780:
$fileType = 'png';
break;
default:
$fileType = 'unknown: '.$typeCode;
}
//Fix
if ($strInfo['chars1']=='-1' AND $strInfo['chars2']=='-40' ) return 'jpg';
if ($strInfo['chars1']=='-119' AND $strInfo['chars2']=='80' ) return 'png';
return $fileType;
}
public function waterimg($filename,$waterimg,$newimg){
$filename
= trim($filename);
$waterimg
= trim($waterimg);
$newimg
= trim($newimg);
if(!$filename ||!$waterimg){
return false;
}
$exerst = self::checkimg($filename);
if($exerst==1){
//加水印处理
self::add_water($filename,$waterimg,$newimg);
}
}
}
$waterclass = new imgwater();
$imglist = array('1.jpg','2.jpg','3.jpg');
foreach($imglist as $key=>$value){
$waterclass->waterimg($value,"yin.png","");
sleep(3);
}
?>
class imgwater{
}
$waterclass = new imgwater();
$imglist = array('1.jpg','2.jpg','3.jpg');
foreach($imglist as $key=>$value){
}
?>