PNG (.png)

予備知識

    • 登録MIMEタイプ:image/png
    • PNGラスタ画像形式.
    • Web上のグラフィックスや写真画像によく使われる.
    • PNGはPortable Network Graphicsの頭字語である.
    • バイナリ形式.
    • 静止画とアニメーション画像の両方を保存する.
    • 各チャンネルについて8ビットか16ビットの解像度でカラービットマップを保持する.
    • グレースケール画像は各ピクセルについて1,2,4,8,16ビットのいずれかの色の濃さで表示される.
    • 8ビットと16ビットのRGBとグレースケール画像についてはアルファチャンネルをサポートする.
    • 2,4,16,または256色の8ビットRGBカラーを使う減色パレットをサポートする.
    • 1995年にGIF形式に換わる公開された特許を必要としない形式として開発された.
    • 国際標準のISO/IEC 15948:2003とISO/IEC 15948:2004として発表された.

ImportとExport

  • Import["file.png"]はPNGファイルをインポートし,画像を返す.
  • Import["file.png",elem]は指定された要素をPNGファイルからインポートする.
  • インポートの形式は,Import["file","PNG"]またはImport["file",{"PNG",elem,}]で指定することができる.
  • Export["file.png",expr]は画像,グラフィックス,その他のラスタ画像の任意の式をPNGファイルにエキスポートする.
  • Export["file.png",{expr1,expr2,}]はグラフィックスか画像のリストをアニメーションとしてエキスポートする.
  • Export["file.png",Manipulate[]]Manipulateオブジェクトのアニメーション化されたデモンストレーションをエキスポートする.
  • Wolfram言語のグラフィックスまたは任意の式をPNGにエキスポートすると,結果の画像はその表示形式と同じラスタサイズとなる.
  • 画像オブジェクトはデフォルトでそのラスタサイズでエキスポートされる.
  • PNGはラスタ画像形式なので,すべてのフォントはエキスポート時にラスタ化される.
  • 一般的な情報は,以下の関数ページを参照のこと.
  • Import, Exportファイルからインポートする,あるいはファイルへエキスポートする
    CloudImport, CloudExportクラウドオブジェクトからインポートする,あるいはクラウドオブジェクトへエキスポートする
    ImportString, ExportString文字列からインポートする,あるいは文字列へエキスポートする
    ImportByteArray, ExportByteArrayバイト配列からインポートする,あるいはバイト配列へエキスポートする

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

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

