前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >objective-c 从网络下载图片,保存,并用 UIImageView 从保存中显示

objective-c 从网络下载图片,保存,并用 UIImageView 从保存中显示

原创
作者头像
用户7108768
修改于 2021-10-29 03:51:43
修改于 2021-10-29 03:51:43
1.4K00
代码可运行
举报
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//从网络下载图片
-(UIImage *) getImageFromURL:(NSString *)fileURL {
    NSLog(@"执行图片下载函数");
    UIImage * result;

    NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:fileURL]];
    result = [UIImage imageWithData:data];

    return result;
}

//将所下载的图片保存到本地
-(void) saveImage:(UIImage *)image withFileName:(NSString *)imageName ofType:(NSString *)extension inDirectory:(NSString *)directoryPath {
    if ([[extension lowercaseString] isEqualToString:@"png"]) {
        [UIImagePNGRepresentation(image) writeToFile:[directoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageName, @"png"]] options:NSAtomicWrite error:nil];
    } else if ([[extension lowercaseString] isEqualToString:@"jpg"] || [[extension lowercaseString] isEqualToString:@"jpeg"]) {
        [UIImageJPEGRepresentation(image, 1.0) writeToFile:[directoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageName, @"jpg"]] options:NSAtomicWrite error:nil];
    } else {
        //ALog(@"Image Save Failed\\nExtension: (%@) is not recognized, use (PNG/JPG)", extension);
        NSLog(@"文件后缀不认识");
    }
}

//读取本地保存的图片
-(UIImage *) loadImage:(NSString *)fileName ofType:(NSString *)extension inDirectory:(NSString *)directoryPath {
    UIImage * result = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.%@", directoryPath, fileName, extension]];

    return result;
}

