- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在开发壁纸应用程序。墙纸根据用户的指定每隔几分钟更换一次。
我想要的功能是在淡出旧图像的同时淡入新图像。如果每 X 分钟更换一次墙纸,任何拥有 Mac 的人都可能会看到我想要的行为。
我目前关于如何处理这个问题的想法是拍摄两张图片并将一张叠加在另一张上并改变不透明度。旧图像从 90% 开始,新图像从 10% 开始。然后我会将旧图像减少 10% 直到它是 0%,同时将新图像增加 10% 直到 90%。然后我会将墙纸设置为新图像。
为了让它看起来像一个平滑的过渡,我会在开始这个过程之前创建过渡壁纸,而不是实时进行。
我的问题是,是否有更有效的方法来做到这一点?
我可以想到一些优化,例如以较低质量保存过渡图像。
有什么方法可以比我描述的更有效吗?
最佳答案
听起来像是一个权衡问题。
这取决于重点:
渲染速度将成为一个问题,即混合图像的过程需要多长时间才能渲染成屏幕可绘制图像。如果混合过程花费的时间太长(因为与常规不透明绘制操作相比,透明效果可能需要很长时间),那么预渲染过渡可能是一个不错的方法。
当然,预渲染意味着内存或磁盘存储中将有多个图像必须保留。这将意味着将需要更多资源来临时存储过渡效果。如果资源稀缺,那么即时进行转换可能更可取。此外,如果图像在磁盘上,由于主内存之外的数据 I/O 速度较慢,性能将会受到影响。
关于“以较低质量保存过渡图像”的问题——“较低质量”是什么意思?你的意思是压缩图像?或者,你的意思是图像较小?我可以看出每种方法的优缺点。
压缩图片
使用较小的图片
最后,有一点需要考虑——实时渲染过渡真的不够快吗?
实际上渲染可能不会花费太长时间,而这可能全部都是premature optimization。 .
在没有任何优化的情况下制作原型(prototype)可能值得一试,看看是否真的有必要预渲染过渡。 Profile流程的每个步骤,以查看哪些内容需要时间。
如果即时渲染的性能不尽如人意,请权衡每种预渲染方法的优缺点,然后选择效果最好的一种。
关于c# - 在两个图像之间转换的最有效方法是什么(如 Mac 墙纸更改),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/792050/
我已经编写了自己的 ImageViewer,现在我想像 Android 原生 ImageViewer 一样具有设置为功能。我现在有可能,因为 Facebook 拥有它。我附上了截图以使自己更清楚。 附
在 iOS 7 中,我注意到在翻转模态视图转换期间,我现在可以看到我为转换期间的短暂时刻设置的墙纸,而不是看到“黑色”或深色背景,任何人都知道我是如何做到的可以回到黑色背景吗? 谢谢,约翰 最佳答案
我想知道是否可以在播放音乐时更改 iPhone 锁定屏幕上的墙纸。我想做的正是音乐应用程序所做的。我以为这是一个封闭的 API,但我发现 Spotify 应用程序也是如此! 我正在 .plist 中寻
我正尝试在 WORKGROUP 环境中远程更改大约 50 台运行 Win 7 的计算机上的墙纸。 我对他们所有人都有本地管理员权限,而且他们正在运行一个代理 (Faronics),让我可以远程将 .b
我有一个应用程序,它可以受益于用户能够选择将图像设置为墙纸(“滑动解锁”屏幕上的背景图像)。 非越狱的第三方应用有办法做到这一点吗?在 iPhone 文档中搜索“墙纸”不会返回任何结果。 最佳答案 当
最后,我启动了一项服务,我想调用该服务并更改我手机的壁纸。 在 mainActivity java 文件中我可以写 > DisplayMetrics metrics = new DisplayMetr
我在学校看到有人有一个程序,本来应该改变背景,然后注销你(这样改变才会生效),但它只在他的电脑上有效,他“丢失”了源代码。我一直在网上寻找可以执行此操作的代码,因此我可以对其进行试验。 我找到了这段代
有没有办法使用 .NET 4 中的一些新功能来更改 Windows 壁纸? 最佳答案 您可以使用 SystemParametersInfo设置桌面墙纸。这应该在您的应用程序可以运行的所有 Window
以下代码适用于 Windows 8.1(已测试)但不适用于 Windows 7。 std::wstring loc = L"C:\\Users\User\\Desktop\\wallpaper.jpg
我是一名优秀的程序员,十分优秀!