有时上传图片时因为图片太大了,不仅占用空间,消耗流量,而且影响浏(图片的尺寸大小不一)。下面分享一种等比例不失真缩放图片的方法,这样,不管上传的图片尺有多大,都会自动压缩到我们设置尺寸值的范围之内。经过测试,证明实用。
02 |
function resizeImage($im,$maxwidth,$maxheight,$name,$filetype) |
04 |
$pic_width = imagesx($im); |
05 |
$pic_height = imagesy($im); |
07 |
if(($maxwidth && $pic_width > $maxwidth) || ($maxheight && $pic_height > $maxheight)) |
09 |
if($maxwidth && $pic_width>$maxwidth) |
11 |
$widthratio = $maxwidth/$pic_width; |
12 |
$resizewidth_tag = true; |
15 |
if($maxheight && $pic_height>$maxheight) |
17 |
$heightratio = $maxheight/$pic_height; |
18 |
$resizeheight_tag = true; |
21 |
if($resizewidth_tag && $resizeheight_tag) |
23 |
if($widthratio<$heightratio) |
26 |
$ratio = $heightratio; |
29 |
if($resizewidth_tag && !$resizeheight_tag) |
31 |
if($resizeheight_tag && !$resizewidth_tag) |
32 |
$ratio = $heightratio; |
34 |
$newwidth = $pic_width * $ratio; |
35 |
$newheight = $pic_height * $ratio; |
37 |
if(function_exists("imagecopyresampled")) |
39 |
$newim = imagecreatetruecolor($newwidth,$newheight);//PHP系统函数 |
40 |
imagecopyresampled($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);//PHP系统函数 |
44 |
$newim = imagecreate($newwidth,$newheight); |
45 |
imagecopyresized($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height); |
48 |
$name = $name.$filetype; |
49 |
imagejpeg($newim,$name); |
54 |
$name = $name.$filetype; |
59 |
$im=imagecreatefromjpeg("./20140416103023202.jpg");//参数是图片的存方路径 |
60 |
$maxwidth="600";//设置图片的最大宽度 |
61 |
$maxheight="400";//设置图片的最大高度 |
62 |
$name="123";//图片的名称,随便取吧 |
63 |
$filetype=".jpg";//图片类型 |
64 |
resizeImage($im,$maxwidth,$maxheight,$name,$filetype);//调用上面的函数 |
处理前图片大小:1187*846
图片处理后大小:561*400
处理后的图片名称:123.jpg
写 在最后:因为客户要求使用php实现等比例不失真缩放上传图片,本来要自己写的,但百度一下发现了这个函数,于是乎就拿来用了,呵呵,省了我不少时间啊! 其实我们想到的一些新功能,网络早已有之,犹其在中国,很多的创新,其实都是从国外翻译过来的,在代码这方面,老外的脑子确实很好使。上面的函数,作者不 详,但还是要感谢作者的辛苦付出。
- javascript异步上传压缩图片并立即显示图片
javascript异步上传压缩图片并立即显示图片<pre><!doctype html><html><head><meta charset=&q ...
- thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印
今天分享一下thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印.博主是新手,在这里卡住了很久(>_<) thinkphp 3.2.3整合ueditor 1.4 下载 ...
- ASP.NET、JAVA跨服务器远程上传文件(图片)的相关解决方案整合
一.图片提交例: A端--提交图片 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string u ...
- 如何预览将要上传的图片-使用H5的FileAPI
这篇将要说的东西已经不新鲜了. 参考资料: Reading files in JavaScript using the File APIs (鉴于作者在美国, 我姑且认为作者母语是英语, 当然链接中有 ...
- js上传压缩图片
原文链接:http://blog.csdn.net/iefreer/article/details/53039848 手机用户拍的照片通常会有2M以上,这对服务器带宽产生较大压力. 因此在某些应用下( ...
- php 实现接收客户端上传的图片
今天,遇到一个服务端接收客户端上传图片的需求,经过学习.我写了个简单的demo 以备下次学习. 首先服务器接收的发送图片的请求一定要是post请求,而且请求一定要加上 enctype="mu ...
- KindEditor上传本地图片在ASP.NET MVC的配置
http://www.cnblogs.com/upupto/archive/2010/08/24/1807202.html 本文解决KindEditor上传本地图片在ASP.NET MVC中的配置. ...
- .net mvc4 利用 kindeditor 上传本地图片
http://blog.csdn.net/ycwol/article/details/41824371?utm_source=tuicool&utm_medium=referral 最近在用k ...
- 解决uploadify多图片上传部分图片丢失,且不提示任何错误的问题
这两天用到uploadify的flash版本进行批量图片上传并生成缩略图的功能,之前用uploadify用的好好的,这次突然出现了一个奇怪的问题. 问题描述如下:当我选择单个图片上传的时候,图片上传都 ...
随机推荐
- nginx trouble shooting
除去配置语法失误.逻辑失误 nginx中的大部分问题都是前端到后端联通性 curl 域名没反应 cyr@test:/etc/nginx/sites-enabled$ curl test.hehe.ex ...
- 小团队git开发模式
实验室要使用Git进行代码管理,但是git非常复杂,各种开发模式也是层出不穷.作为新手的偶们很是发囧啊!!网上搜了一下,发现很多并不适合我们小团队运作(它本身就是为Linux内核管理而开发的分布式代码 ...
- Linux下SVN的简单配置
1.安装svn sudo yum install subversion 2.查看是否安装成功 svnserve --version 3.创建svn目录 svnadmin create 目录名 例如:s ...
- QT 报错:Project ERROR: Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.
1.打开终端,输入指令并按回车键: sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer 2.如果电脑设置有密码,终 ...
- 【转】spring管理属性配置文件properties——使用PropertiesFactoryBean|spring管理属性配置文件properties——使用PropertyPlaceholderConfigurer
spring管理属性配置文件properties--使用PropertiesFactoryBean 对于属性配置,一般采用的是键值对的形式,如:key=value属性配置文件一般使用的是XXX.pr ...
- 关于 HSSF 和 XSSF 功能的开发者入门指南 (Apache POI 操作 Excel)
关于 HSSF 和 XSSF 功能的开发者入门指南 笔者深夜无眠,特此对本文翻译一部分,未完成部分待后续更新 本文源文地址 意欲使用 HSSF 和 XSSF 功能快熟读写电子表格?那本文就是为你而写的 ...
- hdu1011
/*比较苦逼的树形DP,慢慢来吧!不着急*/#include <iostream>#include <vector>using namespace std;const int ...
- 说说SACC2016第八届架构师大会
每年这方面的会议很多,不知不觉已经连续举办八年了.一届比一届办的有质量,规模越大.今年也如约而至.2016-10-27在北京万达索菲特酒店.4000多人规模,云集各领域顶尖架构师,运维,云计算,技术专 ...
- HDU 2212 DFS
Problem Description A DFS(digital factorial sum) number is found by summing the factorial of every d ...
- Ubuntu ctrl+alt+b快捷键冲突
安装了搜狗拼音后,其快捷键ctrl+alt+b会启动软键盘,造成与其他编辑器快捷键的冲突. 为了禁止使用ctrl+alt+b启动软键盘,可以: 1. 在搜狗拼音输入法选择设置 2. 高级设置 3. 高 ...