- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 View ,里面有多个 View ,还有一个图像演示(又名“封面流”)......而且我需要以编程方式制作屏幕截图!
因为文档说“renderInContext:”不会渲染 3d 动画:
“重要此方法的 Mac OS X v10.5 实现不支持整个 Core Animation 合成模型。QCCompositionLayer、CAOpenGLLayer 和 QTMovieLayer 图层不会渲染。此外,不会渲染使用 3D 变换的图层,也不会渲染指定背景过滤器、过滤器、合成过滤器或 mask 值的图层。Mac OS X 的 future 版本可能会添加对渲染这些图层和属性的支持。”
我搜索了很多,我的“最佳”解决方案(一点也不好)是创建我自己的CGContext并将所有CG动画记录到其中。但我真的不想这样做,因为我需要重新编写大部分动画代码,这对内存来说非常昂贵......我找到了其他解决方案(其中一些是不可修改的),例如使用 openGL 或通过捕获AVSessions,但没有人可以帮助我...
我有什么选择?有这个问题吗?
感谢您的宝贵时间!
最佳答案
你真的尝试过吗?我目前正在开发一个具有多个 3D 变换的项目,当我尝试以编程方式制作此屏幕截图时,它工作得很好:)这是我使用的代码:
-(UIImage *)getScreenshot
{
CGFloat scale = 1.0;
if([[UIScreen mainScreen]respondsToSelector:@selector(scale)])
{
CGFloat tmp = [[UIScreen mainScreen]scale];
if (tmp > 1.5)
{
scale = 2.0;
}
}
if(scale > 1.5)
{
UIGraphicsBeginImageContextWithOptions(self.frame.size, NO, scale);
}
else
{
UIGraphicsBeginImageContext(self.frame.size);
}
//SELF HERE IS A UIVIEW
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return screenshot;
}
关于graphics - "renderInContext:"和 CATransform3D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9530250/
在使用“ObjectAlloc”在仪器中进行调试时,我注意到为 renderInContext 调用分配了 7meg 内存,但它从未被释放。当我注释掉 renderInContext 调用时,这种情况
我正在尝试在我的 iOS 设备上为某个应用程序保存当前显示的 View ,并且这工作正常。但是,当我尝试以横向保存 UIImageView 时,我遇到了问题。 请参阅描述我的问题的下图: 我正在为这个
我有个问题。当我在 iPad 中使用“renderInContext”时,使用的内存永远不会释放并累积,直到应用程序以“内存警告”级别 = 1 和级别 = 2 关闭 我的代码: CGRect medi
我正在从 webview 渲染图像。所以 renderIncontext 方法在 for 循环中调用了 50 多次。在 20 或 30 次后,我的应用程序因更多内存消耗而崩溃。 我使用了这段代码: U
我在 2448 X 2448 像素的图像上运行此代码。 fullScaleView 也是 2448 X 2448(fullScreenView Rect:{{0, 0}, {2448, 2448}})
背景 我正在使用来自 Chapter 8, Example 14 — Resize and Rotate 的 Erica Saduns Cookbook 示例显然可以调整和旋转 UIImageView
我用 CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity; rotationAndPerspectiveTran
我正在渲染多个图层以获得一张最终图像。其中一张图片包含一张脸,另一张图片包含背景,脸部周围有透明渐变,因此隐藏了真实背景。在 iOS6 中它工作得很好,但它在 iOS7 中使用透明渐变创建了一个奇怪的
我可以使用以下代码从核心动画层创建 UIImage: - (UIImage*)contentsImage; { UIGraphicsBeginImageContext([self bounds]
我有一个 View ,里面有多个 View ,还有一个图像演示(又名“封面流”)......而且我需要以编程方式制作屏幕截图! 因为文档说“renderInContext:”不会渲染 3d 动画: “
我有一个相当大的CAShapeLayer我正在渲染。该层是完全静态的,但它包含在 UIScrollView 中所以它可以移动和缩放——基本上,它必须时不时地重新绘制。为了提高滚动的帧率,我设置了 sh
此代码有效: UIGraphicsBeginImageContextWithOptions(aRect.size, NO, 0.0); [self.view drawViewHierarchyInRe
我用这段代码做了截图, CGFloat breed = 768; CGFloat hoogte = 975; CGSize afmeting = CGSizeMake(breed, hoogte);
我正在通过截取 UIView 的屏幕截图来创建 PDF,目前这在配备视网膜显示屏的 iPad3 上运行良好,但在具有较低分辨率屏幕的其他设备上进行测试时,我遇到了文本分辨率问题。 这是我的代码:
我有一个在循环中调用的方法,看起来像这样: NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; UIImageView *backg
我正在使用在主线程上执行的以下代码来截取 屏幕外(不是 self.view 的 subview ) View ,然后显示在 中UIImageView。就功能而言,一切正常,但是由于此代码在扩展上运行,
我手动创建了一个 CGBitmapContext: bitmapContext = CGBitmapContextCreate( myImageData, width, height, 8, 4 *
我正在使用此代码从 View 中渲染图像。然后我将其保存到相册中。图像模糊?为什么?有解决办法吗? UIGraphicsBeginImageContext(self.view.bounds.size)
CALayer -drawInContext: 和 -renderInContext: 有什么区别? 最佳答案 当提供自定义 Quartz 绘制内容以在 CALayer 中显示时,您可以覆盖 -dra
在浏览了关于 SO 的所有相关问题后,我了解到 drawViewHierarchyInRect 应该比 renderInContext 快得多,但这不是我所看到的。 这是我的带有时间分析的快照功能:
我是一名优秀的程序员,十分优秀!