Php Image Resize图片大小调整的函数代码

代码如下:

function my_image_resize($src_file, $dst_file, $dst_width=32, $dst_height=32) {
if($dst_width <1 || $dst_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();
}

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();
}
$src_w=imagesx($src_img);
$src_h=imagesy($src_img);
$ratio_w=1.0 * $dst_width/$src_w;
$ratio_h=1.0 * $dst_height/$src_h;
if ($src_w<=$dst_width && $src_h<=$dst_height) {
$x = ($dst_width-$src_w)/2;
$y = ($dst_height-$src_h)/2;
$new_img=imagecreatetruecolor($dst_width,$dst_height);
imagecopy($new_img,$src_img,$x,$y,0,0,$dst_width,$dst_height);
switch($type) {
case IMAGETYPE_JPEG :
imagejpeg($new_img,$dst_file,100);
break;
case IMAGETYPE_PNG :
imagepng($new_img,$dst_file);
break;
case IMAGETYPE_GIF :
imagegif($new_img,$dst_file);
break;
default:
break;
}
} else {
$dstwh = $dst_width/$dst_height;
$srcwh = $src_w/$src_h;
if ($ratio_w <= $ratio_h) {
$zoom_w = $dst_width;
$zoom_h = $zoom_w*($src_h/$src_w);
} else {
$zoom_h = $dst_height;
$zoom_w = $zoom_h*($src_w/$src_h);
}

$zoom_img=imagecreatetruecolor($zoom_w, $zoom_h);
imagecopyresampled($zoom_img,$src_img,0,0,0,0,$zoom_w,$zoom_h,$src_w,$src_h);
$new_img=imagecreatetruecolor($dst_width,$dst_height);
$x = ($dst_width-$zoom_w)/2;
$y = ($dst_height-$zoom_h)/2+1;
imagecopy($new_img,$zoom_img,$x,$y,0,0,$dst_width,$dst_height);
switch($type) {
case IMAGETYPE_JPEG :
imagejpeg($new_img,$dst_file,100);
break;
case IMAGETYPE_PNG :
imagepng($new_img,$dst_file);
break;
case IMAGETYPE_GIF :
imagegif($new_img,$dst_file);
break;
default:
break;
}
}
}

(0)

