prism-ios
Prism 图像缩放器 iOS 库,用于构建 prism 图像缩放器 URL。
设置 Prism URL 有两种方式。第一种是通过 URL 扩展的 prismURL 函数。第二种是使用 PrismURL 对象及其带有参数设置器的方法。
将转换为 Prism URL 的基本 URL。如果基本 URL 为 nil,则该方法将返回 nil。如果基本 URL 不包含“tryprism”或包含其他查询,则该方法将返回不添加 Prism 查询的基本 URL。
URL 扩展声明
func prismURL(quality: ImageQuality = .high,
expectedSize: CGSize = .zero,
resizeMode: ImageResizeMode = .crop,
imageType: ImageType = .png,
cropRect: CGRect = .zero,
premultiplied: Bool = true,
preservedRatio: Bool? = nil,
gravity: Gravity? = nil,
frameBackgroundColor: String? = nil
) -> URL? {
此方法可以通过 URL 实例调用。
PrismURL 对象声明
init (baseURL: URL)
public func setQuality(_ quality: PrismOutputImageQuality) -> PrismURL
public func setExpectedSize(_ expectedSize: CGSize) -> PrismURL
public func setResizeMode(_ resizeMode: PrismOutputImageResizeMode) -> PrismURL
public func setCropRect(_ cropRect: CGRect) -> PrismURL
public func setImageType(_ imageType: PrismOutputImageType) -> PrismURL
public func setPreservedRatio(_ preservedRatio: Bool?) -> PrismURL
public func setPremultiplied(_ premultiplied: Bool) -> PrismURL
public func setGravity(_ gravity: PrismOutputGravity) -> PrismURL
public func setFrameBackgroundColor(_ backgroundColor: String?) -> PrismURL
初始化 PrismURL 后,可以通过设置器添加参数。
参数
quality
设置图片质量。共有4个选项。第一个选项是高 - 100。第二个选项是正常 - 70。第三个选项是低 - 50。最后一个选项是自定义,用户输入的值。默认值是未指定,从Prism返回为95。
expectedSize
设置输出图片的大小。接受CGSize以宽度和高度作为参数。默认参数值是320x320。
resizeMode
有四种选项可以设置Prism URL的缩放模式。第一个选项是“缩放”,即将图片缩放。第二个选项是“适应”,即将图片缩放并适应到框架中。第三个选项是“裁剪”,即将图片缩放并裁剪到指定的矩形。默认值是未指定。
缩放后大小为100x100的图片
适应后大小为100x100的图片
裁剪后大小为100x100的图片
cropRect
确定根据缩放模式裁剪的矩形区域。以CGRect作为参数接收。
imageType
设置输出图片的类型。选项为.png和.jpg。默认值是未指定。
保留比例
确定是否在调整大小时保留图像的比例。默认值为nil。
预乘
配置png图像带有透明背景。默认值为nil。
重力
决定裁剪焦点,可用选项为左上角和中心。默认值是none。
框架背景颜色
将图像框架背景颜色作为字符串(十六进制格式)接收。默认值是nil。
返回值
返回包含Prism参数的可选URL。
示例
let url: URL = URL(string: "https://famelog-staging.tryprism.com/media/profiles/avatars/2017/09/12/7b413b9c-36c.jpg")!
自定义质量
// Extension
let customQualityTest: URL = url.prismURL(quality: .custom(quality: 35))!
print("Custom Quality URL Test: \(customQualityTest)")
// Object Set
let customQualityTest: URL = Prism(baseURL: url).setQuality(.custom(quality: 35)).build()!
print("Custom Quality URL Test: \(customQualityTest)")
低质量
// Extension
let lowQualityTest: URL = url.prismURL(quality: .low)!
print("Low Quality URL Test: \(lowQualityTest)")
// Object Set
let lowQualityTest: URL = Prism(baseURL: url).setQuality(.low).build()!
print("Low Quality URL Test: \(lowQualityTest)")
带大小质量
// Extension
let qualityWithSizeTest: URL = url.prismURL(quality: .none, expectedSize: CGSize(width: 30, height: 30))!
print("Size URL Test: \(qualityWithSizeTest)")
// Object Set
let qualityWithSizeTest: URL = Prism(baseURL: url).setQuality(.none).setExpectedSize(CGSize(width: 30, height: 30)).build()!
print("Size URL Test: \(qualityWithSizeTest)")
带大小命令
// Extension
let commandFitTest: URL = url.prismURL(quality: .none, expectedSize: CGSize(width: 150, height: 180),
resizeMode: .fit)!
print("Command Fit URL Test: \(commandFitTest)")
// Object Set
let commandFitTest: URL = Prism(baseURL: url)
.setQuality(.none)
.setExpectedSize(CGSize(width: 150, height: 180))
.setResizeMode(.fit).build()!
print("Command Fit URL Test: \(commandFitTest)")
输出 Png
// Extension
let outputTest: URL = url.prismURL(quality: .none, expectedSize: CGSize(width: 40, height: 40), imageType: .png)!
print("Output URL Test: \(outputTest)")
// Object Set
let outputTest: URL = Prism(baseURL: url)
.setQuality(.none)
.setExpectedSize(CGSize(width: 40, height: 40))
.setImageType(.png).build()!
print("Output URL Test: \(outputTest)")