GIF (.gif)
予備知識
-
- 登録MIMEタイプ:image/gif
- GIFラスタ画像形式.
- 一般に,Web上で静的な,あるいはアニメーションのグラフィックスに使用される.
- GIFはGraphics Interchange Formatの頭字語である.
- バイナリ形式.
- 8ビットカラーパレットに制限した後,LZW可逆圧縮を使う.
- 透過性をサポートする.
- 1987年にCompuServeによって開発された.
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 バイト配列からインポートする,あるいはバイト配列へエキスポートする
Import要素
- 一般的なImport要素:
-
"Elements" ファイル中の有効な要素とオプションのリスト "Summary" ファイルの概要 "Rules" 使用可能なすべての要素の規則のリスト - データ表現要素:
-
"Animation" アニメーションオブジェクトとして表されたアニメーションGIF "Data" RGBカラー値の配列 "Graphics" Graphicsオブジェクトとして与えられる,GIFファイルの最初のフレーム "GraphicsList" Graphicsオブジェクトのリストとしての,アニメーションGIFのフレーム "Image" Imageオブジェクトとして与えられる,GIFファイルの最初のフレーム "ImageList" Imageオブジェクトのリストとしての,アニメーションGIFのフレーム "RawData" カラーマップ指標の配列 {"Thumbnail",size} 最初の画像のサムネイル(デフォルトでは size = Small) {"ThumbnailList",frames,size} サムネイルのリスト(デフォルトでは frames=All,size=Small) - Importはデフォルトで静的GIFには"Image"要素を,アニメーションGIFには"ImageList"を使用する.
- アニメーションGIFのImportの際に要素"Image"を指定すると,アニメーションの最初の1フレームが返される.
- Exportはデフォルトで与えられた式が画像またはManipulateのリストならアニメーションGIFを,その他の場合は静的GIFを生成する.
- Exportの際に要素"Graphics"あるいは"Image"が指定されている場合は必ず静的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"] 欠損した処分操作
オプション
- ImportとExportのオプション:
-
ImageSize Automatic 画像の全体の大きさ "ImageTopOrientation" Top ファイルに保存されている画像の方向 RasterSize Automatic 画像の次元 - 画像はデフォルトでは完全サイズでエキスポートされる.通常,自動量子化によって行われる.
- Exportのオプション:
-
"ColorMapLength" Automatic 量子化に使用する色の数 "ColorMapMode" "Local" ローカルのカラーマップを作るかグローバルのカラーマップを作るか Dithering "FloydSteinberg" 減色表の生成に使用されるディザリングアルゴリズム ImageFormattingWidth $ImageFormattingWidth オブジェクトの整形時の目標幅 "QuantizationMethod" Automatic 量子化に使用するメソッド "TransparentColor" Automatic 透明として解釈される色 - Ditheringの可能な設定は"FloydSteinberg"またはNoneである.
- アニメーションGIFのExportオプション:
-
"ControlAppearance" Automatic Manipulate のコントロール要素がエキスポートされたファイルで描画される方法 "DisplayDurations" Automatic 各フレームの表示時間(秒) "Interlaced" False グラフィックスのプログレッシブ描画が可能となるようにインターレース形式で保存するかどうか AnimationRepetitions Infinity アニメーションが停止するまでの再生回数 "DisposalOperation" Automatic 次のフレームの作成前の処分操作 "RemoveDuplicatedFrames" False 重複するフレームを削除するかどうか - "ControlAppearance"には以下の設定が与えられる:
-
Automatic ローカルコンピュータのスタイル要素を使って,ノートブックインターフェースに表示されるのと全く同じユーザコントロールを保存する "Generic" 一般的なスタイルでグラフィカルコントロールを描画する None アニメーションのエキスポート時にはコントロール要素は除外する - アニメーションGIFの各フレームの表示時間は"DisplayDurations"->{d1,d2,…}で指定する.
- "DisposalOperation"の可能な値:
-
Automatic または None 処分しない "Background" 背景色で置き換える "Previous" 前のフレームで置き換える
例題
すべて開くすべて閉じる例 (4)
スコープ (3)
Graphics式のリストをエキスポートしてアニメーションGIFを作成する:
Import要素 (26)
利用できる要素 (3)
データ表現 (11)
メタデータ (12)
"ColorSpace" (1)
"ImageSize" (1)
Importオプション (2)
Exportオプション (12)
"ControlAppearance" (1)
"TransparentColor" (1)
透明色はTransparentで置き換えられる:
"DisposalOperation" (3)
透明の背景色とデフォルトの"DisposalOperation"でアニメーションGIFをエキスポートする:
常に新しい(背景色で塗りつぶされた)背景でフレームを描画するためには, "DisposalOperation"->"Background"を使用する:
最初のフレームの処分操作としてNoneを指定し,"Previous"と"Background"の操作との違いを見る: