如何读取像jpg这样的图像文件并将其逐像素显示在屏幕上?
我正在做我自己的操作系统(从头开始)它不基于任何预先存在的内核或操作系统。所以我知道屏幕分为 80*25 并且我知道通常就像 0xB8000 可以保存 0xB8001 中的字符属性,我只知道这么多。
但是如何在屏幕上逐像素地显示图像呢?我如何寻址每个像素并发送数据(颜色)?
目前我正在使用 0xB8000 在屏幕上打印文本。那么如果我寻址 0xB8000 我是否寻址一个像素? 我在这方面完全不清楚。所以请帮忙。
请注意,我没有使用也不能使用任何图形库,因为我正在从头开始构建自己的操作系统。
即使我知道汇编,我也想用 C 来做这件事
I am doing my own OS(from scratch) which is not based on any pre-existing kernels or OS. So i know screen is divided into 80*25 and i know that usually it is like 0xB8000 can hold a attributes of character in 0xB8001 and i know only that much.
But how to display an image on screen pixel by pixel? how do i address each pixel and send the data(colour)?
Currently i am printing text on screen using 0xB8000. so if i address 0xB8000 am i adressing a pixel?
I am not at all clear in this aspect. so pls help.
please note that i am not using and i can't use any graphic libraries or so because i'm building my own OS from scratch.
I want to do this in C even though i know assembly
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
80x25就是所谓的“文本模式”,即内存中的一个字节对应于显示器上的一个字符。您通常将视频适配器切换到“图形模式”并且您有像素空间。
您可以从这里开始阅读:CGA - 标准文本模式。
80x25 is so called "text mode", that is a byte in memory corresponds to a character on the monitor. You normally switch video adapter into "graphics mode" and you have pixel space.
You can start your reading from here: CGA - Standard Text Modes.