企业网站建设普遍难题-PHP生成指定大小的背景透

摘要: PHP软件开发全过程中常常会遇到那样的难题,依据网页页面前台接待规定对原照片开展解决,转化成合乎网页页面前端开发规格规定的缩列图,同时,也要考虑垂直居中展现和PNG情况全...

--------

企业网站建设普遍难题

-------

PHP程序开发设计全过程中常常会碰到这样的难题,依据网页页面前台接待要求对原照片开展解决,转化成合乎网页页面前端开发尺寸要求的缩略图,同时,还要考虑垂直居中展现和PNG情况全透明的要求。

举个事例,有一张800*600的照片,网页页面前端开发缩略图尺寸是200*200,PHP需要对这个照片开展以下解决。

1、缩小尺寸,将照片等比缩小到200*150,留意,这里的尺寸其实不是200*200,由于原图其实不是正方形的照片,宽度仅有600;

2、新建一个画布,情况色为白色,依据照片文件格式,假如是PNG或GIF照片,设定情况彻底全透明;

3、将之前缩小成200*150的照片放入画布中,留意x轴需要偏移(200⒂0)/2=25px,这样才可以在画布中垂直居中。


步骤早已清晰了,接下一就是编码编写了,以下是相应的涵数编码,转载请注明出处:江西居道科技比较有限企业

/**
  * 转化成裁剪图涵数(适用照片文件格式:gif、jpeg、png和bmp)
  * @param string $src 源照片相对路径
  * @param int $width 缩略图宽度(只特定高宽比时开展等比放缩)
  * @param int $width 缩略图高宽比(只特定宽度时开展等比放缩)
  * @param string $filename 储存相对路径(不特定时立即輸出到访问器)
  * @return bool
  */
 function cutThumb($src, $width = null, $height = null, $filename = null) {
 if (!isset($width)   !isset($height))
 return false;
 if (isset($width)   $width   0)
 return false;
 if (isset($height)   $height   0)
 return false;
 if(empty($width)   empty($height)) return false;
 $size = getimagesize($src);
 if (!$size)
 return false;

list($src_w, $src_h, $src_type) = $size; $src_mime = $size[ mime switch($src_type) { case 1 : $img_type =  gif break; case 2 : $img_type =  jpeg break; case 3 : $img_type =  png break; case 15 : $img_type =  wbmp break; default : return false; if(empty($width)) $width=$height; if(empty($height)) $height=$width; $rate_h = $height/$src_h; $rate_w = $width/$src_w; //放缩占比 //以大的占比开展放缩 $rate = $rate_h $rate_w?$rate_w:$rate_h; //获得放缩后的照片尺寸,及裁剪的左上角部位 if($rate 1){ $w = $src_w*$rate; $h = $src_h*$rate; $x = ($w-$width)/2; $y = ($h-$height)/2; }else{ //不需要开展放缩 $w = $src_w; $h = $src_h; $x=0;$y=0; //超过的一边开展裁剪 if($w $width){ $x = ($w-$width)/2; if($h $height){ $y = ($h-$height)/2; $imagecreatefunc =  imagecreatefrom  . $img_type; $src_img = $imagecreatefunc($src); imagesavealpha($src_img,true); //优秀行放缩 $resize_img = imagecreatetruecolor($w, $h); imagealphablending($resize_img,false);//这里很关键,意思是不符合并色调,立即用$img图象色调更换,包含全透明色; imagesavealpha($resize_img,true);//这里很关键,意思是不要丢了$thumb图象的全透明色; imagecopyresampled($resize_img, $src_img,0, 0, 0, 0, $w, $h, $src_w, $src_h); //进行放缩,再开展裁剪 $dest_img = imagecreatetruecolor($width, $height); imagealphablending($dest_img,false);//这里很关键,意思是不符合并色调,立即用$img图象色调更换,包含全透明色; imagesavealpha($dest_img,true);//这里很关键,意思是不要丢了图象的全透明色; if ($img_type!= png    $img_type!= gif ){ $bg = imagecolorallocate($dest_img,255,255,255); //设定情况色为白色, }else{ $bg = imagecolorallocatealpha($dest_img,255,255,255,127); //设定情况色为白色,127表明情况彻底全透明 imagecolortransparent($dest_img,$bg); //设定全透明 imagefill($dest_img,0,0,$bg); imagecopyresampled($dest_img, $resize_img, ($width-$w)/2, ($height-$h)/2,0, 0,$w, $h, $w, $h); //这里不需要再开展放缩,立即裁剪便可以,因此后边4个主要参数两两同样 $imagefunc =  image  . $img_type; if ($filename) { $imagefunc($dest_img, $filename,$img_type== png ?CONST_IMGQUALITY/10:CONST_IMGQUALITY); //PNG文件格式的照片品质值介于0-9之间 } else { header( Content-Type:   . $src_mime); $imagefunc($dest_img); imagedestroy($src_img); imagedestroy($resize_img); imagedestroy($dest_img); return true; }

PHP转化成特定尺寸的情况全透明且尺寸固定不动垂直居中显示信息的缩略图 免费下载

上一条纪录:根据python完成多进程分页查询收集网站段落內容的脚本制作专用工具  |  下一条纪录:无
-南昌企业网站建设,南昌模版网站,南昌智能化建网站,南昌完全免费建网站,南昌互联网企业,南昌公司网站,精致公司网站模版-江西居道科技比较有限企业 ---------

企业网站建设普遍难题

------------


联系我们

全国服务热线:4000-399-000 公司邮箱:343111187@qq.com

  工作日 9:00-18:00

关注我们

官网公众号

官网公众号

Copyright?2020 广州凡科互联网科技股份有限公司 版权所有 粤ICP备10235580号 客服热线 18720358503

技术支持:凡科网站建设