//从网络下载图片,保存,并用 UIImageView 从保存中显示
NSString * documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSLog(@"保存路径:%@",documentsDirectoryPath);
    //Get Image From URL
    UIImage * imageFromURL = [self getImageFromURL:@"http://file.duteba.com/phone/2009/04/5/ftGxL8kcUL.jpg"];

    //Save Image to Directory
    [self saveImage:imageFromURL withFileName:@"MyImage" ofType:@"jpg" inDirectory:documentsDirectoryPath];

    //Load Image From Directory
    UIImage * imageFromWeb = [self loadImage:@"MyImage" ofType:@"jpg" inDirectory:documentsDirectoryPath];
    [img setImage:imageFromWeb];

    //取得目录下所有文件名
    NSArray *file = [[[NSFileManager alloc] init] subpathsAtPath:documentsDirectoryPath];
    //NSLog(@"%d",[file count]);
    NSLog(@"%@",file);

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
白话K8S核心组件概念
容器是利用了集装箱的思想,把可运行程序打包成可运行、自包含、标准化的镜像。通过K8S能够管理和编排我们打的镜像,举例来说,如果你想运行两个副本,直接在编排文件中配置replicas为2即可,你也可以使用HPA通过检测CPU、内存使用率实现自动扩缩容。
用户5166556
2020/08/20
8240
白话K8S核心组件概念
理解 K8S 的设计精髓之 List-Watch机制和Informer模块
最近想深入了解一下K8S的内部通信机制,因此读了几遍K8S的源码,感慨很深。至今清楚的记得,当了解到K8S 组件之间仅采用HTTP 协议通信,没有依赖中间件时,我非常好奇它是如何做到的。
云爬虫技术研究笔记
2019/11/05
3.6K0
【K8S 系列】k8s 学习一,Kubernetes 基本介绍及核心组件
kubernetes github:https://github.com/kubernetes/kubernetes
阿兵云原生
2023/02/16
5330
k8s实践(1)--k8s集群入门介绍和基础原理
1、简单了解集群的工作原理和基础概念,名词解释。 2、安装etcd集群:etcd分布式键值存储系统,用于保持集群状态,比如Pod、Service等对象信息。 3、安装k8s集群,简单了解集群的如何工作。 4、搭建集群网络:基础网络搞好,后面才能顺利部署各种资源。 5、学习k8s的安全、Secrets,ssl认证。如果安全认证没有搞好,创建pod和service都会报各种错误。 6、然后我们深入学习pod和service。 7、深入学习集群工作原理分析,从基础到深度,才能学的扎实。 8、有了pod和service,就需要知道如果发现,学习coreDNS 9、开始部署一些有状态的服务 10、案例实践
黄规速
2022/04/14
1.8K0
k8s实践(1)--k8s集群入门介绍和基础原理
k8s创建pod的整个过程
过去几年,以 Docker、Kubernetes 为代表的容器技术已发展为一项通用技术,BAT、滴滴、京东、头条等大厂,都争相把容器和 K8S 项目作为技术重心,试图“放长线钓大鱼”。
怀朔
2022/05/29
7K1
k8s创建pod的整个过程
k8s 自身原理之高可用
说到高可用,咱们在使用主机环境的时候(非 k8s),咱做高可用有使用过这样的方式:
阿兵云原生
2023/09/01
4190
k8s 自身原理之高可用
Kubenetes Pod 部署&滚动升级 调优
Pod 在滚动升级部署中部署pod个数到可用指标更新速率 是衡量 Kubenetes 调度能力最核心指标
KubeService@dongjiang
2022/11/16
8051
Kubenetes Pod 部署&滚动升级 调优
从零开始入门 K8s | Kubernetes API 编程范式
本文整理自《CNCF x Alibaba 云原生技术公开课》第 23 讲,点击“阅读原文”直达课程页面。
CNCF
2020/02/26
7460
k8s 自身原理 2
前面我们说到 K8S 的基本原理和涉及的四大组件,分享了前两个组件 etcd 和 ApiServer
阿兵云原生
2023/09/01
2460
k8s 自身原理 2
k8s 自身原理 4
前面咱们分享了 mater 和 worker 节点里面都有哪些组件,他们又是各自主要负责的工作是什么,现在我们心里应该都有数了吧
阿兵云原生
2023/09/01
1630
k8s 自身原理 4
图解 Deployment Controller 工作流程
上一篇文章《Kubernetes Controller Manager 工作原理》讲解了 Controller Manager 是怎么管理 Controller 的,我们知道 Controller 只需要实现相关事件 handler,无须再关心上层逻辑。本文将基于这篇文章,介绍 Deployment Controller 在接收到来自 Informer 的事件后,做了哪些工作。
CS实验室
2021/03/22
1.1K0
图解 Deployment Controller 工作流程
万字警告 - k8s入门,理应Pod先行!
大家好,欢迎来到小菜个人 solo 学堂。在这里,知识免费,不吝吸收!关注免费,不吝动手!死鬼~看完记得给我来个三连哦!
蔡不菜丶
2021/04/29
8270
万字警告 - k8s入门,理应Pod先行!
k8s必学必会知识梳理
对外暴露了Kubernetes API。它是的 Kubernetes 核心控制层。它被设计为水平扩展,即通过部署更多实例来横向扩展。API Server 负责和 etcd 交互(其他组件不会直接操作 etcd,只有 API Server 这么做),是整个 kubernetes 集群的数据中心,所有的交互都是以 API Server 为核心的。API Server 提供了以下的功能:
我的小碗汤
2019/07/30
2K0
Kubernetes整理
一般做法:容器A共享容器B$ docker run --net=B --volumes-from=B --name=A image-A ...,这种做法会存在一个问题,容器AB的关系从对等变成了拓扑。
铭丶
2021/03/12
7460
白话kubernetes的十万个为什么 - kubernetes
Kubernetes简称? 答:k8s或kube。 Kubernetes是什么? 答:由Google开发的一个强大的平台,可以在集群环境中管理容器化应用程序。本质上是一种特殊的数据库,里面存储的是能够组成kubernetes模型的各种资源,包括Pods、Deployments、Services、Config Maps、Secrets、Namespaces、Nodes、Service Accounts、Ingress、Jobs等等。可以参考:kubernetes实战之运行aspnetcore weba
justmine
2018/06/01
1.2K0
K8s组件和架构
Master节点是Kubernetes集群的控制节点,每个Kubernetes集群里至少有一个Master节点,它负责整个集群的决策(如调度),发现和响应集群的事件。一个集群通常运行多个Master控制节点,提供容错性和高可用性。Master节点可以运行在集群中的任意一个节点上,但是最好将Master节点作为一个独立节点,不在该节点上创建容器,因为如果该节点出现问题导致宕机或不可用,整个集群的管理就会失效。
谢公子
2023/02/27
1.1K0
K8s组件和架构
Kubernetes架构原来这么简单
Kubernetes 也称为 K8s,是用于自动部署、扩缩和管理容器化应用程序的开源系统。Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态,其服务、支持和工具的使用范围相当广泛。Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。Google 在 2014 年开源了 Kubernetes 项目。Kubernetes 建立在 Google 大规模运行生产工作负载十几年经验的基础上, 结合了社区中最优秀的想法和实践。
用户1107783
2023/09/14
1.4K0
Kubernetes架构原来这么简单
k8s架构与组件详解
k8s系统在设计是遵循c-s架构的,也就是我们图中apiserver与其余组件的交互。在生产中通常会有多个Master以实现K8s系统服务高可用。K8s集群至少有一个工作节点,节点上运行 K8s 所管理的容器化应用。
你大哥
2021/10/11
3.9K0
k8s架构与组件详解
K8S核心组件介绍
负责对外提供集群各类资源的增删改查及 Watch 接口,它是 Kubernetes 集群中各组件数据交互和通信的枢纽。当收到一个创建 Pod 写请求时,它的基本流程是对请求进行认证、限速、授权、准入机制等检查后,写入到 etcd 即可。
灰子学技术
2021/08/27
1.9K0
K8S核心组件介绍
k8s 架构、基本概念及命令
API server: 是k8s 集群的前端接口,各种客户端工具以及k8s的其他组件 可以通过它管理k8s集群的各种资源。它提供了HTTP/HTTPS RESTful API, 即K8S API.
小手冰凉
2020/08/20
8000
k8s 架构、基本概念及命令
相关推荐
白话K8S核心组件概念
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档