php图片裁剪与缩放生成缩略图的解决办法
内容摘要
这篇文章主要为大家详细介绍了php图片裁剪与缩放生成缩略图的简单示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!图片太大且
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!图片太大且
文章正文
这篇文章主要为大家详细介绍了php图片裁剪与缩放生成缩略图的简单示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!
图片太大且规格不统一,显示的控制需要靠JavaScript来完成,用在移动设备上时显示效果不好且流量巨大,需要对现有图片库的图片进行一次处理,生成符合移动设备用的缩略图,将原来客户端JS做的工作转移到服务器端用PHP的GD库来集中处理。图片源与需要的大小:代码如下:
1 2 3 4 5 | <code> $src_img = "wallpaper.jpg" ; $dst_w = 300; $dst_h = 200; </code> |
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <code> <?php /* php教程 www.512Pic.com */ list( $src_w , $src_h )= getimagesize ( $src_img ); // 获取原图尺寸 $dst_scale = $dst_h / $dst_w ; //目标图像长宽比 $src_scale = $src_h / $src_w ; // 原图长宽比 if ( $src_scale >= $dst_scale ) { // 过高 $w = intval ( $src_w ); $h = intval ( $dst_scale * $w ); $x = 0; $y = ( $src_h - $h )/3; } else { // 过宽 $h = intval ( $src_h ); $w = intval ( $h / $dst_scale ); $x = ( $src_w - $w )/2; $y = 0; } // 剪裁 $source =imagecreatefromjpeg( $src_img ); $croped =imagecreatetruecolor( $w , $h ); imagecopy( $croped , $source ,0,0, $x , $y , $src_w , $src_h ); // 缩放 $scale = $dst_w / $w ; $target = imagecreatetruecolor( $dst_w , $dst_h ); $final_w = intval ( $w * $scale ); $final_h = intval ( $h * $scale ); imagecopyresampled( $target , $croped ,0,0,0,0, $final_w , $final_h , $w , $h ); // 保存 $timestamp = time(); imagejpeg( $target , "$timestamp.jpg" ); imagedestroy( $target ); ?> </code> |
注:关于php图片裁剪与缩放生成缩略图的简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释