本文介绍了PHP图片裁剪与缩放示例,废话不多少,具体代码如下:
/*
*exif_imagetype -- 判断一个图像的类型
*功能说明:函数功能是把一个图像裁剪为任意大小的图像,并保持图像不变形
*参数说明:输入 需要处理图片的 文件名,生成新图片的保存文件名,生成新图片的宽,生成新图片的高
*/
// 获得任意大小图像,不足地方拉伸,不产生变形,不留下空白
function image_resize($src_file, $dst_file, $new_width, $new_height)
{
$new_width = intval($new_width);
$new_height = intval($new_width);
if ($new_width < 1 || $new_height < 1)
{
echo "params width or height error !";
exit();
}
if (!file_exists($src_file))
{
echo $src_file . " is not exists !";
exit();
}
// 图像类型
$type = exif_imagetype($src_file);
$support_type = array(IMAGETYPE_JPEG, IMAGETYPE_PNG, IMAGETYPE_GIF);
if (!in_array($type, $support_type, true))
{
echo "this type of image does not support! only support jpg , gif or png";
exit();
}
//Load image
switch($type)
{
case IMAGETYPE_JPEG :
$src_img = imagecreatefromjpeg($src_file);
break;
case IMAGETYPE_PNG :
$src_img = imagecreatefrompng($src_file);
break;
case IMAGETYPE_GIF :
$src_img = imagecreatefromgif($src_file);
break;
default :
echo "Load image error!";
exit();
}
$w = imagesx($src_img);
$h = imagesy($src_img);
$ratio_w = 1.0 * $new_width / $w;
$ratio_h = 1.0 * $new_height / $h;
$ratio = 1.0;
// 生成的图像的高宽比原来的都小,或都大 ,原则是 取大比例放大,取大比例缩小(缩小的比例就比较小了)
if (($ratio_w < 1 && $ratio_h < 1) || ($ratio_w > 1 && $ratio_h > 1))
{
if ($ratio_w < $ratio_h) {
$ratio = $ratio_h;
// 情况一,宽度的比例比高度方向的小,按照高度的比例标准来裁剪或放大
} else {
$ratio = $ratio_w;
}
// 定义一个中间的临时图像,该图像的宽高比 正好满足目标要求
$inter_w = (int)($new_width / $ratio);
$inter_h = (int)($new_height / $ratio);
$inter_img = imagecreatetruecolor($inter_w, $inter_h);
//var_dump($inter_img);
imagecopy($inter_img, $src_img, 0, 0, 0, 0, $inter_w, $inter_h);
// 生成一个以最大边长度为大小的是目标图像$ratio比例的临时图像
// 定义一个新的图像
$new_img = imagecreatetruecolor($new_width, $new_height);
//var_dump($new_img);exit();
imagecopyresampled($new_img, $inter_img, 0, 0, 0, 0, $new_width, $new_height, $inter_w, $inter_h);
switch($type)
{
case IMAGETYPE_JPEG :
// 存储图像
imagejpeg($new_img, $dst_file, 100);
break;
case IMAGETYPE_PNG :
imagepng($new_img, $dst_file, 100);
break;
case IMAGETYPE_GIF :
imagegif($new_img, $dst_file, 100);
break;
default :
break;
}
}// end if 1
// 2 目标图像 的一个边大于原图,一个边小于原图 ,先放大平普图像,然后裁剪
// =if( ($ratio_w < 1 && $ratio_h > 1) || ($ratio_w >1 && $ratio_h <1) )
else {
$ratio = $ratio_h > $ratio_w ? $ratio_h : $ratio_w;
//取比例大的那个值
// 定义一个中间的大图像,该图像的高或宽和目标图像相等,然后对原图放大
$inter_w = (int)($w * $ratio);
$inter_h = (int)($h * $ratio);
$inter_img = imagecreatetruecolor($inter_w, $inter_h);
//将原图缩放比例后裁剪
imagecopyresampled($inter_img, $src_img, 0, 0, 0, 0, $inter_w, $inter_h, $w, $h);
// 定义一个新的图像
$new_img = imagecreatetruecolor($new_width, $new_height);
imagecopy($new_img, $inter_img, 0, 0, 0, 0, $new_width, $new_height);
switch($type)
{
case IMAGETYPE_JPEG :
// 存储图像
imagejpeg($new_img, $dst_file, 100);
break;
case IMAGETYPE_PNG :
imagepng($new_img, $dst_file, 100);
break;
case IMAGETYPE_GIF :
imagegif($new_img, $dst_file, 100);
break;
default :
break;
}
}// if3
}// end function
//输出新图片
image_resize('test.jpg', 'demo.jpg', '1200px', '1200px');
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# php
# 图片缩放
# 裁剪图片
# php调整图片大小
# php使用imagick模块实现图片缩放、裁剪、压缩示例
# php图片的裁剪与缩放生成符合需求的缩略图
# php初学者教程之图片缩放和裁剪
# 的是
# 大比例
# 则是
# 较小
# 就比
# 大家多多
# 大平
# 不变形
# 高宽比
# exists
# exit
# file_exists
# gif
# array
# support
# jpg
# IMAGETYPE_PNG
# IMAGETYPE_JPEG
# in_array
# IMAGETYPE_GIF
相关文章:
如何自定义建站之星网站的导航菜单样式?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
如何在宝塔面板创建新站点?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
存储型VPS适合搭建中小型网站吗?
制作证书网站有哪些,全国城建培训中心证书查询官网?
建站之星如何取消后台验证码生成?
php json中文编码为null的解决办法
,南京靠谱的征婚网站?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
无锡营销型网站制作公司,无锡网选车牌流程?
css网站制作参考文献有哪些,易聊怎么注册?
Python多线程使用规范_线程安全解析【教程】
电商平台网站制作流程,电商网站如何制作?
如何基于PHP生成高效IDC网络公司建站源码?
网站制作企业,网站的banner和导航栏是指什么?
如何快速生成凡客建站的专业级图册?
宁波免费建站如何选择可靠模板与平台?
如何设计高效校园网站?
建站主机空间推荐 高性价比配置与快速部署方案解析
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
建站主机是否等同于虚拟主机?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
如何通过虚拟主机快速搭建个人网站?
*服务器网站为何频现安全漏洞?
建站之星安装失败:服务器环境不兼容?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
建站之星安装后如何自定义网站颜色与字体?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
Android自定义listview布局实现上拉加载下拉刷新功能
如何在自有机房高效搭建专业网站?
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
如何选购建站域名与空间?自助平台全解析
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
如何规划企业建站流程的关键步骤?
建站主机选购指南与交易推荐:核心配置解析
如何通过商城免费建站系统源码自定义网站主题?
清除minerd进程的简单方法
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
实惠建站价格推荐:2025年高性价比自助建站套餐解析
网站代码制作软件有哪些,如何生成自己网站的代码?
北京网站制作网页,网站升级改版需要多久?
h5在线制作网站电脑版下载,h5网页制作软件?
宝塔面板创建网站无法访问?如何快速排查修复?
太平洋网站制作公司,网络用语太平洋是什么意思?
如何高效搭建专业期货交易平台网站?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
建站之星图片链接生成指南:自助建站与智能设计教程
*请认真填写需求信息,我们会在24小时内与您取得联系。