如果圖片直接改后綴名,會(huì)導(dǎo)致這種情況,可通過PS修改后綴名,希望回答有所幫助。 <?php // 獲取圖片寬度、高度和類型 // $img='time.jpg'; // print_r(getImageInfo($img)); // echo '<br/>'; function getImageInfo($img){ $info= getimagesize($img); $imageinfo=pathinfo($img); $getImageInfo=array( 'width' =>$info[0], 'height'=>$info[1], 'type'=>$imageinfo['extension'], ); return $getImageInfo; } water('photo.jpeg','watermark.png'); function water($img,$water,$pos=9,$tm=100){ $info=getImageInfo($img); $logo=getImageInfo($water); $dst=openImg($img,$info['type']); $src=openImg($water,$logo['type']); switch($pos){ case 1: $x=0; $y=0; break; case 2: $x=ceil(($info['width']-$logo['width'])/2); $y=0; break; case 3: $x=$info['width']-$logo['width']; $y=0; break; case 4: $x=0; $y=ceil(($info['height']-$logo['height'])/2); break; case 5: $x=ceil(($info['width']-$logo['width'])/2); $y=ceil(($info['height']-$logo['height'])/2); break; case 6: $x=$info['width']-$logo['width']; $y=ceil(($info['height']-$logo['height'])/2); break; case 7: $x=0; $y=$info['height']-$logo['height']; break; case 8: $x=ceil(($info['width']-$logo['width'])/2); $y=$info['height']-$logo['height']; break; case 9: $x=$info['width']-$logo['width']; $y=$info['height']-$logo['height']; break; case 0: default: $x=mt_rand(0,$info['width']-$logo['width']); $y=mt_rand(0,$y=$info['height']-$logo['height']); break; } imagecopymerge($dst,$src,$x,$y,0,0,$logo['width'],$logo['height'],$tm); header ('Content-Type:image/jpeg'); imagejpeg($dst); imagedestory($dst); imagedestory($src); } function openImg($path,$type){ switch($type){ case 'jpeg': case 'jpg': case 'pjpeg': $img=imagecreatefromjpeg($path); break; case 'png': case 'x-png': $img=imagecreatefrompng($path); break; case 'gif': $img=imagecreatefromgif($path); break; case 'wbmp': $img=imagecreatefromwbmp($path); break; default: exit('圖片類型不支持'); } return $img; } ?> 另外課程上的方法(親測可用),不同在于getImageInfo函數(shù)。 <?php header("content-type:text/html;charset=utf-8"); water('photo.jpeg','watermark.jpeg'); function getImageInfo($path) { $info = getimagesize($path); $data['width'] = $info[0]; $data['height'] = $info[1]; $data['type'] = $info['mime']; return $data; } function openImg($path,$type){ switch($type){ case 'image/jpeg': case 'image/jpg': case 'image/pjpeg': $img=imagecreatefromjpeg($path); break; case 'image/png': case 'image/x-png': $img=imagecreatefrompng($path); break; case 'image/gif': $img=imagecreatefromgif($path); break; case 'image/wbmp': $img=imagecreatefromwbmp($path); break; default: exit('圖片類型不支持'); } return $img; } //$water = 'watermark.jpeg'; function water($img,$water,$pos=9,$tm=100){ $info=getImageInfo($img); $logo=getImageInfo($water); $dst=openImg($img,$info['type']); $src=openImg($water,$logo['type']); switch($pos){ case 1: $x=0; $y=0; break; case 2: $x=ceil(($info['width']-$logo['width'])/2); $y=0; break; case 3: $x=$info['width']-$logo['width']; $y=0; break; case 4: $x=0; $y=ceil(($info['height']-$logo['height'])/2); break; case 5: $x=ceil(($info['width']-$logo['width'])/2); $y=ceil(($info['height']-$logo['height'])/2); break; case 6: $x=$info['width']-$logo['width']; $y=ceil(($info['height']-$logo['height'])/2); break; case 7: $x=0; $y=$info['height']-$logo['height']; break; case 8: $x=ceil(($info['width']-$logo['width'])/2); $y=$info['height']-$logo['height']; break; case 9: $x=$info['width']-$logo['width']; $y=$info['height']-$logo['height']; break; case 0: default: $x=mt_rand(0,$info['width']-$logo['width']); $y=mt_rand(0,$y=$info['height']-$logo['height']); break; } imagecopymerge($dst,$src,$x,$y,0,0,$logo['width'],$logo['height'],$tm); header ('Content-Type:image/jpeg'); imagejpeg($dst); imagedestory($dst); imagedestory($src); } ?> ?
2019-02-120個(gè)贊
exit:當(dāng)前處后面的再也不執(zhí)行;break:跳出循環(huán)執(zhí)行后面的代碼;continue:僅跳出此次循環(huán)。
2019-02-120個(gè)贊