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

发布于 2024-12-26 13:26:25 字数 359 浏览 0 评论 0原文

我正在做我自己的操作系统(从头开始)它不基于任何预先存在的内核或操作系统。所以我知道屏幕分为 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

金橙橙 2025-01-02 13:26:25

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文