加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

使用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通道或者它们是否完全不透明?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读