图片太多,应用程序太大
Way too many images, app size too big
我已经检查过这个问题 (App size is too big because of too many images)
我使用 tinypng.com 就像它建议的那样用于我的图像,但我的文件仍然太大,而且有这么多文件,我的应用正在考虑可能的大小。
基本上我的计划是做一个汽车测验类型的游戏,在那里我有几乎所有制造过的汽车的图像(通过 public wikicommons 域获得),photoshop 关闭所有徽章(哪个我已经做了一千多个),你试试看你是否还能猜出这辆车。
考虑到 iPad Retina 分辨率,我发现此应用程序在内存方面会很大 space。
平均缩小的照片约为 300kb。这看起来很高吗?
如何制作一个 ios 应用程序,其中包含数千张质量不错的图像?
我是否必须创建一些空中数据库之类的东西?我对此一无所知。
此外,我只编写了大约一年的代码,所以如果有任何相关的代码可能对您有所帮助,请告诉我。
任何提示或技巧将不胜感激。谢谢!
您可能不需要数据库或一些强大的在线系统来组织和检索您的照片,但很明显,将所有这些文件存储在设备上是行不通的。
购买虚拟主机。每月支付 5 美元,您可以获得无限的在线存储空间和带宽。 Godaddy、Bluehost、Hostgator、Dreamhost 等...
使用他们的在线文件管理器之一,或下载免费的 FTP(文件传输协议)客户端,如 Filezilla。
使用他们的在线文件管理器,或连接 FileZilla,只需将您的图像传输到网络服务器上。
然后,手头有一个 URL 列表,可以将您链接到您的汽车图像,使用下面的代码从 URL 加载图像:
NSURL *url = [NSURL URLWithString:path];
NSData *数据 = [NSData dataWithContentsOfURL:url];
UIImage *img = [[UIImage alloc] initWithData:data cache:NO];
** 当您显示依赖于下载信息或照片的界面时,您应该显示一些占位符("Loading...," 一个框,或 "loading spinner")内容将保留到图片下载完成的位置。
我有一个非常相似的问题。你可能不会犯同样的错误,但我还是会分享。
我在 Photoshop 中制作了非常大 尺寸的图像, 我只是将它们缩小到 Xcode 故事板中所需的尺寸。
这导致每个图像的文件大小不必要地大。
因此,解决方案是在上传到 Xcode.
之前将每张图片缩小到应用程序所需的精确尺寸
这大大减少了图像的内存使用量。
看看at this link,应提供有关如何在应用程序内下载图像的信息。
我已经使用了 AFNetworking
这真的很容易处理。如果你想使用它,看看 class:
#import <AFNetworking/UIImageView+AFNetworking.h>
并检查方法 setImageWithURLRequest:placeholderImage:success:failure:
为了在下载后保存 UIImage
,您可以 use this method 并将它们保存在本地应用程序目录中。我认为这将是最简单的方法。如果它会变大,您可以尝试使用 sqlite
来存储 UIImages
.
的路径
您可能应该使用系统文件来存储图像并将路径保存在数据库中,因为:
数据库存储通常比文件系统存储更昂贵
照片大小的差异会显着增加行大小。
最好的做法是将您的图像命名为相应的主键。
我已经检查过这个问题 (App size is too big because of too many images)
我使用 tinypng.com 就像它建议的那样用于我的图像,但我的文件仍然太大,而且有这么多文件,我的应用正在考虑可能的大小。
基本上我的计划是做一个汽车测验类型的游戏,在那里我有几乎所有制造过的汽车的图像(通过 public wikicommons 域获得),photoshop 关闭所有徽章(哪个我已经做了一千多个),你试试看你是否还能猜出这辆车。
考虑到 iPad Retina 分辨率,我发现此应用程序在内存方面会很大 space。
平均缩小的照片约为 300kb。这看起来很高吗?
如何制作一个 ios 应用程序,其中包含数千张质量不错的图像? 我是否必须创建一些空中数据库之类的东西?我对此一无所知。
此外,我只编写了大约一年的代码,所以如果有任何相关的代码可能对您有所帮助,请告诉我。
任何提示或技巧将不胜感激。谢谢!
您可能不需要数据库或一些强大的在线系统来组织和检索您的照片,但很明显,将所有这些文件存储在设备上是行不通的。
购买虚拟主机。每月支付 5 美元,您可以获得无限的在线存储空间和带宽。 Godaddy、Bluehost、Hostgator、Dreamhost 等...
使用他们的在线文件管理器之一,或下载免费的 FTP(文件传输协议)客户端,如 Filezilla。
使用他们的在线文件管理器,或连接 FileZilla,只需将您的图像传输到网络服务器上。
然后,手头有一个 URL 列表,可以将您链接到您的汽车图像,使用下面的代码从 URL 加载图像:
NSURL *url = [NSURL URLWithString:path];
NSData *数据 = [NSData dataWithContentsOfURL:url];
UIImage *img = [[UIImage alloc] initWithData:data cache:NO];
** 当您显示依赖于下载信息或照片的界面时,您应该显示一些占位符("Loading...," 一个框,或 "loading spinner")内容将保留到图片下载完成的位置。
我有一个非常相似的问题。你可能不会犯同样的错误,但我还是会分享。
我在 Photoshop 中制作了非常大 尺寸的图像, 我只是将它们缩小到 Xcode 故事板中所需的尺寸。
这导致每个图像的文件大小不必要地大。
因此,解决方案是在上传到 Xcode.
之前将每张图片缩小到应用程序所需的精确尺寸这大大减少了图像的内存使用量。
看看at this link,应提供有关如何在应用程序内下载图像的信息。
我已经使用了 AFNetworking
这真的很容易处理。如果你想使用它,看看 class:
#import <AFNetworking/UIImageView+AFNetworking.h>
并检查方法 setImageWithURLRequest:placeholderImage:success:failure:
为了在下载后保存 UIImage
,您可以 use this method 并将它们保存在本地应用程序目录中。我认为这将是最简单的方法。如果它会变大,您可以尝试使用 sqlite
来存储 UIImages
.
您可能应该使用系统文件来存储图像并将路径保存在数据库中,因为:
数据库存储通常比文件系统存储更昂贵
照片大小的差异会显着增加行大小。
最好的做法是将您的图像命名为相应的主键。