相关推荐

  • 详解C语言中free()函数与getpagesize()函数的使用

    C语言free()函数:释放动态分配的内存空间 头文件: #include <stdlib.h> free() 函数用来释放动态分配的内存空间,其原型为: void free (void* ptr); free() 可以释放由 malloc().calloc().realloc() 分配的内存空间,以便其他程序再次使用. [参数说明]ptr 为将要释放的内存空间的地址. free() 只能释放动态分配的内存空间,并不能释放任意的内存.下面的写法是错误的: int a[10]; // ... f

  • 解析sizeof, strlen, 指针以及数组作为函数参数的应用

    代码如下所示: 复制代码 代码如下: typedef struct st_test{ int id; char *pName; char class[10];}Student;void fn(Student *pStud) { pStud->id = 10; pStud->pName = "Tom Simith"; strcpy(pStud->class, "Class 1"); printf("sizeof(pStud) = %d /n

  • 不错的用resizeTo和moveTo两个函数实现窗口的“打乒乓球”效果

    看js事件时看到了resizeTo和moveTo两个函数及window.screen.height/window.screen.width等几个属性突然想到的这个效果,花了偶一点功夫终于写出来了,感觉挺好玩,呵呵... window.resizeTo(300,300); window.moveTo(0,0); var x=0,y=0; var h=window.screen.Height; var w=window.screen.Width; var mx=1,my=1; function mo

  • 简述Matlab中size()函数的用法

    size()函数用来获取矩阵的行数和列数. (1)s=size(A), 当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时矩阵的行数,第二个元素是矩阵的列数. (2)[r,c]=size(A), 当有两个输出参数时,size函数将矩阵的行数返回到第一个输出变量r,将矩阵的列数返回到第二个输出变量c. (3)size(A,n)如果在size函数的输入参数中再添加一项n,并用1或2为n赋值,则 size将返回矩阵的行数或列数.其中r=size(A,1)该语句返回的时矩阵A的行数, c=si

  • php检测数组长度函数sizeof与count用法

    本文实例讲述了php检测数组长度函数sizeof与count用法.分享给大家供大家参考.具体如下: 在php检测数组长度的函数有sizeof count 下面看个简单实例: 复制代码 代码如下: $colorlist = array("apple"=>"red", "grass"=>"green","sky"=>"blue","night"=>

  • C语言中sizeof()与strlen()函数的使用入门及对比

    sizeof()函数 1,是什么?     sizeof其实就是一个运算符,和那些+,-一样的东西,在程序编译的时候进行解析转换.虽然我们经常见到sizeof后面跟着个小括号,长得和函数差不多,但它和函数完全是两码事. 2,有什么用?     sizeof其实就是用于告诉我们编译器在为某一特定数据或者某种数据类型的数据在存储空间中开辟空间时,开辟的空间大小,以字节为单位. 3,怎么用?     sizeof(类型),或者sizeof(变量)都可以,得到的就是类型或者变量的存储空间.当对变量用的时

  • Php Image Resize图片大小调整的函数代码

    复制代码 代码如下: function my_image_resize($src_file, $dst_file, $dst_width=32, $dst_height=32) { if($dst_width <1 || $dst_height <1) { echo "params width or height error !"; exit(); } if(!file_exists($src_file)) { echo $src_file . " is not

  • java图片色阶调整和亮度调整代码示例

    对Java图片处理的内容涉猎不深,言辞简陋望请见谅. java实现色阶调整,即调整图片rgb分量,进而也可以调节图片亮度. 测试代码 public static void main(String[] args) { //文件与BufferedImage间的转换 BufferedImage bi=file2img("test.jpg"); //读取图片 BufferedImage bii=img_color_gradation(bi,100,0,0); img2file(bii,&quo

  • 基于jQuery的图片大小自动适应实现代码

    关于 这个和以前弄的图片远处放大有许多相同的地方,比如图片预加载.有限容器显示无限大图片. 大小计算:内外两个比例. 复制代码 代码如下: // 容器比例和图片比例 var dr = dw/dh, ir = iw/ih; if(dr>ir){ ih = dh; iw = ih * ir; }else{ iw = dw; ih = iw / ir; } 居中显示:CSS绝对定位,负边距. 复制代码 代码如下: $img.css({width:iw,height:ih,position:'absol

  • picChange 图片切换特效的函数代码

    可扩展的封装方式,方便实现不同特效,源码中给出了淡出效果(fade函数),和移出效果(move函数)的实现方式. 一句话函数调用,实现图片切换特效. picChange("图片ul列表的id" , 切换图片的方法引用 , 图片切换时间 , 图片移动方向); 用最简单的调用方式和最简洁的html代码来实现这个常用的图片切换效果. 使用方法示例: html代码: 复制代码 代码如下: <div id="win"> <ul id="picCha

  • Python调整matplotlib图片大小的3种方法汇总

    目录 问题 一.plt.figure(figsize=(n, n)) 二.plt.rcParams[‘figure.figsize’]=(n, n) 三.样式表+plt.style.use(‘xxx.mpstyle’) 补充:Python绘图问题:Matplotlib中指定图片大小和像素 总结 问题 如何设定matplotlib输出的图片大小? import matplotlib.pyplot as plt 一.plt.figure(figsize=(n, n)) 比如想让输出的图片大小为600

  • Java修改图片大小尺寸的简单实现

    目录 方式一:使用Image.getScaledInstance 测试 方式二:使用Thumbnailator 测试 方式一:使用Image.getScaledInstance 使用jdk的awt包下的Image.getScaledInstance实现图片的缩放.好处是无需引入第三方jar,缺点是会稍微有点模糊. 工具类ImageUtils: package utils; import javax.imageio.ImageIO; import java.awt.*; import java.a

  • JS获取图片实际宽高及根据图片大小进行自适应

    JS获取图片实际宽高,以及根据图片大小进行自适应 复制代码 代码如下: <img src="http://xxx.jpg" id="imgs" onload="adapt();"/> 复制代码 代码如下: function adapt(){ var tableWidth = $("#imgTable").width(); //表格宽度 var img = new Image(); img.src =$('#imgs

  • springboot实现图片大小压缩功能

    本文实例为大家分享了springboot实现图片大小压缩的具体代码,供大家参考,具体内容如下 application.properties配置文件 #后端接收图片大小 spring.servlet.multipart.max-file-size=50MB spring.servlet.multipart.max-request-size=50MB java工具类 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import jav

  • IOS 调整内存中的图片大小实例详解

    IOS 调整内存中的图片大小实例详解 在从网路download图片,或者从相册读取图片的时候,如果ImageView的本身就是固定的300*200,那么载入2000*2000的图片是很浪费内存的. 2000*2000的内存占用是2000*2000*4bit 以下两个函数可以用来创建一个新的按照固定大小的图片.简单来说,就是Core Graphics来创建一个bitmap,然后生成一个图片. - (UIImage*)imageWithImage:(UIImage*)image scaledToSi

  • js获取图片大小的函数代码

    1.获取图片大小的函数getImageSize 复制代码 代码如下: function getImageSize(imageEl) { var i = new Image(); //新建一个图片对象 i.src = imageEl.src; //将图片的src属性赋值给新建图片对象的src return new Array(i.width, i.height); //返回图片的长宽像素 //return [i.width, i.height]; } 2.示例 复制代码 代码如下: var img

随机推荐