压缩图片尺寸

function resizeImage($im,$maxwidth,$maxheight,$name,$filetype)
 {
  $pic_width = imagesx($im);
  $pic_height = imagesy($im);

  if(($maxwidth && $pic_width > $maxwidth) || ($maxheight && $pic_height > $maxheight))
  {
   if($maxwidth && $pic_width>$maxwidth)
   {
    $widthratio = $maxwidth/$pic_width;
    $resizewidth_tag = true;
   }

   if($maxheight && $pic_height>$maxheight)
   {
    $heightratio = $maxheight/$pic_height;
    $resizeheight_tag = true;
   }

   if($resizewidth_tag && $resizeheight_tag)
   {
    if($widthratio<$heightratio)
     $ratio = $widthratio;
    else
     $ratio = $heightratio;
   }

   if($resizewidth_tag && !$resizeheight_tag)
    $ratio = $widthratio;
   if($resizeheight_tag && !$resizewidth_tag)
    $ratio = $heightratio;

   $newwidth = $pic_width * $ratio;
   $newheight = $pic_height * $ratio;

   if(function_exists("imagecopyresampled"))
   {
    $newim = imagecreatetruecolor($newwidth,$newheight);//PHP系统函数
      imagecopyresampled($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);//PHP系统函数
   }
   else
   {
    $newim = imagecreate($newwidth,$newheight);
      imagecopyresized($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);
   }

   $name = $name.$filetype;
   imagejpeg($newim,$name);
   imagedestroy($newim);
  }
  else
  {
   $name = $name.$filetype;
   imagejpeg($im,$name);
  }
 }
//使用方法:
$im=imagecreatefromjpeg("./HTML2image/self_mb/594663ae6d2d3-a.jpg");//参数是图片的存方路径
$maxwidth="290";//设置图片的最大宽度
$maxheight="295";//设置图片的最大高度
$name="123";//图片的名称,随便取吧
$filetype=".jpg";//图片类型
resizeImage($im,$maxwidth,$maxheight,$name,$filetype);//调用上面的函数

  

时间: 2024-10-29 19:29:35

压缩图片尺寸的相关文章

iOS 图片大小压缩 图片尺寸处理

#pragma mark- 缩放图片 对大小压缩+(UIImage *)scaleImage:(UIImage *)image toScale:(float)scaleSize{    //设置图片尺寸    UIGraphicsBeginImageContext(CGSizeMake(image.size.width*scaleSize,image.size.height*scaleSize));    [image drawInRect:CGRectMake(0, 0, image.size

Android ---------压缩图片尺寸和大小

package com.funs.compressImg.utils;          import java.io.ByteArrayInputStream;     import java.io.ByteArrayOutputStream;          import android.graphics.Bitmap;     import android.graphics.BitmapFactory;          /**图片压缩帮助类,有三种不同压缩图片的方法:      * 1

Android图片压缩(质量压缩和尺寸压缩)

在网上调查了图片压缩的方法并实装后,大致上可以认为有两类压缩:质量压缩(不改变图片的尺寸)和尺寸压缩(相当于是像素上的压缩):质量压缩一般可用于上传大图前的处理,这样就可以节省一定的流量,毕竟现在的手机拍照都能达到3M左右了,尺寸压缩一般可用于生成缩略图.两种方法都实装在了我的项目中,结果却发现在质量压缩的模块中,本来1.9M的图片压缩后反而变成3M多了,很是奇怪,再做了进一步调查终于知道原因了.下面这个博客说的比较清晰: android图片压缩总结 总结来看,图片有三种存在形式:硬盘上时是fi

一种使用GDI+对图片尺寸和质量的压缩方法

今天同事向我询问图片压缩的算法,我想起大概两三年前做过的一个项目.其中包含了尺寸和质量两种压缩算法,并且支持JPEG.bmp.PNG等格式.今天把这段逻辑贴出来,供大家参考.(转载请指明来源于breaksoftware的CSDN博客) 尺寸压缩 bool CompressImagePixel( const WCHAR* pszOriFilePath, const WCHAR* pszDestFilePah, UINT ulNewHeigth, UINT ulNewWidth ) { // Ini

js 压缩图片(只缩小体积,不更改图片尺寸)

1.情景展示 如上图所示,点击上传图片按钮,调用手机摄像头拍照功能. <input onchange="javascript:imgFun.uploadPicture();" type="file" name="file" id="file" accept="image/*" capture="camera" style="display: none;">

Android压缩图片和libjpeg库

前言 Fjpeg使用 Fjpeg 注意 如何使用 如何压缩图片只改变在硬盘的存储大小 如何改变图片分辨率让其Bitmap对象可以加载到内存中 关于重载版本 开始学习之旅 补充知识的结论 修改图片分辨率 防止在Android加载Bitmap的时候oom内存溢出 解决方案1 解决方案2 希望压缩图片方便网络传输 第一种方案利用Bitmapcompress方法压缩 第二种利用libjpeg压缩 在Android50测试两个 图片压缩 在Android60测试两个 图片压缩 解释Android50和60

android压缩图片,解决oom错误

你的ImageView只有128*96像素的大小,只是为了显示一张缩略图,这时候把一张1024*768像素的图片完全加载到内存中显然是不值得的. 所以我们需要一个方法来解决这个问题. [java] view plaincopy public static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) { // 源图片的高度和宽度 final int height = op

像素、分辨率、图片尺寸

像素,一个点 分辨率,每英寸长度上,像素的数量,简写dpi,通常是300dpi 图片尺寸,图片的宽高,可用图片的像素数和分辨率计算出来,图片宽(cm厘米)=图片的宽像素数/分辨率,高=图片的高像素数/分辨率,打印时可设置dpi,这时图片尺寸会变化,具体尺寸可从上述公式计算. 如,像素数不变,分辨率增加,打印尺寸减小:像素数减小,分辨率不变,打印尺寸减小 另图片大小,即图片占硬盘容量, 跟像素数多,压缩比低,压缩质量高,大小越大. 如像素数不变,减小压缩比,文件大小增加

Android设备上获取照片、裁剪图片、压缩图片

前言 在做上一个项目时深深受到了图片上传的苦恼.图片上传主要分为两个部分,首先要获取图片,而获取图片可以分为从文件获取或者拍照获取.第二个部分才是上传图片,两个部分都是走了不少弯路.由于Android系统的碎片化比较严重,我们可能出现在第一台机子上能获取图片,但是换一个机子就不能获取图片的问题,并且在Android6.0,7.0之后也要做一定的适配,这样对于开发者来说,无疑很蛋疼.由于也是初学者,很多东西没有考虑到,适配起来也是有点难度的. 这几天也是从github上找到了一个库(地址在这Tak