PHP는 워터마크 및 비례 축소판, 고정 높이 및 고정 너비 클래스를 추가합니다. foreach 루프 처리를 사용할 경우 절전 시간을 설정하거나 처리 후 반환 값을 따라야 합니다. 그렇지 않으면 처리가 완료되지 않습니다.
다운로드: http://pan.baidu.com/s/1ntKAfFF
- //파일 이름: image_process.class.php
- class Image_process{
- public $source;//원본 이미지
- public $source_width;//Width
- public $source_height;//Height
- public $source_type_id;
- public $orign_name;
- public $orign_dirname;
- //이미지 경로 전달
- 공용 함수 __construct($source){
- $this->typeList = array(1=>'gif',2=>'jpg',3=>'png');
- $ginfo = getimagesize($source);
- $this->source_width = $ginfo[0];
- $this->source_height = $ginfo[1];
- $this->source_type_id= $ ginfo [2];
- $this->orign_url = $source;
- $this->orign_name = basename($source);
- $this->orign_dirname = dirname($source);
- }
-
- //판단 및 처리, PHP 인식 가능 인코딩 반환
- public function JudgeType($type,$source){
- if($type==1){
- return ImageCreateFromGIF($source);//gif
- }else if($type==2){
- return ImageCreateFromJPEG($source);//jpg
- }else if($type==3) {
- return ImageCreateFromPNG($source);//png
- }else{
- return false;
- }
- }
-
- //워터마크 이미지 생성
- 공개 함수 watermarkImage ($logo){
- $linfo = getimagesize($logo);
- $logo_width = $linfo[0];
- $logo_height = $linfo[1];
- $logo_type_id = $linfo [ 2];
- $sourceHandle = $this->judgeType($this->source_type_id,$this->orign_url);
- $logoHandle = $this->judgeType($logo_type_id,$logo ) ;
-
- if( !$sourceHandle || ! $logoHandle ){
- return false;
- }
- $x = $this->source_width - $logo_width;
- $ y = $this->source_height- $logo_height;
-
- ImageCopy($sourceHandle,$logoHandle,$x,$y,0,0,$logo_width,$logo_width) 또는 die("결합 실패" ) ;
- $newPic = $this->orign_dirname .'water_'.time().'.'. $this->typeList[$this->source_type_id];
-
- if( $ this->saveImage($sourceHandle,$newPic)){
- imagedestroy($sourceHandle);
- imagedestroy($logoHandle);
- }
- }
-
- // 수정 width
- // 높이 = 실제 고정 상단 높이
- // 너비 = 실제 고정 상단 너비
- 공개 함수 fixSizeImage($width,$height){
- if( $width > $this-> ; source_width) $this->source_width;
- if( $height > $this->source_height ) $this->source_height;
- if( $width === false){
- $ width = 바닥($this->source_width / ($this->source_height / $height));
- }
- if( $height === false){
- $height = 바닥($ this ->source_height / ($this->source_width / $width));
- }
- $this->tinyImage($width,$height);
- }
-
- / /Scale
- // $scale scale
- public function scaleImage($scale){
- $width = Floor($this->source_width * $scale);
- $height = Floor( $ this->source_height * $scale);
- $this->tinyImage($width,$height);
- }
-
- //썸네일 생성
- 비공개 함수tinyImage($ 너비,$높이){
- $tinyImage = imagecreatetruecolor($width, $height );
- $handle = $this->judgeType($this->source_type_id,$this->orign_url) ;
- if(function_exists('imagecopyresampled')){
- imagecopyresampled($tinyImage,$handle,0,0,0,0,$width,$height,$this->source_width,$this-> ;source_height );
- }else{
- imagecopyreized($tinyImage,$handle,0,0,0,0,$width,$height,$this->source_width,$this->source_height)
- }
-
- $newPic = time().'_'.$width.'_'.$height.'.'. $this->typeList[$this->source_type_id]; > $newPic = $this->orign_dirname .'thumb_'. $newPic;
- if( $this->saveImage($tinyImage,$newPic)){
- imagedestroy($tinyImage);
- imagedestroy($handle);
- }
- }
-
- //이미지 저장
- 비공개 함수 saveImage($image,$url){
- if(ImageJpeg($image, $ url)){
- true를 반환합니다.
- }
- }
- }
-
코드 복사
- //使용
- include('image_process.class.php');
- $m = array(
- 'D:myspacetestimage_process1.jpg',
- 'D:myspacetestimage_process2.jpg',
- 'D:myspacetestimage_process3.jpg',
- 'D:myspacetestimage_process4.jpg'
- );
- $img = 'D:myspacetestimage_process1.jpg';
- $logo = 'D:myspacetestimage_processlogo.png';
- foreach( $m as $item){
- $s = new Image_process( $item ) ;
- $s->watermarkImage($logo);
- $s->scaleImage(0.8);
- $s->fixSizeImage(200,false);
- 수면(1) ;
- }
复代码
|