php缩略图显示的是黑叉,生成缩略图之后的页面显示问题

header("content-type:text/html;charset=utf-8");

class Thumb{

// 水印图片路径 - 100*130

private $watermark;

// 生成缩略图的路径

public $thumbPath="./";

public function __construct(){

$this->watermark="./logo.jpg";

}

// $imageInfo是上传图片后返回的信息

// $type - 1代表生成商品或文章的缩略图,2代表生成头像缩略图

public function makeThumb($imageInfo,$with=360,$height=360,$type=1){

if($imageInfo['type']==".jpg"){

$src_image=imagecreatefromjpeg($imageInfo['source_img_path']);

}else if($imageInfo['type']==".png"){

$src_image=imagecreatefrompng($imageInfo['source_img_path']);

}else if($imageInfo['type']==".gif"){

$src_image=imagecreatefromgif($imageInfo['source_img_path']);

}

$image=imagecreatetruecolor($with,$height);

$white=imagecolorallocate($image,255,255,255);

// 将背景设为透明

imagecolortransparent($image,$white);

imagefill($image,0,0,$white);

// 开始判断最终生成的缩略图尺寸,避免变形

$finalWidth=$with;

$finalHeight=$height;

$x=$y=0;

if($imageInfo['width']

// 这种情况,不拉伸源图,将源图放置在缩略图正中间

$finalWidth=$imageInfo['width'];

$finalHeight=$imageInfo['height'];

$x=round(($width-$finalWidth)/2);

$y=round(($height-$finalHeight)/2);

}else if($imageInfo['width']>$imageInfo['height']){

// 确定缩放比例

$scale=round($finalWidth/$imageInfo['width'],2);

$finalHeight=round($scale*$imageInfo['height']);

$y=round(($height-$finalHeight)/2);

}else if($imageInfo['width']

$scale=round($finalHeight/$imageInfo['height'],2);

$finalWidth=round($scale*$imageInfo['height']);

$x=round(($width-$finalWidth)/2);

}else if($imageInfo['width']==$imageInfo['height']){

if($with>$height){

$scale=round($finalHeight/$imageInfo['height'],2);

$finalWidth=round($scale*$imageInfo['width']);

$x=round(($with-$finalWidth)/2);

}else if($with

$scale=round($finalWidth/$imageInfo['width'],2);

$finalHeight=round($scale*$imageInfo['height']);

$y=round(($height-$finalHeight)/2);

}

}

imagecopyresampled($image,$src_image,$x,$y,0,0,$finalWidth,$finalHeight,$imageInfo['width'],$imageInfo['height']);

// 增加水印

if($finalWidth>=200 && $finalHeight>=260){

$watermark=imagecreatefromjpeg($this->watermark);

imagecopymerge($image,$watermark,$finalWidth-100,$finalHeight-130,0,0,100,130,80);

imagedestroy($watermark);

}

!is_dir($this->thumbPath) && mkdir($this->thumbPath);

// 保存路径+名字

$this->thumbPath=$this->thumbPath."/".time().mt_rand()."_{$finalWidth}_{$finalHeight}.png";

// 最后统一生成png格式,清晰度较高

header("content-type:image/png");

imagepng($image,$this->thumbPath);

imagedestroy($image);

imagedestroy($src_image);

}

}

if($_FILES){

$a=new Thumb();

// 实际图片信息是上传处理过的信息,这里写成了固定的

$a->makeThumb(array('width'=>430,'height'=>430,'type'=>'.jpg','source_img_path'=>'./11.jpg'));

}

?>

11.jpg

bVx1B7

水印图

bVx1B9

执行该脚本之后,生成的缩略图没问题,正常保存

但是页面却显示小边框

bVx1Cc

求解,谢谢诸位

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值