我现在把framebuffer设置为1280X720,
然后我在写buffer的时候,写进去的是一张:720X480的图片
这样的画这个图片只会显示在左上脚,我要如何设置才能让这个图片全屏显示?谢谢...
而且我这个1280X720这个大小不能改的.也就是如何让小的图片在这个大的区域里全屏显示.
图片拉伸处理需要自己在写缓冲的时候控制啊。不可以让framebuffer自动控制啊,这样实现的话,那就麻烦了。假若我一些localui的图片都是720X480,现在由于其他的需要需要把framebuffer增加到1280X720,如果要自己来拉伸,那么这样对这些local ui的处理就麻烦了。
framebuffer是和显示驱动直接相关的,分辨率定了,framebuffer就定了。要实现你说的功能,要么是动态修改显示分辨率(同时framebuffer大小也相应就变化了);要么是修改显示图片的大小。你说显示分辨率不允许动态改变,那肯定只能动图片了。比较方便的办法是批处理转换你的local UI 图片,然后重新存储。假设你的系统可能经常需要在两个分辨率之间转换,你可以定义一个宏或者判断函数,不同的分辨率底下调用不同的图片。
你自己的应用程序可以用StretchBlt。另外有些LCD controller硬件支持缩放的。
因为framebuffer的应用是microwin,所以microwin转换成一些图片的数据去显示,而且这些图片也相对比较复杂,我在考虑看看怎么处理。也许可以在传给framebuffer之前作一下映射转换。。。