PHP header浏览器中显示图片

本文介绍了如何使用PHP处理并直接输出图片到浏览器的方法,包括获取图片信息、创建图像资源、设置HTTP头信息及输出质量等关键步骤。还提供了解决ThinkPHP框架下输出图片时可能出现的乱码问题的方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
 * php 页面直接输出图片
 */
function showImg($img){
	$info = getimagesize($img);
	$imgExt = image_type_to_extension($info[2], false);  //获取文件后缀
	$fun = "imagecreatefrom{$imgExt}";
	$imgInfo = $fun($img); 					//1.由文件或 URL 创建一个新图象。如:imagecreatefrompng ( string $filename )
	//$mime = $info['mime'];
	$mime = image_type_to_mime_type(exif_imagetype($img)); //获取图片的 MIME 类型
	header('Content-Type:'.$mime);
	$quality = 100;
	if($imgExt == 'png') $quality = 9;		//输出质量,JPEG格式(0-100),PNG格式(0-9)
	$getImgInfo = "image{$imgExt}";
	$getImgInfo($imgInfo, null, $quality);	//2.将图像输出到浏览器或文件。如: imagepng ( resource $image )
	imagedestroy($imgInfo);
}

如果你要设置宽高的话可以用下面这种 只能用png格式的

              $img = Sys::where(["part"=>"base","col"=>"site"])->find()->val . "/" . $qr;
                $info = getimagesize($img);
                $imgInfo = imagecreatefrompng($img);         //1.由文件或 URL 创建一个新图象。如:imagecreatefrompng ( string $filename )
                $mime = image_type_to_mime_type(exif_imagetype($img)); //获取图片的 MIME 类型
                header('Content-Type:'.$mime);
                $image = imagecreatetruecolor($size, $size); //创建一个彩色的底图
                imagecopyresampled($image, $imgInfo, 0, 0, 0, 0,$size,$size,$info[0] , $info[1]);
                imagejpeg($image, null, 100);
                ob_end_flush();
                @unlink($qr);

如果你使用的是Thinkphp框架乱码的话

因为框架的原理,你可能看不出是编码问题还是存在html代码问题,导致有些php文件设置编码也没有用。

我在tp高阶文档找到了一个解决乱码的问题,直接在图片处理好后面加一段代码:

ob_end_flush()

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值