PHP按最大宽高等比例缩放图片类
本来用phpthumb来缩略图片是十分方便的,但是最近在sae上写项目发现phpthumb在sae上保存文件时会出问题,想来实现一个简单的按最大宽高等比例缩放图片类也并不困难,于是便自己写了一个方便修改。
需GD库支持,可支持jpg、jpeg、png、gif格式的图片,代码短小适合新手学习用
<?php
class slpic {
//原图片文件,包含路径和文件名
var $orpic;
//原图的临时图像
var $tempic;
//缩略图
var $thpic;
//原宽度
var $width;
//原高度
var $height;
//图片类型
var $type;
//缩略后的宽度
var $thwidth;
//缩略后的高度
var $thheight; function __construct($file){
$this->orpic = $file;
$infos = getimagesize($file);
$this->width = $infos[0];
$this->height = $infos[1];
$this->type = $infos[2];
} //根据用户所指定最大宽高来计算缩略图尺寸
function cal_size($maxwidth, $maxheight){
//缩略图最大宽度与最大高度比
$thcrown = $maxwidth/$maxheight;
//原图宽高比
$crown = $this->width/$this->height;
if($crown/$thcrown >= 1){
$this->thwidth = $maxwidth;
$this->thheight = $maxwidth/$crown;
} else {
$this->thheight = $maxheight;
$this->thwidth = $maxheight*$crown;
}
} function init(){
switch($this->type){
case 1: //GIF
$this->tempic = imagecreatefromgif($this->orpic);
break;
case 2: //JPG
$this->tempic = imagecreatefromjpeg($this->orpic);
break;
case 3: //PNG
$this->tempic = imagecreatefrompng($this->orpic);
break;
default:
echo '暂不支持该图片格式';
}
} function resize($maxwidth, $maxheight){
//初始化图像
$this->init();
//计算出缩略图尺寸
$this->cal_size($maxwidth, $maxheight); $this->thpic = imagecreatetruecolor($this->thwidth, $this->thheight);
imagecopyresampled($this->thpic, $this->tempic, 0, 0, 0 ,0, $this->thwidth, $this->thheight, $this->width, $this->height);
} function save($filename, $type){
switch($type){
case 'jpg':
case 'jpeg':
imagejpeg($this->thpic, $filename);
break;
case 'png':
imagepng($$this->thpic, $filename);
break;
case 'gif':
imagegif($$this->thpic, $filename);
break;
default:
echo '暂不支持您所选择的格式';
}
}
}
?>
PHP按最大宽高等比例缩放图片类的更多相关文章
- PHP按最大宽高等比例缩放图片类 http://www.oschina.net/code/snippet_876708_21113
PHP按最大宽高等比例缩放图片类 http://www.oschina.net/code/snippet_876708_21113 php 等比例缩小图片 http://www.111cn.net/p ...
- JavaScript等比例缩放图片
js等比例缩放图片,这个功能非常实用,当网页加载一个尺寸比较大的图片时,往往会把一个网页撑的变形,页面变得很难看,于是我们就想到了用JS去控制超出一定范围的图片,以稳定页面布局,本代码段就是完成了此功 ...
- JS实现等比例缩放图片
JS实现等比例缩放图片 2014-01-19 21:57 by 龙恩0707, 40 阅读, 0 评论, 收藏, 编辑 JS实现等比例缩放图片 有时候我们前端页面只有500×500像素的宽和高的布局, ...
- JS等比例缩放图片,限定最大宽度和最大高度
JS等比例缩放图片,限定最大宽度和最大高度 JavaScript //图片按比例缩放 var flag=false; function DrawImage(ImgD,iwidth,iheight){ ...
- 【Thumbnailator】java 使用Thumbnailator实现等比例缩放图片,旋转图片等【转载】
Thumbnailator概述: Thumbnailator是与Java界面流畅的缩略图生成库.它简化了通过提供一个API允许精细的缩略图生成调整生产从现有的图像文件的缩略图和图像对象的过程, ...
- C#等比例缩放图片
等比例缩放图片(C#) private Bitmap ZoomImage(Bitmap bitmap, int destHeight, int destWidth) { try { System.Dr ...
- DTCMS,添加文章时,内容中第一张图片作缩略图,并且等比例缩放图片
DTCMS,添加文章时,内容中第一张图片作缩略图 admin/article/article_edit.aspx.cs 导入: using System.Drawing;using System.Dr ...
- [Xcode 实际操作]六、媒体与动画-(1)使用图形上下文按一定比例缩放图片
目录:[Swift]Xcode实际操作 本文将演示如何通过图形上下文,来实现图片缩放的功能. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKi ...
- Android 等比例缩放图片
// 缩放图片 public static Bitmap zoomImg(String img, int newWidth ,int newHeight){ // 图片源 Bitmap bm = Bi ...
随机推荐
- burp
http://www.2cto.com/Article/201406/310929.html
- 第三天关于网页sip的学习。平台win7 64位 freeSwitch jssip架构web网络电话
上次我们出现了一种问题就是,当我们采用iis架构出jssipweb端的时候,我们无法注册freeswitch的电话.. 我们用别的客户端已经成功能够互通电话,可以录音,唯独使用jssip架构的web端 ...
- CSS中Position属性
也许你看到这个标题觉得很简单,确实这是一篇关于CSS中Position属性基础知识的文章,但是关于Position的一些细节也许你不了解. 1.简介 position有五个属性: static | r ...
- ubuntu14.04使用wubi安装出错
使用wubi安装后,进入系统是总是提示/分区加载异常,无法正常进入系统. 参考解决方案来自 http://jingyan.baidu.com/article/0aa22375bbffbe88cc0d6 ...
- [GDI+] 生成缩略图的类文件SmallImage (转载)
直接看代码吧,大家可以直接复制使用 /// <summary> /// 类说明:SmallImage类, /// 编码日期:2012-08-20 /// 编 码 人: 苏飞 /// 联系方 ...
- web页面的优化
众所周知,一个web页面通常会包括HTML(XHTML.XML).CSS.Javascript,而其中HTML(XHTML.XML)为结构化语言,用于构建页面结构和相关数据:CSS则负责页面的样式,即 ...
- [Lua]索引极致,form.lua
local form = {_tag = 'form'} function form.build(tag, super) local target = { _tag = tag, _super = s ...
- jquery data方法取值与js attr取值的区别
<a data-v="3"></a> jquery data方法的运行机制: 第一次查找dom,使用attributes获取到dom节点值,并将其值存到缓存 ...
- JavaScript Iframe富文本编辑器中的光标定位
最近在项目中碰到一个比较棘手的问题: 在iframe富文本编辑器中,有个工具栏,这个工具栏在iframe标签之外,工具栏上有一个按钮,点击该按钮向iframe正在编辑中的光标处插入一个图片,图片会插入 ...
- 子元素增加margin-top会增加给父元素的问题
假设我们有如下代码 <div id="father" style="height:400px;width:400px;background:#e4393c;&quo ...