GIF (.gif)

背景

    • 注册的 MIME 类型:image/gif
    • GIF 光栅图像格式.
    • 常用于网页中的静态和动画图形.
    • GIF 是 Graphics Interchange Format(图形交换格式)的缩写.
    • 二进制格式.
    • 限制后使用 LZW 无损压缩至8位调色板.
    • 支持透明度.
    • 由 CompuServe 于 1987 年开发.

Import 与 Export

  • Import["file.gif"] 导入一个 GIF 文件,返回一个单一的 Image 对象或图像列表.
  • Import["file.gif",elem] 从 GIF 文件导入指定的参数.
  • 导入格式可用 Import["file","GIF"]Import["file",{"GIF",elem,}] 指定.
  • Export["file.gif",expr] 把图形、图像或其它表达式导出至 GIF.
  • Export["file.gif",{expr1,expr2,}] 把图形或图形列表作为动画导出.
  • Export["file.gif",Manipulate[]] 导出一个 Manipulate 对象的动画演示.
  • 当把 Wolfram 语言的图形或任意表达式导出至 GIF,导出的图像具有与显示形式相同的光栅尺寸.
  • 默认情况下,图像对象按它们的光栅尺寸导出.
  • 因为 GIF 是一个光栅图像格式,所有导出的字体被光栅化.
  • 请到以下参考页面了解完整的基本信息:
  • Import, Export从文件导入或导出到文件
    CloudImport, CloudExport从云对象导入或导出到云对象
    ImportString, ExportString从字符串导入或导出到字符串
    ImportByteArray, ExportByteArray从字节数组导入或导出到字节数组

笔记本界面

  • 在笔记本前端,插入 图片 以及 打开 菜单允许把一个 GIF 文件导入到单元.
  • 选择另存为 把笔记本的选择部分导出到一个 GIF 文件.

