ios 代码设置控件宽高比_用宽高比调整UIImage的大小?
我知道这很老了,但是感谢那篇文章-它使我从尝试使用比例尺重定向到绘制图像。万一对任何人都有利,我做了一个扩展类,我将在这里进行介绍。它允许您调整图像的大小,如下所示:
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。
希望它可以节省一些时间。
干杯
相关文章:
jquery入门 修改网页背景颜色
我们在浏览一些网站,尤其是一些小说网站的时候,都会有修改页面背景颜色的地方,这个功能使用jquery很容易实现。 效果图: show you code: <!doctype html> <html> <head> <meta charset"utf-8">…

对于装饰器Decorator的理解
装饰器是用来描述函数,记录日志,提供信息的函数,是一个为了更好的服务主函数的副函数: 详情还需查看:廖雪峰装饰器 关键在于:【import functools是导入functools模块。模块的概念稍候讲解。现在,…

UE的注册流程
协议36.508 4.5节 有个表格写的很清楚: Table 4.5.2.3-1: UE registration procedure (state 1 to state 2)

五大主流数据库模型
转载自 五大主流数据库模型 导读:无论是关系型数据库还是非关系型数据库,都是某种数据模型的实现。本文将为大家简要介绍5种常见的数据模型,让我们来追本溯源,窥探现在流行的数据库解决方案背后的神秘世界。 什么是数据模型&#…

laytpl语法_layui语法基础
一.按钮区分 1.按照主题划分 原始:class "layui-btn layui-btn-primary" 默认:class "layui-btn" 百搭:class "layui-btn layui-btn-normal" 暖色:class "layui-btn layui-btn-…

黑马程序员-张老师基础加强3-内省
内省:javaBean JavaBean是一种特殊的Java类,主要用于传递数据信息,这种java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。 JavaBean的属性是根据其中的setter和getter方法来确定的,而不是根据其中的成…

shell 中长命令的换行处理
考察下面的脚本: emcc -o ./dist/test.html --shell-file ./tmp.html --source-map-base dist -O3 -g4 --source-map-base dist -s MODULARIZE1 -s "EXPORT_NAME\"Test\"" -s USE_SDL2 -s LEGACY_GL_EMULATION1 --pre-js ./pre.js --post-js ./…

golang bufio.newscanner如何超时跳出_Golang微服务的熔断与限流
(给Go开发大全加星标)来源:Che Danhttps://medium.com/dche423/micro-in-action-7-cn-ce75d5847ef4【导读】熔断和限流机制对于大流量高并发服务来说不可或缺,尤其在微服务架构下更需要在服务中配置熔断限流机制。对可用性要求高的系统,熔断和…

JasperReport报表设计4
在JRXML模板(或JRXML文件)中的JasperReport 都是标准的 XML文件,以.JRXML扩展。所有JRXML文件包含标签<jasperReport>,作为根元素。这反过来又包含许多子元素(所有这些都是可选的)。JasperReport框架…

