imageWithContentsOfFile 与 imageNamed (imageWithContentsOfFile 返回低质量图像)

2024-01-22

有一次,我把所有的图片放在APP Bundle中。我使用 imageNamed 函数来获取图像。后来,我决定在应用程序启动时将一些图片复制到文档中。因此,我无法再使用 imageNamed 函数来获取图像。我使用 imageWithContentsOfFile 来获取图像:

NSString* documentsDirectoryPath =[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];
UIImage* result =[UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.%@", documentsDirectoryPath, fileName, extension]];

但是,imageWithContentsOfFile 返回低质量图像(非常模糊)。 我所有的图像都是128*128。 我使用以下代码来检测图片的大小:

NSData * imgData = UIImagePNGRepresentation(image);
NSLog(@"size : %d",[imgData length]);

我发现imageNamed返回的图像大小是imageWithContentsOfFile的3倍。 我疯了...救救我!多谢 ...


In the UIImage参考文档 http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImage_Class/Reference/Reference.html您可以看到 imageNamed 和 imageWithContentsOfFile 之间的一些差异。

  • imageWithContentsOfFile 不缓存图像,也不查找视网膜显示版本(@2x.png)。
  • 相反,imageNamed 会缓存图像,并检查是否有 @2x 版本,以便在支持视网膜的设备中加载该版本。

知道了这一点,我能想到的对你的问题最合乎逻辑的解释是你正在使用视网膜设备并且拥有同一图像的视网膜版本(@2x)。这可以解释为什么图像

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

imageWithContentsOfFile 与 imageNamed (imageWithContentsOfFile 返回低质量图像) 的相关文章

  • 两者都实现了类。将使用两者之一

    我有一个项目 它具有使用 SocketRocket 的依赖项 通过 CocoaPods 安装 并从 HeapAnalytics 导入了静态库 显然 HeapAnalytics 库已经使用了 SocketRocket 编译时没有出现错误 但在
  • CBPeripheral 名称有时为 null

    我正在开发一个应用程序来与蓝牙 LE 外围设备进行通信 我目前正在测试的外围设备是其中之一these http www ti com tool cc2540dk mini 有趣的是 有时当我发现它时 我会得到它的正确名称 SimpleBLE
  • 无法将“SDWebImageActivityIndi​​cator”类型的值分配给“ST_SDWebImageIndicator”类型?

    I have multiple flavours targets in my Xcode project I am also using SDWebImage in my app Everything was working fine un
  • -[EAGLContext renderbufferStorage:fromDrawable:] 第二次失败?

    我正在开发一个 iOS openGL ES 应用程序 我正在做通常的 EAGLView ES2Render 的事情 启动时 使用以下代码成功创建 frambuffer BOOL createFramebuffers EAGLContext
  • iOS Storyboards 我应该使用它们吗? [复制]

    这个问题在这里已经有答案了 我是 iOS 开发新手 尚未创建应用程序 但我向我的朋友寻求建议 他在市场上拥有非常高评价的应用程序 他说不要使用故事板 尽管我很想听取他的建议 但它们似乎确实很有帮助 这是否会在将来给我的应用程序带来问题 我有
  • GMSMapView 中的倒多边形

    我必须在我的 iPhone 项目中使用 Google 地图 并且我正在使用 GMSPolygon 来绘制多边形 但是如何填充地图上除多边形内部之外的所有位置 就像下图一样 谢谢 我玩过你的问题 主要思想是用多边形填充整个地球 然后为您的特定
  • 如何在 Apple Watch Extension/App 和 iOS App 之间建立通信通道

    我正在探索 WatchKit SDK 当我有 WatchKit 应用程序时 是否可以在 WatchKit 应用程序上从 iPhone 应用程序设置值 例如文本 设置 我可以从 iPhone 应用程序调用 WatchKit 应用程序扩展中的函
  • 如何在 Swift 3 中解析 JSON 数组 [重复]

    这个问题在这里已经有答案了 我从 Socket 获取了一些我想访问的数据 但收到错误消息 指出每次都无法将 NSArray 转换为 NSDictionary struct SocketEventHandler let event Strin
  • iOS 11 安全区域布局指南向后兼容性

    启用安全区域布局指南是否与 iOS 11 以下版本兼容 我设法使用新的安全区域布局指南并保持与 iOS 9 和 iOS 10 的向后兼容性 编辑 正如 NickEntin 的评论所指出的 此实现将假定存在状态栏 但在 iPhone X 的横
  • iOS 8 中的 UISplitViewController 状态恢复

    在 iOS 8 上 UISplitViewController 似乎可以保存和恢复其子视图的状态 例如 主视图是否隐藏 这是不可取的 因为我的应用程序应该始终以横向方式显示主视图 并始终以纵向方式隐藏它 如果用户以横向模式关闭应用程序 保存
  • UICollectionView 未出现

    我正在尝试设置UICollectionView 以编程方式在我的视图控制器中扩展UIViewController 由于某种原因 我的收藏视图根本没有显示 以下是我所拥有的 为什么没有出现 我将它连接到委托和数据源并将其添加为子视图self
  • 如何请求用户开启定位服务

    我需要我的应用程序来访问用户的当前位置 它在应用程序开始时检查用户是否已设置 如果没有 我需要应用程序显示提示以使其使用位置服务 就像警报视图一样 点击按钮 它应该会带您进入 iPhone 上的位置服务屏幕 您可以通过以下代码检查 loca
  • 在后台任务中安排通知

    我正在为 iOS 开发一个日历 闹钟应用程序 它与网络服务器同步 当在服务器上添加活动时 会发出推送通知 以便 iOS 客户端可以获取新数据 并根据需要更新和安排下一次警报的时间 本地通知 但这仅在应用程序在客户端打开时才有效 我希望客户端
  • 无法使用 Xamarin 和 WCF 访问 Web 服务

    我想使用 Xamarin 和 WCF 来使用公共 Web 服务 对于这个演示 我将使用Xamarin iOS 这是我试图使用的 公共 网络服务 http www webservicex net globalweather asmx WSDL
  • Objective C UIImagePNGRepresentation内存问题(使用ARC)

    我有一个基于 ARC 的应用程序 它从 Web 服务加载大约 2 000 个相当大 1 4MB 的 Base64 编码图像 它将 Base64 解码后的字符串转换为 png图像文件并将其保存到磁盘 这一切都是在一个循环中完成的 我不应该有任
  • 我什么时候应该对 IBOutlet 使用弱或强限定符? [复制]

    这个问题在这里已经有答案了 可能的重复 ARC 下 IBOutlets 应该强还是弱 https stackoverflow com questions 7678469 should iboutlets be strong or weak
  • 对使用phonegap和钛的质疑[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 最近我听说了 PhoneGap 和 Titanium 移动网络应用程序的开发 我分析了这两个 Web 应用程序 并了解了如何使用它们以
  • 自定义 MKAnnotationView - 如何捕获触摸而不忽略标注?

    我有一个自定义 MKAnnotationView 子类 它完全按照我想要的方式显示视图 在那个视图中 我有一个按钮 我想捕获按钮上的事件来执行操作 这很好用 但是 我不希望标注被忽略或消失 基本上 触摸标注中的按钮将开始播放声音 但我想保留
  • 应用程序未通过协同设计验证?

    我在提交 iPhone 申请时遇到问题 我看到了一些类似的问题 但没有找到答案 当我存档项目并单击 验证 时 收到错误消息 应用程序未通过协同设计验证 签名无效 或者未使用 Apple 提交证书进行签名 我假设我在协同设计部分做错了什么 我
  • Swift 中通过不同类调用委托方法

    我正在获取 JSON 菜单 一旦 JSON 返回 我想运行 menuReady 来更新表的内容在 SomeTableViewController 类中 但下面的代码似乎不起作用 AIM Run 菜单就绪 JSON 返回后更新内容 PROBL

随机推荐

  • C/C++、FORTRAN、下划线和 GNU Autotools

    我有关于混合语言编程 C C 和 FORTRAN 的问题 使用 gcc 和 gfortran 我搜索了很多 将 fortran 与 语言 X 并且无法解决这个问题 我不确定这是链接问题还是编译器问题 或者两者兼而有之 我创建了三个文件 并使
  • 添加包含 NA 计数和平均值的列

    我有一个数据框 我需要向其中添加另一列 该列显示该行所有其他列中 NA 的计数以及非 NA 值的平均值 我认为这可以在 dplyr 中完成 gt df1 lt data frame a 1 5 b c 1 2 NA 4 NA c c NA
  • Symfony 2 嵌入式表单集合多对多

    我有 2 个实体 用户和组 它们具有多对多的关系 组用于存储用户的角色 我正在尝试通过添加集合来创建用户编辑表单 我希望能够通过从下拉列表中选择它来添加新角色 仅限于数据库中已有的内容 用户类型 php class UserType ext
  • 将 Vector 的第一个元素移动到最后一个元素

    我想将向量的第一个元素移动到向量的末尾 v 1 2 3 4 之后应该是这样的 v 2 3 4 1 我的编译器版本是gcc版本4 4 3 Ubuntu 4 4 3 4ubuntu5 1 我知道在 Vc11 中我们可以使用 std move 来
  • 使用批处理脚本重命名目录中的多个文件

    我有大约 1000 张图像 它们的名称如 IMG 12223 我想将它们重命名为 1 2 3 4 1000 我该怎么做 我编写了一个列出文件的批处理脚本 但我不知道如何重命名每个文件 例如将名称为 IMG 12223 的第一张图像重命名为
  • Rust 的方式是什么,可以用继承来捕获草书事件? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我在这里寻找一个实用的答案 我了解 Rust 的 OOP 方法 组合优于继承 编写重用代码的特征以及所有这些爵士乐 如果我能够完全控制代码并
  • EF代码优先级联删除外键一对多

    我们正在使用实体框架代码优先 我们有一个课堂视频 class Video List
  • 乘客 config.ru 权限被拒绝

    有人在rails nginx passenger的组合下经历过ERR EMPTY RESPONSE吗 nginx error log 说 terminate called after throwing an instance of Pass
  • Android:如何模拟后退按钮

    目前我的活动允许用户填写某些数据 包括微调器等 当用户单击下一个系统时 系统导航到另一个屏幕 当我按下手机上的后退按钮时 之前加载和填充的数据即可使用 我的要求要求我在用户界面中提供一个软 后退 按钮 当用户单击它时 它会导航回上一屏幕 但
  • QEventLoop正确使用

    我有疑问应该如何使用QEventLoop 我有两段代码 它们都适合我 下载网络资源 第一 QNetworkAccessManager manager new QNetworkAccessManager this QNetworkReques
  • GWT 将脚本元素注入 html 文件

    在我的 gwt 项目上 我有一个调用字典的脚本 而不是将此脚本元素写入 html 文件中 我想在模块加载时将其从入口点注入到 html 中 我该怎么做 Use com google gwt core client ScriptInjecto
  • 各个版本的 MSVC 功能列表?

    我正在尝试找到一个列表MSVC具有它们出现的相应版本的功能 因此我可以执行以下操作 if defined MSC VER MSC VER gt X define MY INLINE forceinline else define MY IN
  • XCode 4.3.1 iPad 模拟器

    有谁知道为什么 iPad 模拟器缺少主页按钮 Its a simple redesign to make more space for the simulator screen You can trigger the home button
  • 使用 BeautifulSoup 获取日期

    我对 Python 很陌生 我正在尝试抓取网站以获取信息 主要是文本 但我遇到了日期问题 它看起来像这样
  • 针对 Boost.Log 的 g++ 静态链接错误

    静态链接 Boost Log 时出现链接错误 编译器版本是g 4 8 1 Boost版本是1 55 0 我可以毫无问题地进行动态链接 在 make 文件中使用 DBOOST LOG DYN LINK 但是当我进行静态链接时 会出现链接错误
  • 如何处理 JSON_VALUE 路径中的美元 ($) 符号

    我们将数据作为 JSON 字符串存储在数据库中 由于使用 Newtonsoft JSON 此数据包含键中带有 符号的字段 是否可以使用MSSQL中的JSON VALUE函数查询这些字段 我尝试的查询抛出异常JSON 路径格式不正确 在位置
  • 如何使用 Silex 框架实现自定义身份验证成功处理程序?

    我想在用户登录时跟踪一些数据 成功和失败 但我真的不知道该怎么做 防火墙看起来像这样 app gt register new Silex Provider SecurityServiceProvider array security fir
  • 使用Spring事务管理“Propagation.REQUIRES_NEW”到底意味着什么?

    我与此事相关的困惑是我们如何使用之前创建的交易 或者换句话说 一个事务可以与多少个线程相关 在 Spring 中 一笔事务只能与一个线程相关 好吧 通过一些努力 您可以使其成为一个长期运行的事务 但这是一种反模式 REQUIRES NEW意
  • “所需的许可被拒绝!”请求 WRITE_EXTERNAL_STORAGE 时

    我正在尝试在 Android 10 上请求 WRITE EXTERNAL STORAGE 权限 我使用以下代码执行此操作 ArrayList
  • imageWithContentsOfFile 与 imageNamed (imageWithContentsOfFile 返回低质量图像)

    有一次 我把所有的图片放在APP Bundle中 我使用 imageNamed 函数来获取图像 后来 我决定在应用程序启动时将一些图片复制到文档中 因此 我无法再使用 imageNamed 函数来获取图像 我使用 imageWithCont