IOS 按比例裁剪图片

拍照或者从图片库中获取图片 操作过程中容易闪退,也总会有内存压力警告,第一步,首先可以考虑裁剪图片,实际上可能不需要那么大的。其次可以考虑把耗时的比如存储过程放进线程。

这里封装裁剪图片的类方法。

//NavView.m

#define IMAGE_MAX_SIZE_WIDTH 640

#define IMAGE_MAX_SIZE_GEIGHT 1136

+(UIImage *)fitSmallImage:(UIImage *)image
{
    if (nil == image)
    {
        return nil;
    }
    if (image.size.width<IMAGE_MAX_SIZE_WIDTH && image.size.height<IMAGE_MAX_SIZE_GEIGHT)
    {
        return image;
    }
    CGSize size = [self fitsize:image.size];
    UIGraphicsBeginImageContext(size);
    CGRect rect = CGRectMake(0, 0, size.width, size.height);
    [image drawInRect:rect];
    UIImage *newing = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newing;
}

+ (CGSize)fitsize:(CGSize)thisSize
{
    if(thisSize.width == 0 && thisSize.height ==0)
        return CGSizeMake(0, 0);
    CGFloat wscale = thisSize.width/IMAGE_MAX_SIZE_WIDTH;
    CGFloat hscale = thisSize.height/IMAGE_MAX_SIZE_GEIGHT;
    CGFloat scale = (wscale>hscale)?wscale:hscale;
    CGSize newSize = CGSizeMake(thisSize.width/scale, thisSize.height/scale);
    return newSize;
}使用eg:把要操作的图片设为image(uiimage)image=[NavView fitSmallImage:image];

IOS 按比例裁剪图片,布布扣,bubuko.com

时间: 2024-12-12 08:48:04

IOS 按比例裁剪图片的相关文章

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

Android拍照、相册 获取图片后,裁剪图片

最近在做的B2B的项目,图片大部分来源于用户自己上传: 由于android尺寸的不一,用户相机,相册的图片也是奇形怪状: 所以在上传之前对图片做一次裁剪是很有必要的! 下面是按比例裁剪图片的demo 资源文件activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/

css图片等比例裁剪

需求: 图片的宽高是不固定的,但是外部盒子是有固定大小的. 图片的宽度和盒子保持一致,并且是水平居中显示,即两边是裁剪的 图片的高度是由盒子宽度控制的,等比例缩放,多余的被裁减掉 原图: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head>

IOS开发——UI进阶篇(十八)核心动画小例子,转盘(裁剪图片、自定义按钮、旋转)图片折叠、音量震动条、倒影、粒子效果

一.转盘(裁剪图片.自定义按钮.旋转) 1.裁剪图片 将一张大图片裁剪为多张 // CGImageCreateWithImageInRect:用来裁剪图片 // image:需要裁剪的图片 // rect:裁剪图片的尺寸,传递是像素 CGImageRef norImage = CGImageCreateWithImageInRect(norBigImage.CGImage, clipRect); 2.每次点击按钮立马变为选中状态,并且取消上次的按钮的选中状态 当然还要重写- (void)setH

iOS高效裁剪图片圆角算法

项目有个需求:裁剪图片,针对头像,下面是要求: 大家可以看到这张图片的圆角已经去除,下面说说我在项目利用了两种方式实现此裁剪以及查看技术文档发现更高效裁剪方式,下面一一讲解:看下来大约需要15-20分钟. 在公共类中Util类中创建类方法 1.CGContext裁剪 //CGContext裁剪 + (UIImage *)CGContextClip:(UIImage *)img cornerRadius:(CGFloat)c; 实现该方法: // CGContext 裁剪 + (UIImage *

UIImage 裁剪图片和等比列缩放图片

本文转载至 http://blog.csdn.net/cuiweijie3/article/details/9514293 转自 http://www.tedz.me/ios/uiimage-crop-resize-image @interface UIImage(UIImageScale) -(UIImage*)getSubImage:(CGRect)rect; -(UIImage*)scaleToSize:(CGSize)size; @end @implementation UIImage(

Unity3d本地上传并且裁剪图片-----Android平台

注:引擎版本unity4.x 最近项目需求,需要做用户头像,要求: 1.  可以从本地上传 2.  本地裁剪 3.  压缩控制大小 4.  在三个平台实现PC/Android/IOS 弄了好几天总是搞完了总结一下 从本地上传会用到Android系统功能,打开相册和用摄像机拍照,因此unity和Android的交互是必须要会的. Unity-android可参考到宣雨松的博客http://www.xuanyusong.com/archives/676package com.cheerflame.s

自定义裁剪图片

判断图片大小,根据裁剪目标对图片进行缩放,然后裁剪图片(在图像不变形情况下) /// <summary> /// 指定长宽裁剪 /// 按模版比例最大范围的裁剪图片并缩放至模版尺寸 /// </summary> /// <param name="fromFile">原图Stream对象</param> /// <param name="fileSaveUrl">保存路径</param> ///

Quartz2D练习 -- 裁剪图片分类

Main.storyboard <?xml version="1.0" encoding="UTF-8" standalone="no"?> <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="5053" systemVers