/*
* 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()