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 ...
随机推荐
- .Net之美读书系列(二):委托进阶
这次看书的知识点: 事件访问器 如果一个委托中注册了多个事件且需要获取其返回值的方法 委托的异常处理 委托处理超时的方法 异步委托 事件访问器 职能有: 1.对委托属性进行封装,不再直接该委托变量直接 ...
- 通过调整表union all的顺序优化SQL
操作系统:Windows XP 数据库版本:SQL Server 2005 今天遇到一个SQL,过滤条件是自动生成的,因此,没法通过调整SQL的谓词达到优化的目的,只能去找SQL中的“大表”.有一个视 ...
- 学会怎样使用Jsp 内置标签、jstl标签库及自定义标签
学习jsp不得不学习jsp标签,一般来说,对于一个jsp开发者,可以理解为jsp页面中出现的java代码越少,对jsp的掌握就越好,而替换掉java代码的重要方式就是使用jsp标签. jsp标签的分 ...
- HUST 4681 String (DP LCS变形)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4681 题目大意:给定三个字符串A,B,C 求最长的串D,要求(1)D是A的字序列 (2)D是B的子序列 ...
- 回退符\b
回退符\b #include <stdio.h> int main(){ printf("hello\b"); getchar(); getchar(); ; } 实验 ...
- Android 6.0 Permission权限与安全机制
Marshmallow版本权限修改 android的权限系统一直是首要的安全概念,因为这些权限只在安装的时候被询问一次.一旦安装了,app可以在用户毫不知晓的情况下访问权限内的所有东西,而且一般用户安 ...
- Install-Package 那点事儿
为了练习使用SignaR,新建了一个.net 4.0的MVC4项目, 第一步,不用说就是先将SignaR安装到项目中,考虑到SignaR 目前已经更新到2.0 并且无法在 4.0框架下面使用,此时通过 ...
- 关于linux开机自启
/etc/rc.d/rc.local 是在系统最后启动,必须和其他rc.0 - rcN文件具有755权限
- 学渣也要搞 laravel(4)—— 服务 加解密篇
使用 Crypt::encrypt() 对数据进行加密,[注意要引入 use Illuminate\Support\Facades\Crypt;; ] 简单的做个测试: 先分配一个路由: Route: ...
- MySql模糊查询like通配符使用详细介绍
MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi.grep和sed的扩展正则表达式模式匹配的格式. 一.SQL模式 SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹 ...