我知道这很老了,但是感谢那篇文章-它使我从尝试使用比例尺重定向到绘制图像。万一对任何人都有利,我做了一个扩展类,我将在这里进行介绍。它允许您调整图像的大小,如下所示:

UIImage imgNew = img.Fit(40.0f, 40.0f);

我不需要合适的选项,但可以轻松扩展它以支持Fill。

using CoreGraphics;

using System;

using UIKit;

namespace SomeApp.iOS.Extensions

{

public static class UIImageExtensions

{

public static CGSize Fit(this CGSize sizeImage,

CGSize sizeTarget)

{

CGSize ret;

float fw;

float fh;

float f;

fw = (float) (sizeTarget.Width / sizeImage.Width);

fh = (float) (sizeTarget.Height / sizeImage.Height);

f = Math.Min(fw, fh);

ret = new CGSize

{

Width = sizeImage.Width * f,

Height = sizeImage.Height * f

};

return ret;

}

public static UIImage Fit(this UIImage image,

float width,

float height,

bool opaque = false,

float scale = 1.0f)

{

UIImage ret;

ret = image.Fit(new CGSize(width, height),

opaque,

scale);

return ret;

}

public static UIImage Fit(this UIImage image,

CGSize sizeTarget,

bool opaque = false,

float scale = 1.0f)

{

CGSize sizeNewImage;

CGSize size;

UIImage ret;

size = image.Size;

sizeNewImage = size.Fit(sizeTarget);

UIGraphics.BeginImageContextWithOptions(sizeNewImage,

opaque,

1.0f);

using (CGContext context = UIGraphics.GetCurrentContext())

{

context.ScaleCTM(1, -1);

context.TranslateCTM(0, -sizeNewImage.Height);

context.DrawImage(new CGRect(CGPoint.Empty, sizeNewImage),

image.CGImage);

ret = UIGraphics.GetImageFromCurrentImageContext();

}

UIGraphics.EndImageContext();

return ret;

}

}

}

按照上面的文章,它为图像启动了一个新的上下文,然后为该图像找出纵横比,然后绘制到图像中。如果您还没有完成任何Swift xcode开发时间,那么UIGraphics对于我使用的大多数系统都会有些落后,但还不错。一个问题是,默认情况下,位图从下至上绘制。为了解决这个问题,

context.ScaleCTM(1, -1);

context.TranslateCTM(0, -sizeNewImage.Height);

将图形的方向更改为更常见的左上角到右下角...,但是随后还需要移动原点,因此也需要移动TranslateCTM。

希望它可以节省一些时间。

干杯

ios 代码设置控件宽高比_用宽高比调整UIImage的大小?相关推荐

  1. ios 代码设置控件宽高比_#iOS 开发实用技巧# Masonry 控件宽高(不同控件之间宽高比)比设置方法...

    Masonry 项目中我们实用 Masonry 自动布局,可能需要设置控件的宽高比,需要记录一下这个方法. 一句代码搞定: 注意这里需要设置的是控件的宽高比. make.width.equalTo(s ...

  2. ios 代码设置控件宽高比_IOS开发入门之iOS一套代码适配所有iPhone手机布局实现方案...

    本文将带你了解IOS开发入门iOS一套代码适配所有iPhone手机布局实现方案,希望本文对大家学IOS有所帮助. iOS一套代码适配所有iPhone手机布局实现方案 本文主要是讲述一套代码适配所有iP ...

  3. ios 代码设置控件宽高比_iOS基于代码按比例约束方法进行屏幕适配

    还记得刚刚开始学习iOS的开发的时候,简简单单的小控件练习,我总是习惯性的写死Frame,后来知道了屏幕适配,添加约束这样才能使UI更好的展示在屏幕上,Objective-C中的Masonry,Swi ...

  4. ios 代码设置控件宽高比_iOS--利用比例纯代码适配屏幕大小

    首先说下让自己的程序支持iPhone6和6+,第一种使用官方提供的launch screen.xib,这个直接看官方文档即可,这里不再多述:第二种方法是和之前iPhone5的类似,比较简单,为iPho ...

  5. ios 代码设置控件宽高比_ios-自动布局以保持视图大小比例

    我正在努力实现以下目标: 我的xib中有2个视图,需要使边缘(两侧和顶部)保持20像素 需要调整大小的2个视图的大小不同 它们必须相隔20像素 它们的宽度需要相对于父视图的宽度保持不变 我阅读了有关执 ...

  6. android设置屏幕高度和宽度设置,Android手机的屏幕宽高度和代码设置控件的宽高度...

    1.Android手机的屏幕宽高度 WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE); int w ...

  7. IOS代码添加控件,控件移动,放大,缩小,旋转

    控件移动,放大,缩小,旋转 1,代码添加控件 例如: [objc] view plaincopy /* 1.创建一个控件 2.设置控件的位置,大小 3.设置控件所需要的各个属性 4.添加入父控件 5. ...

  8. IOS 代码控制控件始终居中

    2019独角兽企业重金招聘Python工程师标准>>> 实现代码:(以UILabel为例) UILabel *label = [[UILabel alloc] initWithFra ...

  9. IOS autosizing(设置控件的固定位置大小)

    - (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typicall ...

最新文章

  1. 将新主要功能部署到生产时要考虑的5件事情
  2. 性能测试篇 :Jmeter监控服务器性能
  3. 三种常见字符编码简介:ASCII、Unicode和UTF-8
  4. memcached客户端_分布式算法真是吊炸天 – memcached - 第287篇
  5. Android的Dialog类设计的太糟糕了!
  6. yum无法正常使用的解决办法
  7. 将数据追加到html 表格中,【HTML】使用Jquery实现将输入数据添加至表格中
  8. php无法查询excel数据,laravel phpexcel无法读取excel中中文表头列数据
  9. linux界面电池信息,Linux下查看电池损耗等信息
  10. 动物称重管理系统HDX|FDX-B格式低频动物电子耳标面板式远距离读写器|识读器HX-L81100出线方式与标签识读距离
  11. 小程序商城框架源码 小程序源码带前端+后台+数据库
  12. Houdini函数表达式
  13. 涂鸦蓝牙SDK开发系列教程——5.应用开发
  14. Unity3D网络游戏实战——通用服务器框架
  15. 2、AP上线的那些事儿(1)capwap建立过程、设备初始化以及二层上线
  16. 跨考=浪费大学四年?跨专业考研应该怎么做?
  17. ANTVR:虚拟现实的拓荒者
  18. 奇兵给seo新手的学习建议
  19. C语言|职工工资管理系统
  20. 功耗大好还是小好_家电是功率大好还是小好....

热门文章

  1. MQTT 心跳和keepalive配置
  2. 【Visual Studio 扩展工具】如何在ComponentOneFlexGrid树中显示RadioButton
  3. SpringBoot上传文件大小限制
  4. Zookeeper 安装和配置
  5. 6-12 二叉搜索树的操作集
  6. linux 安装输入法
  7. 转 --有些事情需要注意
  8. 在C#中使用代理的方式触发事件
  9. Cache总义Cache用法之页面声明
  10. 关于模态对话框和非模态对话框的创建、显示,以及和父对话框的传值