将两个 imageView 合并为一个并保存 iOS swift
Merge two imageViews into one and save iOS swift
我有 2 个 imageView,如下所示。 (ScrollView 有 imageView 的子视图)
我想把每一张都拍下来合并成一张
我尝试使用截图和裁剪。但是当涉及到不同的 iphone 屏幕尺寸和分辨率时,它就不能正常工作了。
谁能指导我怎么做?
为什么不将它们都添加到一个 UIView 中呢?
也可以向图像视图添加子视图并扩展框架。
[secondImageView setFrame:CGRectMake(x,y + newImageHeight,width,height)];
[self.myImageView setFrame:CGRectMake(x,y,width,height + newImageHeight)];
[self.myImageView addSubview:secondImageView];
我觉得你的方法是对的,用这个方法也可以很容易的解决尺度问题
func mergeScreenshot() {
let layer = UIApplication.sharedApplication().keyWindow.layer
let scale = UIScreen.mainScreen().scale
UIGraphicsBeginImageContextWithOptions(layer.frame.size, false, scale); // reconsider size property for your screenshot
layer.renderInContext(UIGraphicsGetCurrentContext())
let screenshot = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
UIImageWriteToSavedPhotosAlbum(screenshot, nil, nil, nil)
}
但是你应该重新编辑尺码。例如,如果您使用的是自动布局,则可以创建 IBOutlet
并使用它代替我使用的 layer.frame.size
属性。
希望对您有所帮助。
我有 2 个 imageView,如下所示。 (ScrollView 有 imageView 的子视图)
我想把每一张都拍下来合并成一张
我尝试使用截图和裁剪。但是当涉及到不同的 iphone 屏幕尺寸和分辨率时,它就不能正常工作了。
谁能指导我怎么做?
为什么不将它们都添加到一个 UIView 中呢?
也可以向图像视图添加子视图并扩展框架。
[secondImageView setFrame:CGRectMake(x,y + newImageHeight,width,height)];
[self.myImageView setFrame:CGRectMake(x,y,width,height + newImageHeight)];
[self.myImageView addSubview:secondImageView];
我觉得你的方法是对的,用这个方法也可以很容易的解决尺度问题
func mergeScreenshot() {
let layer = UIApplication.sharedApplication().keyWindow.layer
let scale = UIScreen.mainScreen().scale
UIGraphicsBeginImageContextWithOptions(layer.frame.size, false, scale); // reconsider size property for your screenshot
layer.renderInContext(UIGraphicsGetCurrentContext())
let screenshot = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
UIImageWriteToSavedPhotosAlbum(screenshot, nil, nil, nil)
}
但是你应该重新编辑尺码。例如,如果您使用的是自动布局,则可以创建 IBOutlet
并使用它代替我使用的 layer.frame.size
属性。
希望对您有所帮助。