有时候项目里做头像上传时候,必须要把用户从相册或是相机里的选择的图片剪切为指定大小的图片,遇到太大,太小或是太长的图片就需coregraphic来对图片进行剪切

废话不多说,直接上代码

[objc]  view plain copy
  1. /**
  2. *  剪切图片为正方形
  3. *
  4. *  @param image   原始图片比如size大小为(400x200)pixels
  5. *  @param newSize 正方形的size比如400pixels
  6. *
  7. *  @return 返回正方形图片(400x400)pixels
  8. */
  9. - (UIImage *)squareImageFromImage:(UIImage *)image scaledToSize:(CGFloat)newSize {
  10. CGAffineTransform scaleTransform;
  11. CGPoint origin;
  12. if (image.size.width > image.size.height) {
  13. //image原始高度为200,缩放image的高度为400pixels,所以缩放比率为2
  14. CGFloat scaleRatio = newSize / image.size.height;
  15. scaleTransform = CGAffineTransformMakeScale(scaleRatio, scaleRatio);
  16. //设置绘制原始图片的画笔坐标为CGPoint(-100, 0)pixels
  17. origin = CGPointMake(-(image.size.width - image.size.height) / 2.0f, 0);
  18. } else {
  19. CGFloat scaleRatio = newSize / image.size.width;
  20. scaleTransform = CGAffineTransformMakeScale(scaleRatio, scaleRatio);
  21. origin = CGPointMake(0, -(image.size.height - image.size.width) / 2.0f);
  22. }
  23. CGSize size = CGSizeMake(newSize, newSize);
  24. //创建画板为(400x400)pixels
  25. if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
  26. UIGraphicsBeginImageContextWithOptions(size, YES, 0);
  27. } else {
  28. UIGraphicsBeginImageContext(size);
  29. }
  30. CGContextRef context = UIGraphicsGetCurrentContext();
  31. //将image原始图片(400x200)pixels缩放为(800x400)pixels
  32. CGContextConcatCTM(context, scaleTransform);
  33. //origin也会从原始(-100, 0)缩放到(-200, 0)
  34. [image drawAtPoint:origin];
  35. //获取缩放后剪切的image图片
  36. image = UIGraphicsGetImageFromCurrentImageContext();
  37. UIGraphicsEndImageContext();
  38. return image;
  39. }

UIImage非正方形图片如何剪切为正方形相关推荐

  1. 正方形图片显示在长方形中,只显示中间部分 css

    先说下需求,一个固定宽高度的矩形框,现在有张正方形图片,想让正方形显示在矩形中间,不变形 本来准备正方形正常显示,上下放两个div盖住,只显示矩形框的内容,但是没实现,同事让我用background- ...

  2. iOS开发 开发笔记,图片裁剪成正方形图片;

    /// 裁剪图片,以宽度为标准,裁剪成正方形图片,size = (width,width) - (UIImage *)cutImageWithImage:(UIImage *)image {if (! ...

  3. 一张正方形图片,伴随我一年半,敢问情绪的使用方法

    [问题的由来] 图片适配正方形显示方法一 <style> .box{width:400px;height:400px;border:solid 5px red;margin:0 auto; ...

  4. python中批量将矩形图片转化为正方形图片,并且缩放

    前言 为了在pytorch中进行深度学习的时候尽可能的采用正方形图片作为输入,需要将自己做的样本图片最好转化为正方形图片.具体的见代码,代码中有每一行的注释. python代码 from PIL im ...

  5. css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局

    正方形图片使用CSS如何实现成圆形布局,不使用PS软件处理,直接使用DIV CSS布局如何实现图片圆形化. 正方形图片实现圆形布局 一.图片实现圆形条件   -   TOP 原本不是圆形图片,通过CS ...

  6. Unity Shader 之 正方形图片四角圆角的简单实现(不用遮罩Mask)

    Unity Shader 之 正方形图片四角圆角的简单实现(不用遮罩Mask) 目录 Unity Shader 之 正方形图片四角圆角的简单实现(不用遮罩Mask)

  7. android 绘制正方形图片,是Android的自定义View-绘制流程-正方形图片控件(SquareImageView)...

    前言 了解View的绘制三大流程后,接下来就要对这些知识做一个实践,首先来实现一个在Android中最为常见的控件--方形图片控件,即让图片在一个方形区域内显示,最常见的场景是在九宫格图片当中. 一般 ...

  8. 【OpenGL ES】正方形图片贴到圆形上

    1 前言 纹理贴图 中介绍了将矩形图片贴到矩形模型上,本文将介绍:在不裁剪图片的情况下,将正方形的图片贴到圆形模型上. 思考:实数区间 [0, 1] 与 [0, 2] 的元素可以建立一一映射关系么?答 ...

  9. Java操作长方形图片补全不失真成正方形图片

    Java操作长方形图片补全不失真成正方形图片 BufferedImage image = ImageIO.read(new FileInputStream(new File("C:\\Use ...

最新文章

  1. Atitit.auto complete 自动完成控件的实现总结
  2. 《演讲之禅》助你成长为一名合格程序员
  3. java8 b计算时间差_java8-计算时间差的方法
  4. BZOJ2956 (模积和)
  5. 【Tika基础教程之一】Tika基础教程
  6. 使用 SAP CDS view SQL Function 将视图某些字段进行合并
  7. RxJava 基础扫盲
  8. unity3d 预制体
  9. 前端学习(597):查看和调试cookie
  10. JimStoneAjax如何跟DWR竞争?
  11. UniqueIdentifier 数据类型
  12. 第四章.深入类的方法
  13. 纯福利文章、送5本Java核心技术(不定期送福利)
  14. vos3000 2009 3000 4.0-8.0客户端下载
  15. 微信网页授获取code
  16. 微信wifi认证的实现方式和功能——时讯wifi认证
  17. 数字化转型:为何数字化?如何数字化转型?
  18. 怎样防止租用服务器数据丢失问题
  19. 《程序员的自我修养》阅读笔记
  20. 获取第三方公众号/订阅号原始二维码

热门文章

  1. js 循环数组时,splice 删除数据注意的问题
  2. 自己学习javaSE过程整理的常用知识
  3. 三相半波可控整流电路Simulink仿真
  4. linux的lsof命令,Linux中lsof命令起什么作用呢?
  5. Windows如何成功下载scipy(包含numpy+mkl的安装下载和百度网盘资源)
  6. Linux文件目录操作命令-pwd命令
  7. nginx修改监听端口号8080_解决Nginx启动失败
  8. 还记得妈妈年轻时的样子吗?
  9. HiFi发烧是什么意思?
  10. 为什么不能睁一只眼闭一只眼_凡事睁一只眼,闭一只眼是人生的最高境界