【问题标题】:Automatically add Image frame to taken screenshot自动将图像帧添加到截取的屏幕截图中
【发布时间】:2014-05-13 11:40:00
【问题描述】:

我想在截取的屏幕截图中自动添加图像框。这是我用来截屏的代码。有什么想法可以将此图像放在截取的屏幕截图周围?

为了完整起见:我希望用户可以选择在 Twitter 或 Facebook 上与它的框架分享这个漂亮的屏幕截图。

顺便说一句:这是我作为程序员的第一个应用程序,所以请给我完整的解决方案或教程……

截图:http://techstern.de/app/screenshot1.png
我想放在它周围的框架:http://oi45.tinypic.com/2qvv2tv.jpg
原型:访问http://i.stack.imgur.com/hg1nW.png

代码

- (UIImage *)screenshot
{
    UIGraphicsBeginImageContext(self.view.frame.size);
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}

*因为我刚刚注册,所以我不能在这篇文章中添加超过 2 个链接。

【问题讨论】:

  • 看看如何合并图片。
  • GPU Image 是你的朋友 (GPUImageMaskFilter)。 GPUImage 使用起来非常简单,因此您不需要任何教程等。
  • 我知道,这可能不是最好的解决方案,但它是最简单的:在渲染实际图层之前,只需在当前上下文中渲染 UIImage
  • 你能给我详细解释一下吗?这是我有史以来的第一个应用程序......您忠实的

标签: ios screenshot frame layer


【解决方案1】:

我在 cmets 中提出的解决方案。

- (UIImage *)screenShot {
    UIImage *frame = [UIImage imageNamed:@"frame"];

    UIGraphicsBeginImageContext(frame.size);
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    [frame drawAtPoint:CGPointZero blendMode:kCGBlendModeOverlay alpha:1.0];

    CGContextTranslateCTM(ctx, xCordinateOfScreenshotInFrame, yCordinateOfScreenshotInFrame);
    [self.view.layer renderInContext:ctx];

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return image;
}

【讨论】:

  • 看起来不错,但不幸的是不起作用。 Xcode 说有 2 个错误:techstern.de/app/screenshot_error.png
  • 再看一下代码,你一定是复制了旧版本。
  • 是的,只有一行代码,但变化不大:techstern.de/app/screenshot_error2.png
  • 用真实值替换变量,我不会为你做任何事情。我提供了一个解决方案,但您必须对其进行调整以适应您的具体问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-13
  • 1970-01-01
  • 2011-06-12
相关资源
最近更新 更多