【发布时间】:2019-03-04 05:31:23
【问题描述】:
我想制作自己的图像格式和一个库来读取它。
我多次尝试从人们那里获取这些信息,他们都说“去研究现有的图形 SDK 之一”,我照做了,但它什么也没教我,它只是教我如何使用 Open GL。 .这不是我想要的。我想知道程序打开图像时发生的内部工作,因此我可以在自己的库中手动处理此操作。
我研究过多种图像格式,我知道它们中的信息是如何构造的,但是程序打开它们后,它必须知道如何将它们转换为RGBA数组,对吗?我想这就是图形库的用武之地?
图形库是关于如何将图像读取为我假设的十六进制颜色数组的指令列表?所以我真的有 3 个问题,我希望我能说清楚:
1:当一个程序呈现一个图像文件时会发生什么?例如,它是否会查找具有该文件扩展名的图形库作为其名称(以及在哪里?),然后阅读将其转换为颜色值列表的规则?还是直接转成机器码存入内存?
2:如果我编写了这些图形库之一,我将如何确保程序可以找到它?通常(以图像编辑器或游戏引擎或 Windows 图片预览等为例)程序是否会自动查看新的图像库,或者我是否需要修改程序才能知道它存在? (这个答案会让我知道会有多麻烦)
3:是否有某种标准数据格式可供所有图形应用程序存储图像颜色数据?
【问题讨论】:
-
应用程序通常有一组他们可以读取的已定义图像格式。对于这些,他们要么使用库(它们随应用程序一起提供并提前链接),要么编写一些自定义代码。这些库的外观很大程度上取决于图像格式支持的内容。一种常见的方法是有一个函数,它接受一个路径并返回一个像素值数组。
标签: graphics