Import 参数

  • Import 的通用参数:
  • "Elements" 该文件可用的参数和选项列表
    "Summary"文件摘要
    "Rules"所有可用参数的规则列表
  • 表示数据的参数:
  • "Animation"被表示为动画对象的动画 GIF
    "Data"RGB 颜色值数组
    "Graphics"GIF 文件的首帧,以 Graphics 对象的形式给出
    "GraphicsList"动画 GIF 的帧,以 Graphics 对象的列表形式表示
    "Image"GIF 文件的首帧,以 Image 对象的形式给出
    "ImageList"动画 GIF 的帧,以 Image 对象列表的形式给出
    "RawData"彩色地图索引数组
    {"Thumbnail",size}首个图像的缩略图(默认 size = Small
    {"ThumbnailList",frames,size}缩略图列表(默认 frames=Allsize=Small
  • 默认情况下,对于静态 GIF,Import 使用 "Image" 参数,动画 GIF 使用 "ImageList".
  • 具有参数 "Image" 的动画 GIF 的 Import 给出动画的首帧.
  • 默认情况下,如果所提供表达式为图像列表或一个 ManipulateExport 生成一个动态 GIF,请他情况为静态 GIF.
  • 具有参数 "Graphics""Image"Export 总是产生一个静态的 GIF.
  • 高级的 Import 参数:
  • "AnimationRepetitions"停止前,动画被播放次数
    "Background"显示在透明图像区域的背景颜色
    "BitDepth"用于表示文件中每个颜色通道的比特
    "Channels"文件中使用的颜色通道数
    "ColorMap"颜色复原调色板,以颜色值的列表给出
    "ColorSpace"文件使用的颜色编码
    "Comments"存储在文件中的用户注释
    "DisplayDurations"以秒为单位显示动画帧的持续时间
    "DisposalOperation"生成下一帧前清理操作
    "GlobalColorMap"对于单独帧默认使用调色板
    "ImageCount"动画 GIF 的帧数
    "RasterSize"光栅尺寸
    "Summary"文件摘要
    "SummarySlideView"所有帧的幻灯片显示摘要
    "TransparentColor"解释为透明的颜色
  • 从动画 GIF 中导入 "ColorMap" 参数将以列表形式返回颜色映射.
  • GIF 最大支持 256 色颜色面板,通常以每颜色通道 8 位分辨率存储颜色.
  • "DisposalOperation" 指定在创建下一帧之前如何处理当前帧. 以下为可用值:
  • "None"无处理
    "Background"用背景色替换
    "Previous"用前一帧替换
    Missing["NotAvailable"]缺少处理操作

选项

  • ImportExport 选项:
  • ImageSizeAutomatic图像总体大小
    "ImageTopOrientation"Top存储在文件中图像方向
    RasterSizeAutomatic图像尺寸
  • 默认情况下,图像按全尺寸导出,通常具有自动量化.
  • Export 选项:
  • "ColorMapLength"Automatic用于量化的颜色数目
    "ColorMapMode""Local"是否创建本地或全域色表
    Dithering"FloydSteinberg"抖动算法用于创建褪色表格
    ImageFormattingWidth$ImageFormattingWidth格式化对象时的目标宽度
    "QuantizationMethod"Automatic用于量化的方法
    "TransparentColor"Automatic解释为透明的颜色
  • "Dithering" 的可能设置为 "FloydSteinberg" None.
  • 动态 GIF Export 选项:
  • "ControlAppearance"AutomaticManipulate 如何控制在导出文件中渲染的元素
    "DisplayDurations"Automatic以秒为单位,每帧显示的持续时间
    "Interlaced"False是否以隔行扫描的形式存储图形并允许渐进渲染
    AnimationRepetitionsInfinity停止前,动画被播放多少次
    "DisposalOperation"Automatic创建下一帧之前的处置操作
    "RemoveDuplicatedFrames"False是否删除重复帧
  • "ControlAppearance" 可给出以下设定:
  • Automatic运用本地计算机系统的风格元素,截取与在笔记本中完全相同的用户控制
    "Generic"以通用样式呈现图形控制
    None在导出动画时,排除控制参数
  • "DisplayDurations"->{d1,d2,} 指定动画 GIF 中每帧显示的持续时间. 如果显示的持续时间列表短于帧数,序列按需重复.
  • "DisposalOperation" 的可用值为:
  • AutomaticNone不可处理
    "Background"用背景颜色替换
    "Previous"用前一帧替换

范例

打开所有单元关闭所有单元

基本范例  (4)

导入一个 GIF 文件:

图像摘要:

将动画 GIF 作为图像列表读取:

将该文件作为动画导入:

把一个图像对象导出至 GIF:

范围  (3)

以下栅格化一个任意表达式并将结果转换为 GIF 文件:

导入结果文件:

阅读动画 GIF 作为图像列表:

将此文件作为动画导入:

通过导入 Graphics 表达式列表创建动画 GIF:

将结果文件作为动画导入:

导入元素  (26)

可用元素  (3)

列出所有可用元素:

获取图像相关信息作为规则列表:

导入部分图像选项:

"Options" 元素与导入图像中存储的选项不同:

数据表示  (11)

"Animation"  (1)

将帧导入一个动画:

"ColorMap"  (1)

从一个 GIF 图像动画的首帧获取颜色量化面板:

可视化颜色量化面板:

将色图应用于原始数据创建存储图像:

"Data"  (1)

获取每个图标的颜色值数组:

创建合适类型的图像:

"Graphics"  (1)

作为 Graphics 对象导入:

"GraphicsList"  (1)

获取图对象的列表:

"GlobalColorMap"  (1)

从 GIF 图像获取全域颜色量化面板:

将色图应用于原始数据创建存储图像:

"Image"  (1)

将文件导入为 Image 对象:

以下为从仅包含一帧的 GIF 文件中默认导入的元素:

"ImageList"  (1)

以下为多帧 GIF 的默认导入元素.

获取数据作为 Image 对象列表:

"RawData"  (1)

从 GIF 文件获取原始数据:

绘制原始数据的数组:

使用色图创建存储图像:

"Thumbnail"  (1)

导入图像的缩略图:

"ThumbnailList"  (1)

从动画 GIF 文件导入缩略图列表:

元数据  (12)

"AnimationRepetitions"  (1)

获取在停止前动画重复播放的次数:

"Background"  (1)

"DisposalOperation" 对于某个帧为 "Background" 时,使用背景颜色:

"BitDepth"  (1)

获取表示每个颜色通道的位数:

"Channels"  (1)

获取颜色通道数:

"ColorSpace"  (1)

获取导出时使用的颜色编码:

ImageColorSpace 获取导入图像的色彩空间:

"Comments"  (1)

获取文件中存储的用户注释:

"DisplayDurations"  (1)

获取文件帧数的播放秒长:

"DisposalOperation"  (1)

获取处理操作:

"ImageCount"  (1)

获取文件中存储的图像数:

"ImageSize"  (1)

获取文件中存储图像的尺寸:

对导入图像使用 ImageDimensions可给出相同结果:

"Summary"  (1)

获取图像摘要:

"SummarySlideView"  (1)

获取文件中存储所有图像的摘要:

导入选项  (2)

ImageSize  (1)

在默认情况下,导入全分辨率图像:

指定导入 BMP 图像的栅格大小:

"ImageTopOrientation"  (1)

在默认情况下,图像按右上方向导入:

指定导入图像的方向:

导出选项  (12)

"AnimationRepetitions"  (1)

指定动画在停止前的播放次数:

"ColorMapLength"  (1)

通过指定更小的颜色表长度来减小文件大小:

"ControlAppearance"  (1)

指定 Manipulate 中的控制菜单是否导出:

导出中无控制菜单:

导出中有图像控制:

"DisplayDurations"  (1)

对于动画的每个帧指定播放长度(按秒):

"Dithering"  (1)

显示递色效果:

显示明显不同的区域:

ImageSize  (1)

在默认情况下,导出全分辨率图像:

指定导出图像的栅格大小:

"Interlaced"  (1)

以截距式存储图形,从而允许逐步渲染:

"QuantizationMethod"  (1)

显示不同量化方法的效果:

显示有显著差异的区域:

"TransparentColor"  (1)

指定解释为透明色:

透明色被 Transparent 代替:

"DisposalOperation"  (3)

导出具有透明背景和默认 "DisposalOperation" 的动画 GIF:

每一帧都在前一框架的上方绘制:

要始终在透明画布(填充背景色)上绘制帧,请使用"DisposalOperation"->"Background"

分别指定每个帧的处理操作:

指定 None 为第一帧的处理操作,以查看 "Previous""Background" 操作之间的区别:

可能出现的问题  (1)

当一个有不同的播放长度的动画 GIF 导入为 "Animation" 时,对于所有帧使用平均播放长度:

创建涉及不同计时的浏览器: