根据尺寸压缩图片

#pragma mark - 获取按尺寸压缩过的新图片
+ (UIImage *)getNewImageWithImage:(UIImage *)image size:(CGFloat)tempSize
{
    //获取图片的宽高
    CGSize imageSize = image.size;
    CGFloat imgH = imageSize.height;
    CGFloat imgW = imageSize.width;

    if (imgH == imgW) {//如果是正方形
        imgW = tempSize;
        imgH = tempSize;

    }else if(imgW > tempSize ){//如果宽度大于200/600

        //获取图像宽度的倍数
        CGFloat multiple = imgW / tempSize;
        imgW = tempSize;
        imgH = imgH / multiple;

    }else if(imgH > tempSize ){//如果高度大于200/600

        //获取图像高度的倍数
        CGFloat multiple = imgH / tempSize;
        imgH = tempSize;
        imgW = imgW / multiple;
    }

    //重新赋值图片的宽高
    imageSize.width = imgW;
    imageSize.height = imgH;

    //压缩新图片
    UIGraphicsBeginImageContext(imageSize);
    [image drawInRect:CGRectMake(kZero, kZero, imageSize.width, imageSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}
时间: 2024-08-13 09:45:24

根据尺寸压缩图片的相关文章

PHP 图片操作(按照指定尺寸压缩,按照比例裁剪)

提供二个常用的图片处理方法: 1.按照指定的尺寸压缩图片 /** * 按照指定的尺寸压缩图片 * @param $source_path 原图路径 * @param $target_path 保存路径 * @param $imgWidth 目标宽度 * @param $imgHeight 目标高度 * @return bool|string */ function resize_image($source_path,$target_path,$imgWidth,$imgHeight) { $so

一个图片生成多个尺寸的图片

/** * 图片显示处理 * * */ public function handleProductsImg(){ //视频列表 $model_video = new VideoModel(); $where = array(); $where[] = array('video_name','neq',''); $where[] = array('video_id','gt',79); $data1 = $model_video->getVideoAll($where); $pro_ids = a

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

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

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

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

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

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

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

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

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

压缩图片操作和生成圆形图片

1.对本地相册库或相机拍摄下来的图片进行压缩处理,传进来的参数分别有:要压缩的图片和压缩后的大小. //压缩图片 + (UIImage*)imageWithImageSimple:(UIImage*)image scaledToSize:(CGSize)newSize { // Create a graphics image context UIGraphicsBeginImageContext(newSize); // Tell the old image to draw in this ne