Operating system 如何读取像jpg这样的图像文件并在屏幕上逐像素显示?

Operating system 如何读取像jpg这样的图像文件并在屏幕上逐像素显示?,operating-system,pixel,vga,Operating System,Pixel,Vga,我正在做自己的操作系统(从头开始),它不基于任何预先存在的内核或操作系统。所以我知道屏幕分为80*25,我知道通常0xB8000可以保存0xB8001中字符的属性,我只知道那么多 但是如何在屏幕上逐像素显示图像呢?如何寻址每个像素并发送数据(颜色) 目前我正在使用0xB8000在屏幕上打印文本。那么,如果我寻址0xB8000,我是在寻址一个像素吗? 在这方面我一点也不清楚。所以请帮忙 请注意,我没有使用任何图形库,也不能使用任何图形库,因为我正在从头开始构建自己的操作系统 我想在C中这样做,尽管

我正在做自己的操作系统(从头开始),它不基于任何预先存在的内核或操作系统。所以我知道屏幕分为80*25,我知道通常0xB8000可以保存0xB8001中字符的属性,我只知道那么多

但是如何在屏幕上逐像素显示图像呢?如何寻址每个像素并发送数据(颜色)

目前我正在使用0xB8000在屏幕上打印文本。那么,如果我寻址0xB8000,我是在寻址一个像素吗? 在这方面我一点也不清楚。所以请帮忙

请注意,我没有使用任何图形库,也不能使用任何图形库,因为我正在从头开始构建自己的操作系统

我想在C中这样做,尽管我知道汇编是所谓的“文本模式”,即内存中的一个字节对应于监视器上的一个字符。您通常将视频适配器切换到“图形模式”,这样您就有了像素空间

您可以从这里开始阅读:。

80x25是所谓的“文本模式”,即内存中的一个字节对应于监视器上的一个字符。您通常将视频适配器切换到“图形模式”,这样您就有了像素空间


您可以从这里开始阅读:。

谢谢。那么如何从文本模式切换到图形模式呢?如何寻址每个像素或每个内存位置?在使用BIOS的实模式下,您可以通过中断
10h
来实现。对不起,随着时间的推移,细节逐渐淡出。再见,谢谢你,先生。但是我怎么能不调用interrupt 10h呢?因为为每个显示像素调用int10h可能不太合适。阅读图形模式,您可以访问特定内存位置的所有像素。谢谢先生。但有人请告诉我如何读取jpg或这样的图像文件来显示它?数据是如何存储的?颜色是十六进制的吗?谢谢。那么如何从文本模式切换到图形模式呢?如何寻址每个像素或每个内存位置?在使用BIOS的实模式下,您可以通过中断
10h
来实现。对不起,随着时间的推移,细节逐渐淡出。再见,谢谢你,先生。但是我怎么能不调用interrupt 10h呢?因为为每个显示像素调用int10h可能不太合适。阅读图形模式,您可以访问特定内存位置的所有像素。谢谢先生。但有人请告诉我如何读取jpg或这样的图像文件来显示它?数据是如何存储的?颜色是十六进制的吗?