C++基本要点复习--------coursera程序设计实习(PKU)的lecture notes
因为一些特性复杂,很多时候也用不到一些特性,所以忘记了,算是随笔,也当作一个临时查找的手册。没有什么顺序,很杂。 1.构造函数通过函数重载的机制可以有多个(不同的构造函数,参数个数ÿ…

Kibana + Elasticsearch + ik分词的集群搭建
Elasticsearc: Elasticsearch 是一个分布式的搜索和分析引擎,可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 基于 Lucene 开发,是 Lucene 的封装,提供了 REST API 的操作接口,开…
VOLTE parameter in Attach Request/Accept message
VOLTE字面上是:Voice over LTE. 但是人们所提到的VOLTE,实际上是指“Voice over LTE utilizing IMS” Attach Request/Accept消息中包含了VOLTE相关的参数。 1. Attach request 参考: 3GPP 24.301 – 8.2.4 关注红框内的3个参数: SrvccToGeranOrUtranCapability 参…

[YY题]HDOJ5288 OO’s Sequence
题意:求这个式子 $\sum \limits_{i1}^{n} \sum \limits_{j1}^{m} f(i, j) mod (10^9 7)$ 的值 就是对每个区间[i, j]枚举区间中的每个数$a_i$到$a_j$, 判断这个$a$是否对[i, j]这个区间内所有数取模都不等于0, 若是,则这个区间满足条件 问有…

python 读取excel文件 效率 时间 格式_python读取Excel文件中的时间数据
在使用python读取Excel文件中的时间格式,碰到的时间格式转换问题:读取这样的表格:输出这样的数据结果:然而这样的结果却不是我们想要的,我们需要的是这样的结果:1、安装python官方库---datetime引入datetime库import d…

操作无法完成后台打印程序无法运行
同事反映原共享的打印机无法打印。我删除重新添加时系统提示 操作无法完成后台打印程序无法运行。于是我打开服务找到print spooler服务进程设置自动开启后重新添加问题依旧。在网上查到的方法是病毒清了后你的 SPOOLSV.EXE文件就没有了,且在服务里你的后台打印print spooler也…

NodeJS 模块
cheerio 可以用jQuery操作DOM(服务器端) 转载于:https://www.cnblogs.com/tujw/p/11054252.html

Linux下netstat命令详解&&netstat -anp | grep 讲解
Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

Linux命令——根据端口号查进程
查出的数据第二列(16615)是elasticsearch的进程号。通常我们会根据端口号查进程号,或者通过进程号查端口号。linux环境下,我们常常会查询进程号pid。最常用ps -ef |grep xx。根据端口port查进程。根据端口port查进程。根据进程pid查端口。根据进程pid查端口。
RRC Connection Reconfiguration
RRC Connection Reconfiguration Dir: E-UTRAN -> UE SRB: SRB1 这个消息用来修改RRC连接,主要目的: 1. To establish/modify/release Radio Bearers; 无线承载 2. To perform Handover; 切换 3. To setup/modify/release Measurements; 测量…

H - Parity game-poj1733(需要离散化)
题意:给一个序列这个序列都是由0和1组成,现在随意拿出来一个序列,然后说出他的和是奇数还是偶数,因为有可能存在假话,让你判断前多少条没有假话,也就是查找第一个假话的位置-1//这道题很像D题,都…

redis 缓存过期默认时间_缓存的必知必会:一文搞懂Redis持久化和过期机制
本文主要介绍了 Redis 持久化的两种机制:RDB 和 AOF,以及键过期的策略:惰性删除和定期删除,还有 RDB、AOF 和复制功能对过期键的处理。RDBRDB 是 Redis 持久化的第一种方式。有两个 Redis 命令可以用于生成 RDB 文件,一…

ASP.NET MVC 5 - 视图
2019独角兽企业重金招聘Python工程师标准>>> 在本节中,你要去修改HelloWorldController类,使用视图模板文件,在干净利索地封装的过程中:客户端浏览器生成HTML。 您将创建一个视图模板文件,其中使用了ASP.NE…

java内存泄漏问题排查
背景:程序部署在客户机器上,不定期异常崩溃,且无日错误异常日志记录。 day1:初步排查是内存问题导致的,考虑使用分析工具记录分析。另外代码review仔细排查,怀疑有可能跟大量网络socket没有释放有关。 程序…

的正确使用_弹力袜的正确使用
何为弹力袜?弹力袜是预防下肢静脉疾病的重要措施,其设计上远心端压力大,近心端压力小。医用循序减压弹力袜在脚踝部建立最高支撑压力,顺着腿部向上逐渐递减,在小腿肚减到最大压力值的70%-90%,在大腿处减到最大压力值的…

yii2的安装
yii2也是依赖于composer, 就像laravel, 所以先安装composer, 如果安装不上composer可以看laravel安装的文章. 安装好composer之后安装一个插件 composer global require "fxp/composer-asset-plugin:1.0.0"或composer global require "fxp/composer-asset-plugi…

eclipse new server Cannot create a server using the selected type 网上有两种办法,其实原理一样...
eclipse new server Cannot create a server using the selected type 网上有两种办法,其实原理一样第一种说法:还真的找到解决的方法了,如下:1.退出eclipse2.到[工程目录下]/.metadata/.plugins/org.eclipse.core.runtime3.把org.eclipse.wst.server.co…

代码示例_网络编程_select
select_多路复用 1.头文件 1 #pragma once2 3 #include <stdio.h>4 #include <stdlib.h>5 #include <sys/types.h>6 #include <sys/select.h>7 #include <sys/time.h>8 #include <sys/socket.h>9 #include <strings.h> 10 #include …

LTE中基本通信过程的理解——上行调度
上行调度1. UE向ENB请求上行资源Physical channel: PUCCHMessage: SR (schedule request)根据上层的配置UE按照一定的周期和子帧位置上通过PUCCH中的控制消息UCI传输SR【RACH成功之后,ENB配置UE的SR子帧位置和发送周期,如果接入UE过多周期就长࿰…

qrcode生产带logo_“白板”口罩打上LOGO装名牌 警方重拳出击清市场
看看新闻Knews记者 毛鸿仁2020-09-17 10:19假冒口罩危害大,无良商家被查处。近日,上海松江警方侦破了一起假冒品牌口罩的案件,犯罪嫌疑人赵某等人被松江警方依法采取刑事强制措施。7月下旬,上海市公安局松江分局通过警企协作&…