使用PHP将图像旋转45度时如何避免黑色背景?
发布时间:2020-12-13 17:03:42 所属栏目:PHP教程 来源:网络整理
导读:嗨我必须翻转一个thumpnail图像,然后将其与另一个jpeg文件合并.但是当我使用php旋转45度时.它显示黑色背景.我怎么能避免这种情况.任何身体都可以帮助我. 解决方法 ?$image = "130.jpg";$degrees = 25;for($i=0;$icount($data);$i++){ $ext = ""; $extarr = "
嗨我必须翻转一个thumpnail图像,然后将其与另一个jpeg文件合并.但是当我使用php旋转45度时.它显示黑色背景.我怎么能避免这种情况.任何身体都可以帮助我.
解决方法<? $image = "130.jpg"; $degrees = 25; for($i=0;$i<count($data);$i++){ $ext = ""; $extarr = ""; $extarr = explode(".",$data[$i]['name']); $ext = array_pop($extarr); if($ext == "png"){ $rotate = imagecreatefrompng("images/".$data[$i]['name']); $transColor = imagecolorallocatealpha($rotate,255,270); $watermark1[$i] = imagerotate($rotate,((360-$degrees)%360),$transColor); } } function imagecopymerge_alpha($dst_im,$src_im,$dst_x,$dst_y,$src_x,$src_y,$src_w,$src_h,$opct){ $w = imagesx($src_im); $h = imagesy($src_im); $cut = imagecreatetruecolor($src_w,$src_h); imagecopy($cut,$dst_im,$src_h); imagecopymerge($dst_im,$cut,(100 - $opct)); } for($i=0; $i<count($watermark1); $i++){ if($i == 0) imagecopymerge_alpha($image,$watermark1[$i],$dest_x,$dest_y,$watermark_width,$watermark_height,$opacity); else imagecopymerge_alpha($image,($i*$dest_x)*3,($i*$dest_y)*15,$opacity); imagedestroy($watermark1[$i]); } header("content-type: image/png"); imagepng($image); imagedestroy($image); ?> 此外,您的水印图像是否具有Alpha通道或者它们是否完全不透明? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |