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バイト配列からインポートする,あるいはバイト配列へエキスポートする

ノートブックインターフェース

  • ノートブックフロントエンドでは,「挿入 画像」および「開く」メニューでGIFファイルがセルにインポートできる.
  • 選択範囲の形式保存」はノートブックの選択した部分をGIFファイルにエキスポートする.

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=Allsize=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"]欠損した処分操作

オプション

  • 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アニメーションのエキスポート時にはコントロール要素は除外する
  • アニメーションGIFの各フレームの表示時間は"DisplayDurations"->{d1,d2,}で指定する.
  • "DisposalOperation"の可能な値:
  • Automatic または None処分しない
    "Background"背景色で置き換える
    "Previous"前のフレームで置き換える

例題

すべて開くすべて閉じる

  (4)

GIFファイルをインポートする:

画像の概要:

アニメーションGIFを画像のリストとして読み込む:

このファイルをアニメーションとしてインポートする:

画像オブジェクトをGIFとしてエキスポートする:

スコープ  (3)

任意の式をラスタライズし,結果をGIFファイルに変換する:

出力されたファイルをインポートする:

アニメーションGIFを画像のリストとして読み込む:

このファイルをアニメーションとしてインポートする:

Graphics式のリストをエキスポートしてアニメーションGIFを作成する:

結果のファイルをアニメーションとしてインポートする:

Import要素  (26)

利用できる要素  (3)

利用できるすべての要素のリスト:

画像関連の情報を規則のリストとして取得する:

いくつかの画像オプションをインポートする:

"Options"要素はインポートされた画像に保存されたものとは異なる:

データ表現  (11)

"Animation"  (1)

フレームをアニメーションにインポートする:

"ColorMap"  (1)

アニメーションGIF画像の最初のフレームから減色パレットを取得する:

減色パレットを可視化する:

生のデータにカラーマップを適用して,保存されている画像を作成する:

"Data"  (1)

各アイコンの色の値の配列を取得する:

適切な型の画像を構築する:

"Graphics"  (1)

Graphicsオブジェクトとしてインポートする:

"GraphicsList"  (1)

グラフィックスオブジェクトのリストを取得する:

"GlobalColorMap"  (1)

GIF画像から大域的な減色パレットを取得する:

生のデータにカラーマップを適用して,保存されている画像を作成する:

"Image"  (1)

ファイルをImageオブジェクトとしてインポートする:

これはフレームを1つだけ含む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)

ファイルに保存されているすべての画像の概要を取得する:

Importオプション  (2)

"ImageTopOrientation"  (1)

デフォルトでは直立方向の画像がインポートされる:

インポートされる画像の向きを指定する:

RasterSize  (1)

デフォルトでは,画像は完全解像度でインポートされる:

インポートしたBMP画像のラスタサイズを指定する:

Exportオプション  (12)

"AnimationRepetitions"  (1)

アニメーションが停止までに再生される回数を指定する:

"ColorMapLength"  (1)

カラーマップのより短い長さを指定してファイルサイズを減らす:

"ControlAppearance"  (1)

Manipulateのコントロールメニューもエキスポートするかどうかを指定する:

コントロールはエキスポートしない:

グラフィカルコントロールと一緒にエキスポートする:

"DisplayDurations"  (1)

アニメーションの各フレームの表示時間を秒で指定する:

Dithering  (1)

ディザリングの効果を示す:

大きく異なる領域を示す:

"Interlaced"  (1)

グラフィックスをプログレッシブ描画が可能なインターレース形式で保存する:

"QuantizationMethod"  (1)

さまざまな量子化メソッドの効果を示す:

大きな違いのある領域を示す:

RasterSize  (1)

デフォルトでは,画像は完全な解像度でエキスポートされる:

インポートする画像のラスタサイズを指定する:

"TransparentColor"  (1)

透明であるとして解釈されるべき色を指定する:

透明色はTransparentで置き換えられる:

"DisposalOperation"  (3)

透明の背景色とデフォルトの"DisposalOperation"でアニメーションGIFをエキスポートする:

各フレームは前のものの上に描画される:

常に新しい(背景色で塗りつぶされた)背景でフレームを描画するためには, "DisposalOperation"->"Background"を使用する:

各フレームの処分操作を別々に指定する:

最初のフレームの処分操作としてNoneを指定し,"Previous""Background"の操作との違いを見る:

考えられる問題  (1)

アニメーションGIFがさまざまな表示時間を持つ場合,"Animation"としてインポートするとすべてのフレームについて平均の表示時間を使用する:

さまざまな表示時間に従うビューアを作成する: