アプリを作る際に作成した、xcf.txtの日本語訳です。目次及び使用上の注意はこちら
3. THE MASTER IMAGE STRUCTURE =============================
The image structure always starts at offset 0 in the XCF file.
image structureは必ずXCFファイルのオフセット0[先頭]から始まります。
byte[9] "gimp xcf " File type magic byte[4] version XCF version "file" - version 0 "v001" - version 1 "v002" - version 2 byte 0 Zero-terminator for version tag uint32 width With of canvas uint32 height Height of canvas uint32 base_type Color mode of the image; one of 0: RGB color 1: Grayscale 2: Indexed color (enum GimpImageBaseType in libgimpbase/gimpbaseenums.h) property-list Image properties (details below) ,------------------- Repeat once for each layer, topmost layer first: | uint32 layer Pointer to the layer structure `-- uint32 0 Zero marks the end of the array of layer pointers ,------------------- Repeat once for each channel, in no particular order: | uint32 channel1 Pointer to the channel structure `-- uint32 0 Zero marks the end of the array of channel pointers
byte[9] "gimp xcf " : ファイルタイプを表すマジックナンバー。
byte[4] version : XCFのバージョンを表します。"file", "v001", "v002"の3つのうちの1つ。
byte 0 : バージョンタグのゼロ終端です
uint32 width : キャンバスの幅
uint32 height : キャンバスの高さ
uint32 base_type : 画像のカラーモード。0:RGB, 1:Grayscale, 2:indexed colorのうちのいずれか。
libgimpbase/gimpbaseenums.h内で enum GimpImageBaseTypeとして定義されています。
property-list
uint32 layer : layer structureへのpointer を layerの数だけ繰り返し
ゼロ終端で、layer pointer listの終了を示します。
uint32 channel structure pointer を channelの数だけ繰り返し
The last four characters of the initial 13-character magic string are a version indicator. The version will be higher than 2 if the correct reconstruction of pixel data from the file requires that the reader understands features not described in this specification. On the other hand, optional extra information that can be safely ignored will not cause the version to increase.
ファイル先頭の13文字のうちの最後の4文字は、バージョン指示文字列です。ピクセルデータを正しく再構築するために、ここに書かれている情報では足りないようなXCFファイルは、バージョン3以上となっているでしょう。一方、安全に無視できるオプションが追加されても、バージョンは上がりません。
GIMP's XCF writer dynamically selects the lowest version that will allow the image to be represented. Third-party XCF writers should do likewise.
GIMPのXCF writerは、画像に合わせて、画像を表現できる最も小さなバージョンのXCFを選択するようになっています。サードパーティ製のXCFを出力するソフトウエアも同様にすべきです。
Version numbers from v100 upwards have been used by CinePaint, which originated as a 16-bit fork of GIMP. That format is not described by this specification.
v100より上の番号は、CinePaintによって使われています。CinePaintはもともとGIMPの16bit版フォークでした。その仕様についてはここでは解説していません。
Image properties ----------------
The following properties are found only in the property list of the image structure. In addition to these, the list can also contain the properties PROP_TATTOO, PROP_PARASITES and PROP_END, described in section 8 below.
以下に述べるpropertyは、image structureのpropertyリストにのみ現れます。これらに加えて、リストは、PROP_TATTOO, PROP_PARASITES , PROP_ENDといったpropertyを含むことができます。これらについては、Section 8で述べています。
PROP_COLORMAP (essential)
カラーマップ(必須)
uint32 1 The type number for PROP_COLORMAP is 1 uint32 3n+4 The payload length uint32 n The number of colors in the colormap (should be <256) ,------------ Repeat n times: | byte r The red component of a colormap color | byte g The green component of a colormap color | byte b The blue component of a colormap color`--
Appears in all indexed images and stores the colormap. The property will be ignored if it is encountered in an RGB or grayscale image. The current GIMP will not write a colormap with RGB or grayscale images, but some older ones occasionally did, and readers should be prepared to gracefully ignore it in those cases.
インデックスカラー形式の画像には必ずこのpropertyがあります。RGB形式、グレースケール形式の場合には無視されます。現行のバージョンのGIMPにおいては、RGB形式やグレースケール形式の画像ではカラーマップを書き込まないようになっていますが、古いバージョンのGIMPにおいてはRGB形式やグレースケール形式であるにもかかわらずカラーマップ情報が書き込まれている場合があります。その場合には、注意深くそれらの値を無視しなければいけません。
Note that in contrast to the palette data model of, for example, the PNG format, an XCF colormap does not contain alpha components, and there is no colormap entry for "transparent"; the alpha channel of layers that have one is always represented separately.
他のカラーパレット形式(例えばPNG形式におけるそれ)と比較した場合ですが、XCFカラーマップは、アルファ値を持たず、また、「透過色」をマッピングすることも出来ません。各レイヤーのアルファ値は、別々に表現されます。
The structure here is that of XCF version >= 1. Comments in the GIMP source code indicate that XCF version 0 could not store indexed images in a sane way; contemporary Gimps will complain and reinterpret the pixel data as a grayscale image if they meet a version-0 indexed image.
このstructureは、XCFバージョン1以上のものです。GIMPのソースコード中のコメントによれば、XCFのver.0は、indexed imageをまっとうなやり方では保存できなかったようです。現行のGIMPがXCF ver0のindexed imageをひらく時は警告とともに、グレースケール形式の画像として再解釈・展開します。、
Beware that the payload length of the PROP_COLORMAP in particular cannot be trusted: some historic releases of GIMP erroneously wrote n+4 instead of 3n+4 into the length word (but still actually followed it by 3n+4 bytes of payload).
PROP_COLORMAPのpayloadの長さは、常に信頼出来るわけではないということに注意してください。以前のGIMPの中には、誤って3n+4ではなく、n+4をバイト長情報として書き込んでいたものがあります。(それに続くデータは実際には3n+4バイトです)
PROP_COMPRESSION (essential)
PROP_COMPRESSION 圧縮方法の指示 (必須)
uint32 17 The type number for PROP_COMPRESSION is 17 uint32 1 One byte of payload byte c Compression indicator; one of 0: No compression 1: RLE encoding 2: (Never used, but reserved for zlib compression) 3: (Never used, but reserved for some fractal compression)
Defines the encoding of pixels in tile data blocks in the entire XCF file. See section 6 below for details.
XCFファイル全体の、データブロックにおけるピクセルデータの圧縮方式を表します。詳しくはsection 6 で述べます。
Note that unlike most other properties whose payload is always a small integer, PROP_COMPRESSION does _not_ pad the value to a full 32-bit integer.
他のpropertyと違い、このpropertyのpayloadはsmall integer[1バイト]です。余分にバイトを書き込んで32bit長にする、ということはしていません。
Contemporary Gimps always write files with c=1. It is unknown to the author of this document whether versions that wrote completely uncompressed (c=0) files ever existed.
現在のところ、GIMPは常にc=1としてファイルを生成します。完全に無圧縮のXCFファイルが存在するのかどうか、筆者は寡聞にして知りません。
PROP_GUIDES (editing state)
PROP_GUIDES (編集の状態)
uint32 18 The type number for PROP_GUIDES is 18 uint32 5*n Five bytes of payload per guide ,---------- Repeat n times: | int32 c Guide coordinate | byte o Guide orientation; one of | 1: The guide is horizontal, and c is a y coordinate | 2: The guide is vertical, and c is an x coordinate `--
Appears if any guides have been defined.
もしもguideが定義されていたら、ファイルに書き込まれます。
Some old XCF files define guides with negative coordinates; those should be ignored by readers.
負の座標を持ったguideを含むXCFファイルが存在しますが、それらは読み込みにおいて無視されるべきです。
PROP_RESOLUTION (not editing state, but not _really_ essential either)
uint32 19 The type number for PROP_RESOLUTION is 19 uint32 8 Eight bytes of payload float x Horizontal resolution in pixels per 25.4 mm float y Vertical resolution in pixels per 25.4 mm
Gives the intended physical size of the image's pixels.
ピクセルと対応する物理的なサイズを表します。
Note that for many images, such as graphics created for the web, the creator does not really have an intended resolution in mind but intends the image to be shown at whatever the natural resolution of the viewer's monitor is. Similarly, photographs commonly do not have a well-defined target size and are intended to be scaled to fit the available space instead. Therefore readers should not interpret the information in this property too rigidly; GIMP writes it to XCF files unconditionally, even if the user has not explicitly chosen a resolution.
(未訳)
PROP_UNIT (editing state)
uint32 22 The type number for PROP_UNIT is 22 uint32 4 Four bytes of payload uint32 c Magic number specifying the unit; one of 1: Inches (25.4 mm) 2: Millimeters (1 mm) 3: Points (127/360 mm) 4: Picas (127/30 mm)
Specifies the units used to specify resolution in the Scale Image and Print Size dialogs. Note that this is used only in the user interface; the PROP_RESOLUTION property is always stored in pixels per 25.4 mm.
このpropertyはユーザーインターフェイスにおいてのみ利用されます。[未訳]
Instead of this property, PROP_USER_UNIT can be used to specify a unit not on the list of standard units.
未訳
PROP_PATHS
uint32 23 The type number for PROP_PATHS is 23 uint32 len The total length of the following payload uint32 a The index of the active path uint32 n The number of paths that follow path_1 path_2 ... path_n
Each path has one of three formats
各パスは、以下の3つのうちの1つの形式を持っています。
Format 1: Format 2: Format 3: string string string name uint32 uint32 uint32 locked byte byte byte state 4 if closed, 2 otherwise uint32 uint32 uint32 closed uint32 uint32 uint32 n The number of points uint32=1 uint32=2 uint32=3 v A version indicator uint32 uint32 dummy Ignored; always set to 1 uint32 tattoo 0 if none, or see PROP_TATTOO ,---------- ,---------- ,------------------ Repeat for n points: | int32 | int32 | int32 typ Type of point; one of | | | 0: an anchor | | | 1: a Bezier control point | int32 | float | float x X coordinate | int32 | float | float y Y coordinate `-- `-- `--
This format is used to save path data if all paths in the image are continuous sequences of Bezier strokes. Otherwise PROP_VECTORS is used instead.
このフォーマットは、保存されている全てのパスが連続した一連のベジェ曲線である場合に使われます。そうでない場合、PROP_VECTORSが代わりに使われます。
(Hmmm... PROP_PATHS cannot represent parasites for paths, but the XCF writer does not check whether all paths are parasite-less when choosing which property to use, so path parasites may be lost upon saving).
(未訳)
There may be paths that declare a length of 0 points; these should be ignored.
(未訳)
PROP_USER_UNIT (editing state)
uint32 24 The type number for PROP_USER_UNIT is 24 uint32 length The total length of the following payload float factor 25.4 mm divided by the length of the unit uint32 digits The number of decimal digits used with the unit string id An identifier for the unit string sym The short symbol for the unit string abbr The abbreviation for the unit string sing The name of the unit in singular string plur The name of the unit in plural
An alternative to PROP_UNIT which allows the use of units not on the standard list.
PROP_UNITの代替です。基本リストに載っていないunitの使用を可能にします。
PROP_VECTORS
uint32 25 The type number for PROP_VECTORS is 25 uint32 length The total length of the following payload uint32 1 A version tag; so far always 1 uint32 a The index of the active path uint32 n The number of paths that follow ,---------------------- Repeat n times: | string name Name of the path | uint32 tattoo Tattoo of the path (see PROP_TATTOO), or 0 | uint32 visible | uint32 linked | uint32 m The number of parasites for the path | uint32 k The number of strokes in the first path | ,-------------------- Repeat m times: | | parasite ... In same format as in PROP_PARASITES (q.v.) | `-- | ,-------------------- Repeat k times: | | uint32 1 The stroke is a Bezier stroke (p.t., all are) | | uint32 closed Closed flag | | uint32 na Number of floats given for each point; | | must be >= 2 and <= 6. | | uint32 np Number of control points for this stroke | | ,------------------ Repeat np times: | | | uint32 type Type of the first point; one of | | | 0: an anchor | | | 1: a Bezier control point | | | float x X coordinate | | | float y Y coordinate | | | float pressure Only if na >= 3; otherwise defaults to 1.0 | | | float xtilt Only if na >= 4; otherwise defaults to 0.5 | | | float ytilt Only if na >= 5; otherwise defaults to 0.5 | | | float wheel Only if na == 6; otherwise defaults to 0.5 | | `-- | `-- `--
Appears unless all paths can be stored in the PROP_PATHS format.
全てのパスがPROP_PATHSに収まり切らない場合に使います。
GIMP's XCF reader checks that the total size of all path specifications in the property precisely equals the length word, so it is safe for a reader to use the length word to skip the property without parsing the individual parasites. (Note that this is _not_ the case for PROP_PATHS).
GIMPのXCFリーダーは、payloadのサイズと、バイト長情報が一致するかどうかをチェックするので、個々のparasitesを解析すること無く、スキップしても安全です。ただし、これはPROP_PATHSには当てはまりません。
0 件のコメント:
コメントを投稿