Tag: uiimage

将图像制作成圆形或圆形的iOS

此示例显示如何制作一个用如下半径四舍五入的UIView或UIImageView: 目标C someImageView.layer.cornerRadius = CGRectGetHeight(someImageView.frame)/ 2; someImageView.clipsToBounds = YES; 迅速 someImageView.layer.cornerRadius = someImageView.frame.height / 2 someImageView.layer.shouldRasterize = true someImageView.clipsToBounds = true 建议如果使用自动布局,则将someImageView.layer.cornerRadius代码放入viewDidLayoutSubviews中。 如果图像更改大小,这将允许更新图像的cornerRadius。 覆盖func viewDidLayoutSubviews(){ super.viewDidLayoutSubviews() someImageView.layer.cornerRadius = someImageView.frame.size.width / 2 someImageView.layer.masksToBounds = true }

使用Swift的枚举关联值表示本地或远程映像

在移动应用中,当我们向后端请求图像时,通常不会收到准备好渲染的图像。 我们会收到一个URL。 我们访问此URL,获取图像数据,实例化图像并进行渲染。 原因很明显,如果我们在HTTP响应中包含可能的数千千字节的图像,则响应大小将比URL的数十个字符大得多。 此问题通过间接解决。 现在,如果我们的应用程序需要将图像上传到后端,则通常会与该图像一起发送多部分请求,或者使用主体中以base 64编码的图像发出发布请求。 有时,我们甚至将图像上传到第三方服务器(例如Amazon S3),该服务器为我们提供了一个URL,并将其转发到后端。

如何对iOS的Mode属性UIImageView进行设置

视图的内容模式属性指示如何布置其内容。 在“界面生成器”中,可以在“属性”检查器中选择各种模式。 让我们使用两个图像视图来查看各种模式如何工作。 缩放以填充 图像的高度和宽度被拉伸以匹配UIImageView的大小。 纵横比拟合 图像的最长边(高度或宽度)被拉伸以匹配视图。 这使图像尽可能大,同时仍显示整个图像且高度或宽度不失真。 (我将UIImageView背景设置为蓝色,以便其大小清晰可见。) 外观填充 图像的最短边(高度或宽度)被拉伸以匹配视图。 像“宽高比”一样,图像的比例不会偏离其原始宽高比。 重画 重绘仅适用于需要自行缩放和调整大小的自定义视图。 我们没有使用自定义视图,因此我们不应该使用重绘。 请注意,这里的UIImageView只是给我们提供了与“缩放以填充”相同的结果,但是它在后台进行了更多工作。 中央 图像在视图中居中,但图像的长度和宽度未拉伸。 最佳 图像的顶部边缘在视图顶部水平居中,并且图像的长度和宽度未拉伸。 底部 图像的底部边缘在视图底部水平居中,并且图像的长度和宽度未拉伸。 剩下 图像的左边缘在视图的左侧垂直居中,并且图像的长度和宽度未拉伸。 对 图像的右边缘在视图的右侧垂直居中,并且图像的长度和宽度未拉伸。 左上方 图像的左上角位于视图的左上角。 图像的长度和宽度未拉伸。 右上 图像的右上角位于视图的右上角。 图像的长度和宽度未拉伸。 左下方 图像的左下角位于视图的左下角。 图像的长度和宽度未拉伸。 右下 图像的右下角位于视图的右下角。 图像的长度和宽度未拉伸。 笔记 如果内容(在我们的情况下为图像)与视图的大小相同(在我们的情况下为UIImageView),则更改内容模式不会有明显的区别。 请参阅此问题,以获取有关UIImageView以外的视图的内容模式的讨论。 在Swift中,要设置以编程方式设置内容模式,请执行以下操作: imageView.contentMode = UIViewContentMode.scaleToFill imageView.contentMode = UIViewContentMode.scaleAspectFit imageView.contentMode = UIViewContentMode.scaleAspectFill imageView.contentMode = UIViewContentMode.redraw imageView.contentMode […]

我怎样才能resize的UIImage到特定的大小

在我的应用程序中,我正在使用相机拍摄照片并将其显示在320 * 320的UIView 。 但是由于图像的分辨率比UIView的图像分辨率还要高。 有什么办法可以调整图像大小吗?

如何在我的iOS拾色项目中放大图像时防止像素变得模糊?

