当前位置:  编程技术>php

php缩略图填充白边的示例代码

    来源: 互联网  发布时间:2014-10-10

    本文导语:  php实现的缩略图规格要求都是160×120。 但如果上传的图片比例和缩略图不一致,直接缩放的话就会导致图片变形,这样体验肯定就不好了。 想了一个折中的办法,就是缩小后添加白边的方法。 源图,尺寸是600×366: 最终生成...

php实现的缩略图规格要求都是160×120。
但如果上传的图片比例和缩略图不一致,直接缩放的话就会导致图片变形,这样体验肯定就不好了。

想了一个折中的办法,就是缩小后添加白边的方法。

源图,尺寸是600×366:

最终生成的效果图:

思路:
先将源图按比例生成缩略图,并且宽不大于160、高不大于120。例如上图会先生成160×98的缩略图。
新建一个160×120的白色背景图片,将上一步生成的缩略图居中放置到这张图片上就OK了。

代码:
 

代码示例:

//源图的路径,可以是本地文件,也可以是远程图片
$src_path = '1.jpg';
//最终保存图片的宽
$width = 160;
//最终保存图片的高
$height = 120;

//源图对象
$src_image = imagecreatefromstring(file_get_contents($src_path));
$src_width = imagesx($src_image);
$src_height = imagesy($src_image);

//生成等比例的缩略图
$tmp_image_width = 0;
$tmp_image_height = 0;
if ($src_width / $src_height >= $width / $height) {
    $tmp_image_width = $width;
    $tmp_image_height = round($tmp_image_width * $src_height / $src_width);
} else {
    $tmp_image_height = $height;
    $tmp_image_width = round($tmp_image_height * $src_width / $src_height);
}

$tmpImage = imagecreatetruecolor($tmp_image_width, $tmp_image_height);
imagecopyresampled($tmpImage, $src_image, 0, 0, 0, 0, $tmp_image_width, $tmp_image_height, $src_width, $src_height);

//添加白边
$final_image = imagecreatetruecolor($width, $height);
$color = imagecolorallocate($final_image, 255, 255, 255);
imagefill($final_image, 0, 0, $color);

$x = round(($width - $tmp_image_width) / 2);
$y = round(($height - $tmp_image_height) / 2);

imagecopy($final_image, $tmpImage, $x, $y, 0, 0, $tmp_image_width, $tmp_image_height);

//输出图片
header('Content-Type: image/jpeg');
imagejpeg($final_image);


    
 
 

您可能感兴趣的文章:

  • php生成缩略图填充白边(等比缩略图方案)
  • PHP 图片缩略图库 PHPThumb
  • PHP实现生成透明背景的PNG缩略图函数分享
  • php获取exif图片缩略图的例子
  • PHP等比例缩放图片生成缩略图函数的例子
  • PHP中使用FFMPEG获取视频缩略图和视频总时长实例
  • php按百分比生成缩略图的代码分享
  • PHP图片等比例缩放生成缩略图函数分享
  • php利用GD库生成缩略图示例
  • php gd库实现服务端图片裁剪与缩略图
  • php GD库生成缩略图的例子
  • 使用gd库实现php服务端图片裁剪和生成缩略图功能分享
  • php生成缩略图示例代码分享(使用gd库实现)
  • PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
  • php GD库生成高质量缩略图(示例)
  • php图片裁剪与缩略图示例
  • php 根据url自动生成缩略图并处理高并发问题
  • PHP使用imagick读取PDF生成png缩略图的两种方法
  • php实现上传图片生成缩略图示例
  • php根据url自动生成缩略图(附源码)
  • 基于URL生成缩略图的轻量级PHP库 EvaCloudImage
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • php通过socket_bind()设置IP地址代码示例
  • php循环创建目录示例分享(php创建多级目录)
  • PHP获取php,mysql,apche的版本信息示例代码
  • php定义数组和使用示例(php数组的定义方法)
  • php输出奇数偶数示例
  • php递归示例 php递归函数代码
  • php生成数组的使用示例 php全组合算法
  • php分割数组示例
  • php数组随机排序示例
  • PHP 强制下载文件示例代码
  • php动态生成函数示例
  • php输入流php://input使用示例(php发送图片流到服务器)
  • php循环创建多级目录示例
  • php二维数组转换为字符串示例
  • php求两个目录的相对路径示例(php获取相对路径)
  • PHP数组根据值获取Key的简单示例
  • php比较绝对时间的大小示例
  • php cli换行示例
  • PHP使用imagick读取PDF生成png缩略图的两种方法 iis7站长之家
  • php类声明和php类使用方法示例分享
  • PHP邮箱地址正确性验证示例
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • IIS7配置PHP图解(IIS7+PHP_5.2.17/PHP_5.3.5)
  • PHP 5.4.19 和 PHP 5.5.3 发布及下载地址
  • PHP转换器 HipHop for PHP
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • PHP 框架 Pop php
  • PHP去除html标签,php标记及css样式代码参考
  • PHP的JavaScript框架 PHP.JS
  • PHP 'ext/soap/php_xml.c'不完整修复存在多个任意文件泄露漏洞
  • php服务器探针显示php服务器信息


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3