>  기사  >  백엔드 개발  >  PHP는 워터마크 및 비례 썸네일 및 고정 높이 및 고정 너비 클래스를 추가합니다.

PHP는 워터마크 및 비례 썸네일 및 고정 높이 및 고정 너비 클래스를 추가합니다.

WBOY
WBOY원래의
2016-07-25 08:42:52882검색
  1. //PHP 워터마크 및 비례 썸네일 및 고정 높이 및 고정 너비 클래스를 추가합니다.
  2. class Image_process{
  3. public $source; //원본 이미지
  4. public $source_width; //원본 이미지 너비
  5. public $source_height; //원본 이미지 높이
  6. public $orign_name
  7. public $orign_dirname
  8. //원본 이미지 경로 전달
  9. public function __construct($source){
  10. $this->typeList = array(1 = >'gif',2=>'jpg',3=>'png')
  11. $ginfo = getimagesize($source)
  12. $this->source_width = $ginfo[0 ] ;
  13. $this->source_height = $ginfo[1]
  14. $this->source_type_id = $ginfo[2]
  15. $this->orign_url
  16. $ this->orign_name = basename($source);
  17. $this->orign_dirname = dirname($source);
  18. }
  19. // 이미지 파일 형식을 결정하고 반환합니다. PHP 인식 인코딩
  20. public function JudgeType($type,$source){
  21. if($type == 1){
  22. return imagecreatefromgif($source) //gif
  23. }else if( $ type == 2){
  24. return imagecreatefromjpeg($source); //jpg
  25. }else if($type == 3){
  26. return imagecreatefrompng($source) //png
  27. } else{
  28. return false
  29. }
  30. }
  31. //워터마크 이미지 생성
  32. public function waterMakeImage($logo){
  33. $linfo = getimagesize($logo) ;
  34. $logo_width = $linfo[0];
  35. $logo_type_id = $linfo[2]
  36. $this->judgeType( $ this->source_type_id,$this->orign_url)
  37. $logoHandle = $this->judgeType($logo_type_id,$logo)
  38. if(!$sourceHandle || !$logoHandle){
  39. false 반환
  40. }
  41. $x = ($this->source_width - $logo_width)/2
  42. $y = ($this->source_height - $logo_height)/2;
  43. imagecopy($sourceHandle,$logoHandle,$x,$y,0,0,$logo_width,$logo_height)
  44. $newPic = $this->orign_dirname.'water_'.time().' .'.$this->typeList[$this->source_type_id]
  45. if($this->saveImage($sourceHandle,$newPic)){
  46. imagedestroy($sourceHandle); imagedestroy ($logoHandle);
  47. }
  48. }
  49. //고정 높이 너비
  50. public function fixSizeImage($width,$height){
  51. if($width > $this - >source_width) $this->source_width;
  52. if($height > $this->source_height) $this->source_height
  53. if($width === false){
  54. $width = 바닥($this->source_width / ($this->source_height / $height))
  55. }
  56. if($height === false){
  57. $height = 바닥 ( $this->source_height / ($this->source_width / $width))
  58. }
  59. $this->tinyImage($width,$height)
  60. }
  61. //이미지 크기를 비례적으로 조정
  62. public function scaleImage($scale){
  63. $width = Floor($this->source_width * $scale)
  64. $height = Floor($this-> ; source_height * $scale);
  65. $this->tinyImage($width, $height)
  66. }
  67. //썸네일 생성
  68. public functiontinyImage($width,$ height ){
  69. $tinyImage = imagecreatetruecolor($width,$height)
  70. $handle = $this->judgeType($this->source_type_id,$this->orign_url)
  71. if ( function_exists('imagecopyresampled')){
  72. imagecopyresampled($tinyImage, $handle, 0, 0, 0, 0, $width, $height, $this->source_width, $this->source_height); 🎜 > }else{
  73. imagecopyreized($tinyImage, $handle, 0, 0, 0, 0, $width, $height, $this->source_width, $this->source_height)
  74. }
  75. $newPic = $this->orign_dirname.'thumb_'.time().'_'.$width."_".$height.".".$this->typeList[$this-> source_type_id ]; if($this->saveImage($tinyImage,$newPic)){
  76. imagedestroy($tinyImage)
  77. imagedestroy($handle)
  78. }
  79. }
  80. //이미지 저장
  81. private function saveImage($image,$url){
  82. if(imagejpeg($image,$url)){
  83. return true;
  84. }
  85. $imgHandle = new Image_process('D:AppServwwwtestgetimg14061907445601.jpg');
  86. //$imgHandle->waterMakeImage('D:AppServwwwtestgetimgshougongke.png'); //워터마크 이미지 생성
  87. / /$imgHandle->fixSizeImage(200,150); //고정 길이 이미지
  88. $imgHandle->scaleImage(0.2); //균등 배율
  89. ?> 코드 복사
  90. PHP, 앰프


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.