gpt4 book ai didi

ios - 是否可以使用 PDF 远程数据初始化 UIImage?

转载 作者:行者123 更新时间:2023-11-28 13:36:01 25 4
gpt4 key购买 nike

根据 UIImage.init(with: Data) 的文档和数据参数:

The data in the data parameter must be formatted to match the file format of one of the system’s supported image types.

我假设在将 PDF 数据传递给此 init 时可以初始化 UIImage(因为 iOS 支持 PDF 矢量 Assets )但不幸的是我从 nil这个初始化。我是不是做错了什么或者无法将 PDF 用作远程 Assets ?

我本地没有这个PDF数据,是从后台获取的。

最佳答案

使用 jake 的响应,我找到了实现我需要的方法,只需将数据作为参数传递,而不是像 jake 的答案那样传递 url。

UIImage 的完整扩展:

import UIKit
import PDFKit
import CoreGraphics

extension UIImage {
public static func fromPDF(data: Data) -> UIImage? {
guard
let pdf = PDFDocument(data: data),
let pdfPage = pdf.page(at: 0),
let pageRef = pdfPage.pageRef
else { return nil }

let pageRect = pageRef.getBoxRect(.mediaBox)
let renderer = UIGraphicsImageRenderer(size: pageRect.size)
let img = renderer.image { ctx in
UIColor.clear.set()
ctx.fill(pageRect)

ctx.cgContext.translateBy(x: 0.0, y: pageRect.size.height)
ctx.cgContext.scaleBy(x: 1.0, y: -1.0)

ctx.cgContext.drawPDFPage(pageRef)
}
return img
}
}

关于ios - 是否可以使用 PDF 远程数据初始化 UIImage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56617800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com