如何让电脑屏幕实现类似于哈哈镜的效果,就是让屏幕以不同的方式扭曲,大家提供点思路啊
怎么让电脑屏幕实现类似于哈哈镜的效果,就是让屏幕以不同的方式扭曲,大家提供点思路啊。。。
怎么让电脑屏幕实现类似于哈哈镜的效果,
就是让屏幕以不同的方式扭曲,像photoshop里的滤镜一样。
我是这样想的先截取当前屏幕,再画到屏幕上。
可这样的话画到屏幕上时会覆盖掉鼠标指针。
重画鼠标会很闪,还有扭曲图像的算法谁有。
能否给我发一份谢谢。。
大家提供点思路啊。。。
lglall@163.com
------解决方案--------------------
电脑屏幕是显示器硬件来控制的,软件能实现吗?
------解决方案--------------------
拿个哈哈镜放屏幕前面.
------解决方案--------------------
应该很容易实现吧,
首先读取屏幕的图片信息,
然后采用一种图像的变换算法,例如简单的百叶窗. (老兄想做屏保啊?)
最后将新生成的图片显示出来.
------解决方案--------------------
思路是写一个虚拟的显卡驱动程序,它钩住当前的显卡驱动并且修改它的缓冲区内容。然后想办法让用户选择你的显卡驱动
------解决方案--------------------
然后采用一种图像的变换算法,例如简单的百叶窗. (老兄想做屏保啊?)
这个图像变换算法完全可以书上找到。
多动手找找。
上面的思路感觉还是这个可行。
------解决方案--------------------
就是个逆运算而已,假设你的扭曲函数是F
(X',Y') = F(X, Y)
求F的逆运算F'
(X, Y) = F'(X', Y')
目图形中的某点X',Y'通过F',就可以查找到原图象中的X、Y
将目的图形中的所有点通过这个运算映射到源图形,就可以复制整张图片
举例:
以正弦波浪方式扭曲的图象
F
X' = X
Y' = Y + sina(X)
F'
X = X'
Y = Y' - sin(X)
根据上面的方法就可画出扭曲的图形了
------解决方案--------------------
其实只需要模拟实际的哈哈镜原理就行了,不过具体算法应该做一些优化。大概应该就是模拟生成一个不规则的透镜,然后根据透镜的光学特性进行光线的路径计算,最后合成画面就行,实现时使用反向追踪可能会效率更高。
------解决方案--------------------
转换肯定不能直接操作DDB位图,效率太低了
可以用DIB位图,直接对图象数据进行操作
转换完毕之后再加载到DC中
------解决方案--------------------
图像处理中的变换操作
------解决方案--------------------
椭圆方程:
x^2/a^2+y^2/b^2=1
------解决方案--------------------
楼主把方法公布出来啊~
怎么让电脑屏幕实现类似于哈哈镜的效果,
就是让屏幕以不同的方式扭曲,像photoshop里的滤镜一样。
我是这样想的先截取当前屏幕,再画到屏幕上。
可这样的话画到屏幕上时会覆盖掉鼠标指针。
重画鼠标会很闪,还有扭曲图像的算法谁有。
能否给我发一份谢谢。。
大家提供点思路啊。。。
lglall@163.com
------解决方案--------------------
电脑屏幕是显示器硬件来控制的,软件能实现吗?
------解决方案--------------------
拿个哈哈镜放屏幕前面.
------解决方案--------------------
应该很容易实现吧,
首先读取屏幕的图片信息,
然后采用一种图像的变换算法,例如简单的百叶窗. (老兄想做屏保啊?)
最后将新生成的图片显示出来.
------解决方案--------------------
思路是写一个虚拟的显卡驱动程序,它钩住当前的显卡驱动并且修改它的缓冲区内容。然后想办法让用户选择你的显卡驱动
------解决方案--------------------
然后采用一种图像的变换算法,例如简单的百叶窗. (老兄想做屏保啊?)
这个图像变换算法完全可以书上找到。
多动手找找。
上面的思路感觉还是这个可行。
------解决方案--------------------
就是个逆运算而已,假设你的扭曲函数是F
(X',Y') = F(X, Y)
求F的逆运算F'
(X, Y) = F'(X', Y')
目图形中的某点X',Y'通过F',就可以查找到原图象中的X、Y
将目的图形中的所有点通过这个运算映射到源图形,就可以复制整张图片
举例:
以正弦波浪方式扭曲的图象
F
X' = X
Y' = Y + sina(X)
F'
X = X'
Y = Y' - sin(X)
根据上面的方法就可画出扭曲的图形了
------解决方案--------------------
其实只需要模拟实际的哈哈镜原理就行了,不过具体算法应该做一些优化。大概应该就是模拟生成一个不规则的透镜,然后根据透镜的光学特性进行光线的路径计算,最后合成画面就行,实现时使用反向追踪可能会效率更高。
------解决方案--------------------
转换肯定不能直接操作DDB位图,效率太低了
可以用DIB位图,直接对图象数据进行操作
转换完毕之后再加载到DC中
------解决方案--------------------
图像处理中的变换操作
------解决方案--------------------
椭圆方程:
x^2/a^2+y^2/b^2=1
------解决方案--------------------
楼主把方法公布出来啊~