【问题标题】:How can I show image in laptop screen, with appropriate image rotation and perspective?如何通过适当的图像旋转和透视在笔记本电脑屏幕上显示图像?
【发布时间】:2014-11-06 15:50:42
【问题描述】:

我这两天一直在网上搜索,我在网上查了很多源代码,但没有一个提供我想要的结果。

图像旋转会有透视,但图像左右两侧的高度仍然没有变化。

我想在笔记本电脑屏幕内设置图像

请帮帮我,谢谢。

【问题讨论】:

  • 也许我不理解你的问题,但这不是一个“丑陋”的要求吗?我假设您正在谈论的是 3D 透视图。如果您在二维屏幕上,则必须更改宽度和高度才能创建深度场。

标签: ios objective-c iphone uiimageview uiimage


【解决方案1】:

因此,您想要对笔记本电脑屏幕(在 iOS 设备上?)进行 2D 透视图并在该屏幕上放置 2D 图像,但图像经过变换后,其透视图在笔记本电脑屏幕上看起来是正确的,对吧?

您需要做的是在您的笔记本电脑图像视图之上添加一个图像视图。让我们称它为 laptopScreenImageView。

然后将 CATransform3D 应用于laptopScreenImageView 的图层。

从 CALayer 中获得 3D 透视图的技巧是修改变换的 .m34 值。通常,您将 .m34 值设置为一个非常小的负数,大约在 -1/200 到 -1/500 之间(分数中的分母是用于查看透视图像的“眼睛位置”的 z 坐标,以像素为单位,或者查看者的眼睛看起来应该在图像“上方”多少像素。老实说,我并不完全理解。我摆弄 .m34 值,直到我得到看起来正确的东西。)

或者,您可以尝试将 CATransformLayer 添加到笔记本电脑图像视图的图层,然后添加包含您的图像的 CALayer 作为 CATransformLayer 的子图层。我之前没有使用过CATransformLayers,但是文档说它们应该支持具有 3D 透视图的图层,从而为您提供与修改图层变换的 .m34 组件相同的效果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    • 2017-10-29
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多