Main Content

imformats

管理图像文件格式注册表

说明

imformats 显示一个信息表,其中列出了 MATLAB® 文件格式注册表中的所有值。此注册表确定 imfinfoimreadimwrite 函数支持哪些文件格式。

示例

formatStruct = imformats(fmt) 在 MATLAB 文件格式注册表的已知格式中搜索与 fmt 指定的文件名扩展名关联的格式。如果找到,则 formatStruct 为一个包含与该格式关联的特征和函数名称的结构体。否则,formatStruct 是一个空结构体。

registry = imformats 返回一个结构体数组 registry,其中包含 MATLAB 文件格式注册表中的所有值。

registry = imformats(formatStruct) 将当前 MATLAB 会话的 MATLAB 文件格式注册表设置为 formatStruct 中的值。输出结构体 registry 包含新注册表设置。使用此语法替换图像文件格式支持。

未正确使用 imformats 指定 MATLAB 文件格式注册表中的值可能导致无法加载任何图像文件。要使文件格式注册表恢复为工作状态,请将 imformats'factory' 输入结合使用。

示例

registry = imformats('add',formatStruct)formatStruct 中的值添加到文件格式注册表。使用此语法添加图像文件格式支持。

示例

registry = imformats('remove',fmt) 从文件格式注册表中删除具有由 fmt 指定的扩展名的格式。使用此语法删除图像文件格式支持。

示例

registry = imformats('update',fmt,formatStruct) 更改具有扩展名 fmt 的格式的注册表值,这些值由 formatStruct 指定。

registry = imformats('factory') 将 MATLAB 文件格式注册表重置为默认的格式注册表值。这会删除用户指定的任何设置。

示例

全部折叠

确定与 .bmp 文件扩展名关联的文件格式是否存在于图像文件格式注册表中。

formatStruct = imformats('bmp')
formatStruct = struct with fields:
            ext: {'bmp'}
            isa: @isbmp
           info: @imbmpinfo
           read: @readbmp
          write: @writebmp
          alpha: 0
    description: 'Windows Bitmap'

formatStruct 是一个非空结构体,因此 BMP 文件格式位于注册表中。

将一个假设性的文件格式 ABC 添加到图像文件格式注册表。更新该格式,然后将其删除。

创建一个包含七个字段的结构体,并为新格式定义相应值。

formatStruct = struct('ext','abc','isa',@isabc,...
    'info',@abcinfo,'read',@readabc,'write','',...
    'alpha',0,'description','My ABC Format')
formatStruct = struct with fields:
            ext: 'abc'
            isa: @isabc
           info: @abcinfo
           read: @readabc
          write: ''
          alpha: 0
    description: 'My ABC Format'

formatStruct 是包含七个字段的一个 1×1 结构体。在此示例中,write 字段为空。

将该新格式添加到文件格式注册表。

registry = imformats('add',formatStruct);

通过为 write 字段添加一个值,来重新定义与扩展名 abc 关联的格式。然后,更新该格式的注册表值。

formatStruct2 = struct('ext','abc','isa',@isabc,...
    'info',@abcinfo,'read',@readabc,'write',@writeabc,...
    'alpha',0,'description','My ABC Format');

registry = imformats('update','abc',formatStruct2);

从文件格式注册表中删除具有扩展名 abc 的格式。

registry = imformats('remove','abc');

输入参数

全部折叠

文件格式注册表值,指定为包含以下 7 个字段的一个结构体数组。

字段

描述

ext

对此格式有效的文件名扩展名。

字符向量元胞数组或字符串数组

isa

可确定文件是否为某种格式的函数的名称。

字符向量、字符串标量或函数句柄

info

可读取文件相关信息的函数的名称。

字符向量、字符串标量或函数句柄

read

可读取文件中图像数据的函数的名称。

字符向量、字符串标量或函数句柄

write

可将 MATLAB 数据写入文件的函数的名称。

字符向量、字符串标量或函数句柄

alpha

存在或不存在 alpha 通道。

如果格式具有 alpha 通道,则它为 1;否则它为 0

description

文件格式的文本描述。

字符向量或字符串标量

isainforeadwrite 字段的值必须为 MATLAB 搜索路径中的函数或者为函数句柄。

数据类型: struct

文件格式扩展名,指定为字符向量或字符串标量。

示例: 'jpg'

数据类型: char

输出参数

全部折叠

文件格式注册表,以包含以下字段的一个结构体数组的形式返回。

字段

描述

ext

对此格式有效的文件名扩展名。

字符向量元胞数组

isa

可确定文件是否为某种格式的函数的名称。

字符向量或函数句柄

info

可读取文件相关信息的函数的名称。

字符向量或函数句柄

read

可读取文件中图像数据的函数的名称。

字符向量或函数句柄

write

可将 MATLAB 数据写入文件的函数的名称。

字符向量或函数句柄

alpha

存在或不存在 alpha 通道。

如果格式具有 alpha 通道,则它为 1;否则它为 0

description

文件格式的文本描述。

字符向量

注意

当格式注册表中存在该文件格式时,使用 imreadimwriteimfinfo 函数读取、写入或获取有关图像文件的信息。不要直接调用在 registry 结构体数组的字段中返回的函数。

提示

  • 在 MATLAB 会话期间,不会保留对格式注册表的更改。要使某种格式在您每次启动 MATLAB 时都可用,请将相应的 imformats 命令添加到 MATLAB 启动文件 startup.m 中。有关详细信息,请参阅 startup

版本历史记录

在 R2006a 之前推出