我正在做一个能够放大图像并从放大镜中选取像素颜色的小工程,现在我可以放大图像的触摸位置,但是放大镜显示的是模糊效果的像素,我怎样才能使它不用模糊处理就可以一目了然地显示像素了吗? – (void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext(); CGRect bounds = self.bounds; CGImageRef mask = [UIImage imageNamed: @"loupe-mask@2x.png"].CGImage; UIImage *glass = [UIImage imageNamed: @"loupe-hi@2x.png"]; CGContextSaveGState(context); CGContextClipToMask(context, bounds, mask); CGContextFillRect(context, bounds); CGContextScaleCTM(context, 40, 40); //draw your subject view here CGContextTranslateCTM(context,1*(self.frame.size.width*0.5),1*(self.frame.size.height*0.5)); //CGContextScaleCTM(context, 1.5, 1.5); CGContextTranslateCTM(context,-1*(touchPoint.x),-1*(touchPoint.y)); [self.viewToMagnify.layer renderInContext:context]; CGContextRestoreGState(context); [glass drawInRect: bounds]; } 应该: 不应该是:

使用animation更改UIWindow图像(使用UIColor patternImage的backgroundColor)

我正在尝试使用两个UIWindow图像(使用backgroundColor与UIColor patternImage )之间的animation进行转换。 我有两个图像myImage1和myImage2 。 我使用函数changeImage1()更改UIWindow backgroundColor一次,然后再次使用函数changeImage2() 。 我也设置view.backgroundColor = UIColor.clearColor()以便我可以看到UIWindow上发生了什么。 下面的代码。 testingA: 当我将window.backgroundColor = UIColor.redColor()更改window.backgroundColor = UIColor.redColor() window.backgroundColor = UIColor.blueColor() ,在UIWindow之间的animation从红到蓝的颜色之间有一个很好的转换。 (见代码A) testingB: 然而,当我设置模式图像window.backgroundColor = UIColor(patternImage:…)并调用changeImage1() , myImage1animation很好,但是当我然后调用changeImage2()没有animation, myImage2突然取代myImage1 。 (见代码B) 问题: 1 – 如何在myImage1和myImage2之间使用UIWindow上的animation进行myImage2 ? 2 – 我在我的代码中错过了什么,只是交换图像,而不是它们之间的animation,为什么myImage1animation,但myImage2不是? 3 – 是否有其他方法来animation两个图像/交叉溶解在UIWindow不使用UIColor(patternImage:…)? 码: A: func changeImage1() { self.view.backgroundColor = UIColor.clearColor() //show UIWindow UIView.animateWithDuration(2, delay: […]

UIImage视图不显示在iOS 11 …如何解决?

我有一个在iOS的现有项目,它工作正常,直到iOS 10 ,更新X-Code 9 ,并运行项目的iOS 10是好的,但在iOS 11的UIImageview不显示.. 我已经尝试了很多方法,如干净的派生数据,重置清洁生成退出X代码和重新启动系统,删除和添加图像(PNG文件),但注意到发生。 即使我已经添加了背景颜色,但颜色也没有显示在设备和模拟器,但它是在故事板。 还有一件事情, UIButton上的背景图像正在显示,但在图像上不显示。 有没有人find解决办法?

将UIImage从一个视图控制器传递给UITableViewCell

我正在使用UITable来显示图像(像instagram中的feed)我有保存在viewcontroller中的图像我正在拍照,但我需要一种方法来将UIImage传递给UITableViewCell。 什么是最好的方法来完成这一点。

如何将UIImage转换为Swift 3.0中的imageWithContentsOfFile

我已经创build了一个PNG图像序列的animation通过UIImage对象(约30 PNG图像来创buildanimation – 每100KB) 但是,在查看Apple的文档之后,通过UIImage对象caching图像不是最好的select(留下的内存足够大): https://developer.apple.com/documentation/uikit/uiimage#//apple_ref/occ/clm/UIImage/imageNamed : 在查看了其他一些SOpost后,最好的方法是创build一个新的组文件夹(“animation”)并将PNG存储在新文件夹中,并通过contentsOfFile:调用它们contentsOfFile: 我已经完成了上述所有,将图像存储在一个新的组,并更新我的代码 – 但我仍然失去了一些东西(抛出一个致命的错误:意外地发现零,而解包一个可选值) 这是我目前的代码(使用UIImage): func createImageArray(total: Int, imagePrefix: String) -> [UIImage]{ var imageArray: [UIImage] = [] for imageCount in 0..<total { let imageName = "\(imagePrefix)-\(imageCount).png" let image = UIImage(named: imageName)! imageArray.append(image) } return imageArray } 这里是我更新的代码(使用contentsOfFile): func createImageArray(total: Int, imagePrefix: String) -> [UIImage]{ var imageArray: [UIImage] = […]

从SVGstring创build一个UIImage

嗨,我试图从我从服务器获得的数据呈现SVG图像。 我用一个名为SVGgh的库使用这个代码 – NSData *svgData = [[NSData alloc] initWithBase64EncodedString:svgStr options:0]; NSString* newStr = [[NSString alloc] initWithData:svgData encoding:NSUTF8StringEncoding]; NSString *finalString = [NSString stringWithFormat:@"<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">%@", newStr]; aRenderer = [[SVGRenderer alloc] initWithString:finalString]; UIImage *image = [aRenderer asImageWithSize:CGSizeMake(200, 200) andScale:1.0]; UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; imageView.frame = CGRectMake(0, 0, 200.0, 200.0); imageView.backgroundColor […]