等比压缩图片的方法

- (UIImage*)imageEqualRatioScaledToSize:(CGSize)targetSize

{

UIImage *sourceImage = self;

UIImage *newImage = nil;

CGSize imageSize = sourceImage.size;

CGFloat srcWidth = imageSize.width;

CGFloat srcHeight = imageSize.height;

CGFloat targetWidth = targetSize.width;

CGFloat targetHeight = targetSize.height;

if (srcWidth <= targetWidth && srcHeight <= targetHeight) {

// 如果源图已经小于缩放尺寸,则返回源图

newImage = sourceImage;

} else {

// 如果源图长或宽大于缩放尺寸,则等比缩放

double scale = (double)targetWidth/srcWidth < (double)targetHeight/srcHeight ? (double)targetWidth/srcWidth : (double)targetHeight/srcHeight;

CGFloat scaleWidth = scale * srcWidth;

CGFloat scaleHeight = scale * srcHeight;

CGSize newSize = CGSizeMake(scaleWidth, scaleHeight);

UIGraphicsBeginImageContext(newSize);

CGRect thumbnailRect = CGRectMake(0, 0, scaleWidth, scaleHeight);

[sourceImage drawInRect:thumbnailRect];

newImage = UIGraphicsGetImageFromCurrentImageContext();

if(newImage == nil)

DLog(@"could not scale image");

UIGraphicsEndImageContext();

}

return newImage;

}

时间: 2024-08-09 19:11:48

等比压缩图片的方法的相关文章

一种压缩图片的方法---Machine learning 之 K-Means

背景描述: RGB编码:对于一个直接用24bit表示每一个而像素的图像来说,每一个pixel使用8-bit无符号整数(0-255)来表示红or绿or蓝. 压缩目的: 将128x128大小的图片由原来的24bit表示-压缩成->16bit表示每一个像素的图像. 压缩方法: 对于每一个pixel, 使用 K-Means选择16bits来表示原来的24bits.当然,具体是通过计算每一个像素空间的16bits大小的聚类来表示原来的24bits. 实现步骤: 1.将原来的128x128大小的图片读入到一

另一种压缩图片的方法---Machine learning 之 PCA(Principle Component Analysis)

PCA最主要的用途是用来减少特征向量的数目,N个特征向量 减小到 K个特征向量.如果为了可视化,k可以使3 或者 2.这样可以加速算法的学习速度. PCA用来压缩图像同一有效. 具体方式以及原理在gitlab上,学习源来自 stanford的machine learning 公开课.

图片压缩的具体方法你知道多少

在我们日常的工作中,会接触到很多图片文件,而有些图片还需要经常的进行大小的改变,如果一个网站对于图片有大小的限制,那么我们就需要将我们手中的图片压缩变小,图片压缩的具体方法你知道多少呢?下面小编为大家介绍一个压缩图片的方法,希望可以帮到你!参考迅捷压缩软件1:电脑上安装图片压缩软件,压缩软件有三个压缩的功能.点击图片压缩就可以. 2:添加要进行压缩的图片,点击页面中的添加文件或者添加文件夹的按钮,选择目标文件. 3:点击选择一个合适的压缩选项,在添加文件下有输出格式和压缩选项的设置,根据实际情况

压缩图片大小的方法介绍

上传图片的时候我们会发现很多网站对图片大小的限制一般都是最大不超过20k,可能这是一个最佳的大小吧,既然规定了,就只能按照规定的大小进行上传,不过超过20k的图片那真的数不胜数了,遇到过大的图片只能进行大小的压缩,下面是压缩图片大小的方法介绍,不知道方法的话可以来学习一下!具体方法如下:图片压缩软件请添加链接描述可以压缩图片1:打开压缩软件,点击图片压缩就好. 2:添加要进行压缩的图片,点击添加文件或者添加文件夹的按钮就可以选择文件,一次可以同时压缩很多张图片.3:在添加文件下面有输出格式以及压

Android压缩图片和libjpeg库

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

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

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

Android 下压缩图片&mdash;微弱失真

Android下压缩图片的方法: 大概能将3M左右的图片压缩到100K左右, 几乎不失真. 代码如下: import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.OutputStream; import android.graphics.Bitmap; import android.graphics.BitmapFactory; public class BitmapUtil { /

电脑如何批量压缩图片

电脑压缩图片的方法很简单,只不过还得借助到压缩的工具,借助压缩工具的强大的压缩功能,在几秒钟就可以实现视频的压缩,方法还是简单的,电脑如何批量压缩图片?具体方法一起来学习!参照下面的方法压缩图片:图片压缩可以借助压缩软件1:打开电脑上的图片压缩软件,页面有三个压缩的功能,点击图片压缩就可以进入操作界面.2:添加要进行压缩的图片,点击添加文件或者添加文件夹的按钮就可以选择文件,一次可以添加多张图片同时进行压缩.3:在添加文件下面有输出格式以及压缩选项的设置,根据自己的需要进行选择.4:压缩好的图片

怎么转换png格式并且压缩图片

我们常用的格式除了jpg就是png格式了,虽然没有什么明显的区别和不同,但是可能因为各种情况的存在,我们会需要特定的图片格式,那今天就说说怎么转换png格式并且压缩图片吧!1.今天要说的是迅捷图片格式转换器,不管是图片格式的转换还是图片的压缩,借助第三方工具的力量会简单方便很多,今天要说的是一个电脑端的工具,操作比较简单:2.打开运行之后,我们可以看到的常用格式转换,heic格式转为jpg以及图片压缩三个功能,要将png转为jpg并且压缩格式,点击"图片压缩"即可:3.接着是添加图片,