Import要素

  • 一般的なImport要素:
  • "Elements" ファイル中の有効な要素とオプションのリスト
    "Summary"ファイルの概要
    "Rules"使用可能なすべての要素の規則のリスト
  • データ表現要素:
  • "AnimatedImage"AnimatedImageオブジェクトで表されるアニメーションPNG
    "Animation"アニメーションオブジェクトで表されたアニメーションPNG
    "Data"画素値の配列
    "Graphics"Graphicsオブジェクトで与えられる,PNGファイルの最初のフレーム
    "GraphicsList"Graphicsオブジェクトのリストで表される,アニメーションPNGのフレーム
    "Image"Imageオブジェクトとして与えられる,PNGファイルの最初のフレーム
    "ImageList"Imageオブジェクトのリストで表される,アニメーションPNGのフレーム
    "RawData"カラーマップ指標の配列
    {"ThumbnailList",frames}サムネイルのリスト(デフォルトでは frames=All
  • Importはデフォルトで静的PNGファイルには"Image"要素を,アニメーションPNGには"ImageList"要素を使用する.
  • 要素"Image"でアニメーションPNGをImportすると,アニメーションの最初のフレームが得られる.
  • Exportはデフォルトでは,与えられた式が画像のリストかManipulateである場合はアニメーションPNGを,それ以外の場合は静的なPNGを生成する.
  • 高度なImport要素:
  • "AnimationRepetitions"アニメーションが停止するまでに何回再生するか
    "BitDepth"ファイル内のそれぞれの色チャンネルを表示するのに使用されるビット
    "BlendOperation"次のフレームを作るのにアルファブレンドを行うかどうか
    "CameraTopOrientation"写真が撮影されたときのカメラの向き
    "Channels"ファイルで使用される色チャンネル数
    "ColorMap"色の値のリストで与えられる,ファイルで使用される減色パレット
    "ColorProfileData"ColorProfileDataオブジェクトとして与えられる埋込みカラープロファイル
    "ColorSpace"ファイル内で使用されている色符号化
    "Comments"ファイルに保管されたユーザのコメント
    "DisplayDurations"アニメーションフレームの表示時間(秒)
    "DisposalOperation"次のフレームの作成前の処分操作
    "FlashUsed"
  • フラッシュが使用されたかどうか
  • "GeoPosition"GeoPositionオブジェックトで表される緯度と経度
    "GPSDateTime"
  • GPSによって登録された画像の作成日時
  • "ImageCount"アニメーションPNGのフレーム数
    "RasterSize"ラスタ次元
    "RedEyeCorrection"赤目補正を行ったかどうか
    "Summary"ファイルの概要
    "SummarySlideView"すべてのフレームのスライドショーによる概要
  • PNGは最大256色のカラーパレットをサポートする.色は常に各色チャンネルにつき8bitの解像度で保存される.
  • "DisposalOperation"は次のフレームを作成する前に現在のフレームをどのように処分するかを指定する.以下のような設定が可能である:
  • "None"処分しない
    "Background"完全に透明の背景色で置き換える
    "Previous"前のフレームで置き換える
  • "BlendOperation"は処分の後に次のフレームを現在のフレームにアルファブレンドするかどうかを指定する.
  • メタデータ要素:
  • "Exif"整形されたExif(交換可能画像ファイル形式)
    "IPTC"整形されたIPTC(国際新聞電気通信評議会)
    "XMP"整形されたXMP(拡張可能メタデータプラットフォーム)
    "MetaInformation"ファイル内の存在するすべての整形されたメタデータの組合せ
  • ファイルに保存されているままの生のメタデータは"RawExif""RawXMP""RawIPTC"要素を使ってインポートすることができ,結果は連想で返される.
  • ExifとIPTCのタグはすべて別々にインポートできる.一般的なタグには以下のようなものがある:
  • "ApertureValue"レンズ口径
    "Artist"撮影者または画像の作成者
    "DateTime"画像の作成日時
    "ExposureTime"露光時間(秒)
    "FlashInfo"
  • フラッシュ情報(使用したフラッシュ,赤目補正等)
  • "FNumber"F値
    "FocalLength"レンズの実際の焦点距離(ミリメートル)
    "GPSAltitude"GPS位置の標高
    "GPSLatitude"GPS位置の緯度
    "GPSLongitude"GPS位置の経度
    "Make"記録装置の製造元
    "Model"装置のモデル名またはモデル番号
    "Software"画像生成に使用されたカメラまたは画像入力デバイスのソフトウェアまたはファームウェアの名前とバージョン番号

オプション

  • ImportおよびExportのオプション:
  • IncludeMetaInformationAllインポート・エキスポートするメタデータタイプ
    "ImageTopOrientation"Automaticファイルに保管されている画像の向き
    RasterSizeAutomatic画像の次元
  • Importオプション:
  • "TakeRows"{1,-1}インポートする行
  • Exportオプション:
  • ColorSpaceAutomaticファイルで使用する色符号化
    "ColorMapLength"Automatic量子化に使用する色の数
    "Comments"Noneテキストによる情報
    CompressionLevelAutomatic0と1の間の数で与えられる圧縮レベル
    Dithering"FloydSteinberg"減色表の生成に使用されるディザリングアルゴリズム
    "QuantizationMethod"AutomaticColorQuantizeで使用される量子化メソッド
  • ディザリングを行わないようにするためにはDitheringNoneを使用する.
  • ColorSpaceのサポートされている設定は"Grayscale""RGB"である. ColorSpace->Automaticを使うと,Exportは同じ色空間のPNGファイルの作成を試みる.
  • アニメーションPNGのExportオプション:
  • AnimationRepetitionsInfinityアニメーションが停止するまでの再生回数
    "ControlAppearance"AutomaticエキスポートされたファイルでManipulateのコントロール要素が描画される方法
    "DisplayDurations"Automatic各フレームの表示時間(秒)
    "Interlaced"Falseグラフィックスのプログレッシブ描画が可能となるようにインターレース形式で保存するどうか
    "RemoveDuplicatedFrames"False重複したフレームを削除するかどうか
  • "ControlAppearance"には以下の設定が与えられる:
  • Automaticローカルコンピュータのスタイル要素を使って,ノートブックインターフェースに表示されるのと全く同じユーザコントロールを保存する
    "Generic"一般的なスタイルでグラフィカルコントロールを描画する
    Noneアニメーションのエキスポート時にはコントロール要素は除外する
  • アニメーションPNGの各フレームの表示時間は"DisplayDurations"->{d1,d2,}で指定する.

例題

すべて開くすべて閉じる

  (4)

PNGファイルを画像としてインポートする:

画像の概要:

アニメーションPNGをアニメーションとしてインポートする:

RGB画像をPNGにエキスポートする:

スコープ  (3)

Wolfram言語の式をPNGにエキスポートする:

式のリストをアニメーションPNGにエキスポートする:

アニメーションとしてインポートする:

ManipulateをアニメーションPNGとしてエキスポートする:

Rasterizeを使ってManipulate のスクリーンショットをPNGファイルにエキスポートする:

Import要素  (40)

利用できる要素  (4)

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

利用できるExif要素のリスト:

利用できるIPTC要素のリスト:

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

データ表現  (11)

"AnimatedImage"  (1)

マルチフレームPNGをAnimatedImageとしてインポートする:

"Animation"  (1)

"ColorMap"  (1)

減色パレットを含むPNG画像を生成する:

生成された画像から減色パレットを取得する:

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

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

"Data"  (1)

画像データをインポートする:

画像データを使って画像を作成する:

"Graphics"  (1)

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

"GraphicsList"  (1)

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

"Image"  (1)

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

デフォルトの要素も"Image"である:

"ImageList"  (1)

データをImageオブジェクトのリストとして取得する:

"RawData"  (1)

アニメーションPNGの最初のフレームから生のデータを取得する:

生のデータの配列をプロットする:

カラーマップを使って,保存されている画像を作成する:

"Thumbnail"  (1)

画像のサムネイルをインポートする:

ThumbnailList"  (1)

アニメーションPNGファイルからサムネイルのリストをインポートする:

メタデータ  (25)

"BitDepth"  (1)

各色チャンネルを表すためのビット数を取得する:

"BlendOperation"  (1)

混色操作を取得する:

"CameraTopOrientation"  (1)

撮影時のカメラの向きの情報を取得する:

"Channels"  (1)

画像チャンネル数を取得する:

"ColorProfileData"  (1)

ColorProfileDataオブジェクトとして与えられる,埋め込まれたカラープロファイルを取得する:

カラープロファイルはインポートされた画像のColorSpaceオプションに保存されている:

"ColorSpace"  (1)

エキスポートで使用された色符号化を取得する:

インポートする画像の色空間をImageColorSpaceを使って取得する:

"DateTime"  (1)

画像が撮影された日時を取得する:

"DisposalOperation"  (1)

処分操作を取得する:

"Exif"  (3)

Exifメタデータをインポートする:

連想から個々のタグをインポートする:

個々のExifタグは直接インポートすることもできる:

Exifタグの中には処理されてより詳細な情報を与えるものがある:

生の"FlashInfo"タグと比較する:

"FlashUsed"  (1)

フラッシュが使用されたかどうかについて示すタグをインポートする:

"FlashUsed""FlashInfo"要素のサブ要素である:

"Exif"から"FlashUsed"を抽出する:

"GeoPosition"  (2)

画像の測地位置を取得する:

画像の測地位置は利用できないことがある:

"GPSDateTime"  (1)

GPSによって登録された画像の作成日時を取得する:

"ImageCount"  (1)

アニメーションPNGファイルに保存されているフレームの数を得る:

"IPTC"  (1)

IPTCメタデータを取得する:

IPTCメタデータのApplication2スキーマを取得する:

"MetaInformation"  (1)

全てのメタデータを取得する:

"RasterSize"  (1)

ファイルに保存された画像の次元を取得する:

インポートした画像に ImageDimensions を使っても同じ結果を得られる:

"RawExif"  (1)

"RawExif"要素を使って,処理されていないExifメタデータをインポートする:

"RawExif" はファイルに保存されている生の値を返す:

解釈された焦点距離を比較する:

"RawIPTC"  (1)

処理されていないIPTCメタデータをインポートする:

"RawXMP"  (1)

処理されていないXMPメタデータをインポートする:

"Summary"  (1)

画像の概要を取得する:

"SummarySlideView"  (1)

画像のフレームの概要を取得する:

"XMP"  (1)

XMPメタデータを取得する:

Importオプション  (6)

ImageResolution  (1)

デフォルトでは画像の解像度はファイルから抽出される:

インポートされた画像の解像度を指定する:

方向と 方向に異なる解像度を指定する:

IncludeMetaInformation  (3)

メタデータを含まずに画像をインポートする:

画像を"XMP"メタデータだけとともにインポートする:

RasterSize  (1)

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

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

"TakeRows"  (1)

デフォルトではすべての行がインポートされる:

指定の行のみをインポートする:

Exportオプション  (11)

AnimationRepetitions  (1)

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

"ColorMapLength"  (1)

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

"ControlAppearance"  (1)

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

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

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

CompressionLevel  (1)

より高い圧縮レベルでファイルサイズを小さくする:

圧縮レベルを高くすると,PNGファイルの生成により時間がかかる:

"DisplayDurations"  (1)

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

Dithering  (1)

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

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

"ImageTopOrientation"  (1)

デフォルトでは直立方向の画像は"ImageTopOrientation"->Topを使ってエキスポートされる:

向きを指定する:

もとの向きを使ってインポートする:

IncludeMetaInformation  (1)

デフォルトでは,存在するすべてのメタ情報がエキスポートされる:

エキスポートするメタデータのクラスを指定する:

"QuantizationMethod"  (1)

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

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

RasterSize  (1)

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

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

"RemoveDuplicatedFrames"  (1)

重複したフレームで動画を作成する:

全てのフレームを抽出する:

すべての重複したフレームをアニメーションPNGにエキスポートする:

重複したフレームを削除しながらエキスポートすると,ファイルサイズが縮小される: