gpt4 book ai didi

ios - 以编程方式创建通用矢量图像

转载 作者:行者123 更新时间:2023-11-28 06:52:14 25 4
gpt4 key购买 nike

我们现在可以在 Xcode 中创建通用矢量图像,方法是将它们添加到图像 Assets 文件夹中,然后将比例因子更改为单个矢量。我想知道如何以编程方式执行此操作。我尝试了以下但没有运气:(

func resizeImage(image: UIImage, newSize: CGSize) -> (UIImage) {
let newRect = CGRectIntegral(CGRectMake(0,0, newSize.width, newSize.height))
let imageRef = image.CGImage

let scaleFactor = UIScreen.mainScreen().scale

UIGraphicsBeginImageContextWithOptions(newSize, false, scaleFactor)

// UIGraphicsBeginImageContextWithOptions(newSize, false, 0.5)
let context = UIGraphicsGetCurrentContext()

// Set the quality level to use when rescaling

CGContextSetInterpolationQuality(context, CGInterpolationQuality.High)


let flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, newSize.height)

CGContextConcatCTM(context, flipVertical)
// Draw into the context; this scales the image
CGContextDrawImage(context, newRect, imageRef)

let newImageRef = CGBitmapContextCreateImage(context)! as CGImage
let newImage = UIImage(CGImage: newImageRef)

// Get the resized image from the context and a UIImage
UIGraphicsEndImageContext()

return newImage

}

最佳答案

这应该可以做到。是的......Apple 通过勾选保留矢量数据来将其设置在 Storyboard 中。我不确定如何以编程方式保存矢量数据。

    public class var add: UIImage {
let path = bundle.url(forResource: "plusReal", withExtension: "pdf")
return drawPDFFromURL(url: path!)!
}

class func drawPDFFromURL(url: URL) -> UIImage? {
guard let document = CGPDFDocument(url as CFURL),
let page = document.page(at: 1) else {return nil }
let pageRect = page.getBoxRect(.mediaBox)
let renderer = UIGraphicsImageRenderer(size: pageRect.size)

let img = renderer.image { ctx in
UIColor.white.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(page)
}
return img
}

关于ios - 以编程方式创建通用矢量图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34576775/

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