将 UIImage 大小与 pdf 大小匹配
Posted
技术标签:
【中文标题】将 UIImage 大小与 pdf 大小匹配【英文标题】:Match UIImage size with pdf size 【发布时间】:2017-01-12 09:51:55 【问题描述】:在我的应用程序中,我正在捕获 UIView 的屏幕截图,然后将该图像设置为 pdf,但图像和 pdf 框架的尺寸不同。我的图像很小,所以在将它写在 pdf 上时它会拉伸并缩小。
这是我的代码:
func drawOnPDF(path: String)
// Get existing Pdf reference
let pdf = CGPDFDocument(NSURL(fileURLWithPath: path))
// Get page count of pdf, so we can loop through pages and draw them accordingly
let pageCount = pdf!.numberOfPages;
// Write to file
UIGraphicsBeginPDFContextToFile(path, CGRect.zero, nil)
// Write to data
//var data = NSMutableData()
//UIGraphicsBeginPDFContextToData(data, CGRectZero, nil)
for index in 1...pageCount
let page = pdf!.page(at: index)
// let pageFrame = CGPDFPageGetBoxRect(page, kCGPDFMediaBox)
let pageFrame = page?.getBoxRect(.mediaBox)
page?.getBoxRect(.mediaBox)
print(pageFrame)
print(img.size)
UIGraphicsBeginPDFPageWithInfo(pageFrame!, nil)
let ctx = UIGraphicsGetCurrentContext()
// Draw existing page
ctx!.saveGState();
ctx!.scaleBy(x: 1, y: -1);
ctx!.translateBy(x: 0, y: -(pageFrame?.size.height)!);
ctx!.drawPDFPage(page!);
ctx!.restoreGState();
// Draw image on top of page
print(index)
print(visibleIndexPath.row)
if (index == visibleIndexPath.row + 1)
img.draw(in: pageFrame!)
UIGraphicsEndPDFContext()
现在我在这里获取图像大小(319.0、339.0) 而pdf页框大小为(0.0, 0.0, 612.0, 792.0)
那么如何在 ios swift 中将两者设置为相同。
【问题讨论】:
【参考方案1】:之后
ctx!.scaleBy(x: 1, y: -1);
context.scaleBy(x: 319.0/612.0, y: 339.0/792.0))
根据图像大小缩放您的内容,它会适合。
.mediaBox 是一个表示固定大小的枚举
您可以使用--->(如下)获取图像大小
yourimg.size.width 和 yourimg.size.height
【讨论】:
什么是上下文?在哪里定义它?它向我展示了使用 unresolve identifier context context 是 ctx 在你的情况下对不起我的错以上是关于将 UIImage 大小与 pdf 大小匹配的主要内容,如果未能解决你的问题,请参考以下文章
UIImage 未根据 UIImageView 大小宽度和高度调整大小
更改 UIImageView 大小以匹配图像与 AutoLayout