FTAssetRenderer 0.1.1

FTAssetRenderer 0.1.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布上次发布2014年12月

Eloy Durán 维护。



  • Eloy Durán

在运行时创建任何颜色的图像资源,当用作遮罩时,以及当它是 PDF 时,在任何分辨率时。

安装

如果您在使用 CocoaPods,请在您的 Podfile 中添加以下内容:

pod 'FTAssetRenderer'

否则,只需将 Source 目录中的文件添加到您的项目中。

用法

如果您有一个用作不同颜色图像遮罩的位图图像,则可以使用如下方式:

FTImageAssetRenderer *renderer = [FTAssetRenderer rendererForImageNamed:@"my-icon" withExtension:@"png"];
renderer.targetColor = [UIColor redColor];
UIImage *result = [renderer imageWithCacheIdentifier:@"red"];

另一方面,如果您有一个基于矢量的 PDF 图像,通常您还需要指定它应该渲染的大小

FTPDFAssetRenderer *renderer = [FTAssetRenderer rendererForPDFNamed:@"my-scalable-icon"];
renderer.targetColor = [UIColor blueColor];
renderer.targetSize = CGSizeMake(123, 456);
UIImage *result = [renderer imageWithCacheIdentifier:@"without-preserving-aspect-ratio"];

在上面的例子中,显式地给出了结果图像的宽度和高度,这可能会导致图像无法保留原始的宽高比。为了确保比例被保留,提供了一些便利的方法

  • -[FTPDFAssetRenderer fitWidth:] 会使结果图像的宽度等于指定的宽度,而高度基于此。
  • -[FTPDFAssetRenderer fitHeight:] 会使结果图像的高度等于指定的宽度,而宽度基于此。
  • -[FTPDFAssetRenderer fitSize:] 会使图像尽可能大,但在这个边界大小内,同时不裁剪图像的任何部分,这样只能完全覆盖两个侧面中的一侧。

默认情况下,结果图片会被缓存在磁盘上。对于每种不同的目标颜色,应该使用不同的缓存标识符。例如,对于控件,您可能使用如 normalhighlightedselected 等标识符。

致谢

基于以下工作的成果:

感谢 Peter Steinberger(以 PSPDFKit 著称)在创建此库期间提供的宝贵建议。