Gresan SVG Library 1.1 リファレンス


データ型


ジェネラルタイプ

typedef signed char    PubSInt8;
typedef unsigned char  PubUInt8;
typedef signed short   PubSInt16;
typedef unsigned short PubUInt16;
typedef signed long    PubSInt32;
typedef unsigned long  PubUInt32;

typedef char           PubChar;
typedef unsigned char  PubUChar;
typedef short          PubShort;
typedef unsigned short PubUShort;
typedef long           PubLong;
typedef unsigned long  PubULong;
typedef int            PubInt;
typedef unsigned int   PubUInt;
typedef float          PubFloat;
typedef double         PubDouble;

typedef PubInt         PubBool;
typedef void          *PubPointer;
typedef const void    *PubConstPointer;

DOMErr

typedef PubShort  DOMErr;
enum {
    DOMERR_OK = 0                              /* 正常 */
    /* Introduced in DOM Level 1 */
    DOMERR_INDEX_SIZE_ERR = 1,                 /* インデックスサイズエラー */
    DOMERR_DOMSTRING_SIZE_ERR = 2,             /* DOM文字列サイズエラー */
    DOMERR_HIERARCHY_REQUEST_ERR = 3,          /* 階層リクエストエラー */
    DOMERR_WRONG_DOCUMENT_ERR = 4,             /* 異なるドキュメント */
    DOMERR_INVALID_CHARACTER_ERR = 5,          /* 不正な文字 */
    DOMERR_NO_DATA_ALLOWED_ERR = 6,            /* データは持てない */
    DOMERR_NO_MODIFICATION_ALLOWED_ERR = 7,    /* 修正はできない */
    DOMERR_NOT_FOUND_ERR = 8,                  /* 見つからない */
    DOMERR_NOT_SUPPORTED_ERR = 9,              /* サポートされない */
    DOMERR_INUSE_ATTRIBUTE_ERR = 10,           /* 使用中の属性 */
    /* Introduced in DOM Level 2 */
    DOMERR_INVALID_STATE_ERR = 11,             /* オブジェクトは使用できない */
    DOMERR_SYNTAX_ERR = 12,                    /* 構文エラー */
    DOMERR_INVALID_MODIFICATION_ERR = 13,      /* 不正な修正 */
    DOMERR_NAMESPACE_ERR = 14,                 /* 名前空間エラー */
    DOMERR_INVALID_ACCESS_ERR = 15,            /* 不正なアクセス */
    /* Introduced in DOM Level 2 : Range */
    DOMERR_RANGE_BAD_BOUNDARYPOINTS_ERR = 101, /* 不正な境界ポイント */
    DOMERR_RANGE_INVALID_NODE_TYPE_ERR = 102,  /* 不正なノードタイプ */
    /* Defined by us */
    DOMERR_NOT_IMPLEMENTED = 1001,             /* 未インプリメント */
    DOMERR_NO_INTERFACE = 1002,                /* インターフェースなし */
    DOMERR_OUT_OF_MEMORY = 1003,               /* メモリ不足 */
    DOMERR_NULL_POINTER = 1004,                /* 引き数がNULLポインタ */
    DOMERR_WRONG_TYPE_ERR = 1005,              /* 不正な型 */
    DOMERR_BAD_URI = 1006,                     /* 不正なURI */
    DOMERR_NOT_INITIALIZED = 1007,             /* 初期化されていない */
    DOMERR_INVALID_PARAM = 1008,               /* 不正なパラメタ */
    DOMERR_NO_REQUIRED_PARAM = 1009,           /* 必須パラメタの指定なし */

    DOMERR_FILE_OPEN_ERR = 2001,               /* ファイルオープンエラー */
    DOMERR_FILE_READ_ERR = 2002,               /* ファイルリードエラー */
    DOMERR_FILE_WRITE_ERR = 2003,              /* ファイルライトエラー */
    DOMERR_FILE_PARSE_ERR = 2004,              /* ファイルパースエラー */

    DOMERR_FONT_SYBSYS = 3000,                 /* フォントサブシステムエラー */
    /* Internal use */
    DOMERR_BREAK = 9001                        /* データの終わり(内部使用) */
};

GSVGRef

typedef void  *GSVGRef;

SVG ドキュメントを現わす SVG レファレンス型です。
利用者にとっては内部構造はブラックボックスです。
gsvg_load_file 関数、gsvg_new 関数により作成され、gsvg_free 関数により解放されます。
属性の取得、設定には、アクセス関数を使ってください。


GSVGFileSpec

Macintosh版

typedef FSSpec  *GSVGFileSpec;

Windows版

typedef char  *GSVGFileSpec;

ファイル指定型です。
Macintoshでは、FSSpec * です。
Windowsでは、ファイルのフルパスを示す NULL 終端文字列です。


GSVGDPoint

typedef struct {
    double    x;
    double    y;
} GSVGDPoint;

浮動小数点ポイント型です。


GSVGRect

Macintosh版

typedef Rect  GSVGRect;

Windows版

typedef RECT  GSVGRect;

矩形型です。
Macintoshでは、Rect です。
Windowsでは、RECT です。


GSVGGPort

Macintosh版

typedef CGrafPtr  GSVGGPort;

Windows版

typedef HDC  GSVGGPort;

グラフポート型です。
Macintoshでは、CGrafPtr です。
Windowsでは、HDC です。


XMLERR

typedef struct {
    enum XML_Error  code;   /* expatエラーコード */
    int             line;   /* エラーの発生した行番号 */
    int             column; /* エラーの発生したカラム番号 */
    long            bytes;  /* エラーの発生したファイル位置 */
} XMLERR;

XMLエラー時のエラー詳細情報を示します。


enum XML_Error

enum XML_Error {
    XML_ERROR_NONE
    XML_ERROR_NO_MEMOR
    XML_ERROR_SYNTA
    XML_ERROR_NO_ELEMENTS,
    XML_ERROR_INVALID_TOKEN,
    XML_ERROR_UNCLOSED_TOKEN,
    XML_ERROR_PARTIAL_CHAR,
    XML_ERROR_TAG_MISMATCH,
    XML_ERROR_DUPLICATE_ATTRIBUTE,
    XML_ERROR_JUNK_AFTER_DOC_ELEMENT,
    XML_ERROR_PARAM_ENTITY_REF,
    XML_ERROR_UNDEFINED_ENTITY,
    XML_ERROR_RECURSIVE_ENTITY_REF,
    XML_ERROR_ASYNC_ENTITY,
    XML_ERROR_BAD_CHAR_REF,
    XML_ERROR_BINARY_ENTITY_REF,
    XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF,
    XML_ERROR_MISPLACED_XML_PI,
    XML_ERROR_UNKNOWN_ENCODING,
    XML_ERROR_INCORRECT_ENCODING,
    XML_ERROR_UNCLOSED_CDATA_SECTION,
    XML_ERROR_EXTERNAL_ENTITY_HANDLING,
    XML_ERROR_NOT_STANDALONE,
    XML_ERROR_UNEXPECTED_STATE
};

expatのエラーコード。


enum XML_LB

enum XML_LB {
    XML_LB_CR = 0,
    XML_LB_LF
    XML_LB_CRLF
};

改行コード指定。


GSVGOfs

Macintosh版

typedef GWorldPtr  GSVGOfs;

Windows版

typedef HBITMAP			GSVGOfs;

オフスクリーン型です。
Macintoshでは、GWorldPtr です。
Windowsでは、HBITMAP です。


enum GSVG_FLIP_FLAG

enum GSVG_FLIP_FLAG {
    GSVG_FLIP_NONE = 0,         /* 反転なし */
    GSVG_FLIP_LR = (1 << 0),    /* 左右反転 */
    GSVG_FLIP_TB = (1 << 1)     /* 上下反転 */
};

反転フラグです。


関数


gsvg_init

SVG ライブラリを初期化します。

DOMErr gsvg_init( void );

パラメータ

なし。

戻り値

正常終了時は、DOMERR_OK が返ります。
エラーが発生した場合は、エラーコードが返ります。

解説

gsvg_init 関数は、SVG ライブラリを初期化します。
Gresan SVG Library を使用する前に一度だけ呼んでください。
また、Gresan SVG Library の使用を終了したら、gsvg_term 関数を呼んでください。

参照

gsvg_term


gsvg_term

SVG ライブラリを終了します。

void gsvg_term( void );

パラメータ

なし。

戻り値

なし。

解説

gsvg_term 関数は、SVG ライブラリを終了します。

参照

gsvg_init


gsvg_load_file

SVG ドキュメントをファイルからロードします。

DOMErr gsvg_load_file( GSVGRef **outGSVGRef, GSVGFileSpec inFileSpec, XMLERR *outXmlErr,
    int *ioWidth, int *ioHeight, double inScale, int inFallbackWidth, int inFallbackHeight );

パラメータ

outGSVGRef
[out] 正常終了時には、SVG ドキュメントを現わす SVG レファレンスが返ります。

inFileSpec
[in] SVG ファイル指定。
Macintoshでは、FSSpec * を指定します。
Windowsでは、ファイルのフルパスを示す NULL 終端文字列を指定します。

outXmlErr
[out] XMLエラーが発生した場合、そのエラー内容詳細が返されます。

ioWidth
[in] 負の値を指定すると、SVG ドキュメントの指定による横幅(ドット単位)を使用します。
SVG ドキュメントに横幅の指定がない場合には、inFallbackWidth を使用します。
0以上の値を指定すると、その値をSVG ドキュメントの横幅として使用します。
[out] 最終的に使用されたSVG ドキュメントの横幅(ドット単位)が返されます。

ioHeight
[in] 負の値を指定すると、SVG ドキュメントの指定による縦幅(ドット単位)を使用します。
SVG ドキュメントに縦幅の指定がない場合には、inFallbackHeight を使用します。
0以上の値を指定すると、その値を SVG ドキュメントの縦幅として使用します。
[out] 最終的に使用された SVG ドキュメントの縦幅(ドット単位)が返されます。

inScale
[in] SVG ドキュメントのスケールを浮動小数点形式で指定します。
例えば、1.0で等倍、2.0で2倍、0.5で1/2倍です。
0以下の値を指定してはなりません。

inFallbackWidth
[in] SVG ドキュメントに横幅の指定がない場合に使用される横幅(ドット単位)を指定します。

inFallbackHeight
[in] SVG ドキュメントに縦幅の指定がない場合に使用される縦幅(ドット単位)を指定します。

戻り値

正常終了時は、DOMERR_OK が返ります。
エラーが発生した場合は、エラーコードが返ります。
更にXMLエラーの場合は、outXmlErr にエラー詳細が返ります。

解説

gsvg_load_file 関数は、inFileSpec で指定された SVG ファイルから SVG ドキュメントをロードします。
正常にロードできると、その SVG ドキュメントを現わす SVG レファレンスが返ります。
この SVG レファレンスを他の処理関数(gsvg_draw 関数、gsvg_set_canvas_scale 関数など)で使用することが出来ます。
SVG ドキュメントを閉じる際には、gsvg_free 関数にて SVG レファレンスを解放してください。

参照

gsvg_draw | gsvg_free


gsvg_draw

SVG ドキュメントをグラフポートに描画します。

DOMErr gsvg_draw( GSVGRef *inGSVGRef, GSVGGPort inGPort, const GSVGRect *inBox );

パラメータ

inGSVGRef
[in] 描画する SVG レファレンスを指定します。

inGPort
[in] 描画するグラフポートを指定します。
Macintoshでは、CGrafPtr 型を指定します。
Windowsでは、HDC 型を指定します。

inBox
[in] 描画する矩形を指定します。
Macintoshでは、Rect * 型を指定します。
Windowsでは、RECT * 型を指定します。
この矩形の内部のみが描画されます。
NULL を指定してはなりません。

戻り値

正常終了時は、DOMERR_OK が返ります。
エラーが発生した場合は、エラーコードが返ります。

解説

gsvg_draw 関数は、指定された SVG レファレンスが指す SVG ドキュメントをグラフポートに描画します。

参照

gsvg_load_file


gsvg_free

SVG ドキュメントを解放します。

void gsvg_free( GSVGRef *inGSVGRef );

パラメータ

inGSVGRef
[in] 解放する SVG レファレンスを指定します。

戻り値

なし。

解説

gsvg_free 関数は、SVG レファレンスが内部的に保持している SVG ドキュメント情報を全て解放します。
SVG ドキュメントを使用し終わった時に、必ず呼んでください。

参照

gsvg_load_file | gsvg_new


gsvg_set_default_bg_color

表示時のデフォルト背景色を指定します。

void gsvg_set_default_bg_color( unsigned long inBgColor );

パラメータ

inBgColor
[in] デフォルト背景色を 0xRRGGBB の形式で指定します。
例えば、白は 0xFFFFFF、黒は 0x000000、赤は 0xFF0000、黄色は 0xFFFF00 です。

戻り値

なし。

解説

gsvg_set_default_bg_color 関数は、これ以後作成される SVG ドキュメントのデフォルト背景色を指定します。
既に作成された SVG ドキュメントの背景色は変わりませんので注意してください。
当関数が呼出される以前のデフォルト背景色は、白に設定されています。

全ての SVG ドキュメントを白以外の背景色に設定したい場合には、アプリケーションの初期化時に当関数を呼出しておくことをお薦めします。
また SVG ドキュメント毎に背景色を変えたい場合には、gsvg_set_bg_color 関数が使用できます。

参照

gsvg_load_file | gsvg_draw | gsvg_get_default_bg_color


gsvg_get_default_bg_color

表示時のデフォルト背景色を取得します。

unsigned long gsvg_get_default_bg_color( void );

パラメータ

なし。

戻り値

デフォルト背景色が 0xRRGGBB の形式で返ります。
例えば、白は 0xFFFFFF、黒は 0x000000、赤は 0xFF0000、黄色は 0xFFFF00 です。

解説

gsvg_get_default_bg_color 関数は、現在設定されている表示時のデフォルト背景色を取得します。

参照

gsvg_load_file | gsvg_draw | gsvg_set_default_bg_color


gsvg_set_bg_color

表示時の背景色を指定します。

DOMErr gsvg_set_bg_color( GSVGRef *inGSVGRef, unsigned long inBgColor );

パラメータ

inGSVGRef
[in] 背景色を指定する SVG レファレンスを指定します。

inBgColor
[in] 背景色を 0xRRGGBB の形式で指定します。
例えば、白は 0xFFFFFF、黒は 0x000000、赤は 0xFF0000、黄色は 0xFFFF00 です。

戻り値

正常終了時は、DOMERR_OK が返ります。
エラーが発生した場合は、エラーコードが返ります。

解説

gsvg_set_bg_color 関数は、gsvg_draw 関数で SVG ドキュメントを表示する際の、背景色を指定します。
(gsvg_load_file 関数、gsvg_new 関数により)SVG ドキュメントが作成された初期状態では、背景色はデフォルト背景色に設定されています。
デフォルト背景色が未設定時には、背景色は白に設定されています。

参照

gsvg_load_file | gsvg_draw | gsvg_get_bg_color


gsvg_get_bg_color

表示時の背景色を取得します。

unsigned long gsvg_get_bg_color( GSVGRef inGSVGRef );

パラメータ

inGSVGRef
[in] 背景色を取得する SVG レファレンスを指定します。

戻り値

現在の表示時の背景色が返ります。

解説

gsvg_get_bg_color 関数は、現在設定されている表示時の背景色を取得します。

参照

gsvg_load_file | gsvg_draw | gsvg_set_bg_color


gsvg_set_default_pixels_per_inch

表示時のデフォルトピクセル/インチを指定します。

void gsvg_set_default_pixels_per_inch( double inPixelsPerInch );

パラメータ

inPixelsPerInch
[in] デフォルトピクセル/インチを浮動小数点形式で指定します。
一般的には、96.0、72.0などです。
0以下の値を指定してはなりません。

戻り値

なし。

解説

gsvg_set_default_pixels_per_inch 関数は、これ以後作成される SVG ドキュメントのデフォルトピクセル/インチを指定します。
既に作成された SVG ドキュメントのピクセル/インチは変わりませんので注意してください。
当関数が呼出される以前のデフォルトピクセル/インチは、72.0に設定されています。

全ての SVG ドキュメントを72.0以外のピクセル/インチに設定したい場合には、アプリケーションの初期化時に当関数を呼出しておくことをお薦めします。
また SVG ドキュメント毎にピクセル/インチを変えたい場合には、gsvg_set_pixels_per_inch 関数が使用できます。

参照

gsvg_load_file | gsvg_draw | gsvg_get_default_pixels_per_inch


gsvg_get_default_pixels_per_inch

表示時のデフォルトピクセル/インチを取得します。

double gsvg_get_default_pixels_per_inch( void );

パラメータ

なし。

戻り値

デフォルトピクセル/インチが浮動小数点形式で返ります。

解説

gsvg_get_default_pixels_per_inch 関数は、現在設定されている表示時のデフォルトピクセル/インチを取得します。

参照

gsvg_load_file | gsvg_draw | gsvg_set_default_pixels_per_inch


gsvg_set_pixels_per_inch

表示時のピクセル/インチを指定します。

DOMErr gsvg_set_pixels_per_inch( GSVGRef inGSVGRef, double inPixelsPerInch );

パラメータ

inGSVGRef
[in] ピクセル/インチを指定する SVG レファレンスを指定します。

inPixelsPerInch
[in] ピクセル/インチを浮動小数点形式で指定します。
一般的には、96.0、72.0などです。0以下の値を指定してはなりません。

戻り値

正常終了時は、DOMERR_OK が返ります。
エラーが発生した場合は、エラーコードが返ります。

解説

gsvg_set_pixels_per_inch 関数は、gsvg_draw 関数で SVG ドキュメントを表示する際の、ピクセル/インチを指定します。
(gsvg_load_file 関数、gsvg_new 関数により)SVG ドキュメントが作成された初期状態では、ピクセル/インチはデフォルトピクセル/インチに設定されています。
デフォルトピクセル/インチが未設定時には、ピクセル/インチは72.0に設定されています。

参照

gsvg_load_file | gsvg_draw | gsvg_get_pixels_per_inch


gsvg_get_pixels_per_inch

表示時のピクセル/インチを取得します。

double gsvg_get_pixels_per_inch( GSVGRef inGSVGRef );

パラメータ

inGSVGRef
[in] ピクセル/インチを取得する SVG レファレンスを指定します。

戻り値

現在の表示時のピクセル/インチが返ります。

解説

gsvg_get_pixels_per_inch 関数は、現在設定されている表示時のピクセル/インチを取得します。

参照

gsvg_load_file | gsvg_draw | gsvg_set_pixels_per_inch


gsvg_set_canvas_scale

表示時のスケールを指定します。

DOMErr gsvg_set_canvas_scale( GSVGRef *inGSVGRef, double inScale, int *outWidth, int *outHeight );

パラメータ

inGSVGRef
[in] スケールを指定する SVG レファレンスを指定します。

inScale
[in] スケールを浮動小数点形式で指定します。
例えば、1.0で等倍、2.0で2倍、1.5で1/2倍です。0以下の値を指定してはなりません。

outWidth
[out] スケール後の、SVG ドキュメントの横幅(ドット単位)が返されます。

outHeight
[out] スケール後の、SVG ドキュメントの縦幅(ドット単位)が返されます。

戻り値

正常終了時は、DOMERR_OK が返ります。
エラーが発生した場合は、エラーコードが返ります。

解説

gsvg_set_canvas_scale 関数は、gsvg_draw 関数で SVG ドキュメントを表示する際の、スケールを指定します。

参照

gsvg_load_file | gsvg_draw | gsvg_get_canvas_scale


gsvg_get_canvas_scale

表示時のスケールを取得します。

double gsvg_get_canvas_scale( GSVGRef inGSVGRef );

パラメータ

inGSVGRef
[in] スケールを取得する SVG レファレンスを指定します。

戻り値

現在の表示時のスケールが返ります。

解説

gsvg_get_canvas_scale 関数は、現在設定されている表示時のスケールを取得します。

参照

gsvg_load_file | gsvg_draw | gsvg_set_canvas_scale


gsvg_new

空の SVG ドキュメントを作成します。

DOMErr gsvg_new( GSVGRef *outGSVGRef,
    int inWidth, int inHeight, double inScale, int inFallbackWidth, int inFallbackHeight );

パラメータ

outGSVGRef
[out] 正常終了時には、SVG ドキュメントを現わす SVG レファレンスが返ります。

ioWidth
[in] 正の値を指定すると、SVG ドキュメントの横幅(ドット単位)として使用されます。
0以下の値を指定すると、SVG ドキュメントは横幅指定なしとして作成されます。

ioHeight
[in] 正の値を指定すると、SVG ドキュメントの縦幅(ドット単位)として使用されます。
0以下の値を指定すると、SVG ドキュメントは縦幅指定なしとして作成されます。

inScale
[in] SVG ドキュメント表示時のスケールを浮動小数点形式で指定します。
例えば、1.0で等倍、2.0で2倍、1.5で1/2倍です。
0以下の値を指定してはなりません。

inFallbackWidth
[in] SVG ドキュメントが横幅指定なしの場合に、キャンバスの横幅(ドット単位)として使用されます。

inFallbackHeight
[in] SVG ドキュメントが縦幅指定なしの場合に、キャンバスの縦幅(ドット単位)として使用されます。

戻り値

正常終了時は、DOMERR_OK が返ります。
エラーが発生した場合は、エラーコードが返ります。

解説

gsvg_new 関数は、空の SVG ドキュメントを作成します。
正常に作成できると、その SVG ドキュメントを現わす SVG レファレンスが返ります。
この SVG レファレンスを他の処理関数(gsvg_draw 関数、gsvg_set_canvas_scale 関数など)で使用することが出来ます。
SVG ドキュメントを閉じる際には、gsvg_freeにて SVG レファレンスを解放してください。

現在のところ、SVG ドキュメントの編集機能が実装されていませんので、gsvg_new 関数を使用する意味はありません。

参照

gsvg_draw | gsvg_free


gsvg_save_file

SVG ドキュメントをファイルにセーブします。

DOMErr gsvg_save_file( GSVGRef *inGSVGRef );

パラメータ

inGSVGRef
[in] セーブする SVG レファレンスを指定します。

戻り値

正常終了時は、DOMERR_OK が返ります。
エラーが発生した場合は、エラーコードが返ります。

解説

gsvg_save_file 関数は、gsvg_load_file 関数で SVG ファイルからロードされた SVG ドキュメントを同じファイルにセーブします。
gzip 圧縮の有無は、元の SVG ドキュメントと同じになります。
エンコーディングは、UTF-8となります。
改行コードは、Macintosh では CR、Windows では CRLF となります。

現在のところ、SVG ドキュメントの編集機能が実装されていませんので、gsvg_save_file 関数を使用する意味はありません。

参照

gsvg_load_file | gsvg_new | gsvg_free


gsvg_save_file_as

SVG ドキュメントを他のファイルにセーブします。

DOMErr gsvg_save_file_as( GSVGRef *inGSVGRef, GSVGFileSpec inFileSpec, PubBool is_gzip );

パラメータ

inGSVGRef
[in] セーブする SVG レファレンスを指定します。

inFileSpec
[in] セーブするファイルのスペシフィケーション。
Macintoshでは、FSSpec * を指定します。
Windowsでは、ファイルのフルパスを示す NULL 終端文字列を指定します。

is_gzip
[in] gzip 圧縮フラグ。
TRUEの場合は、gzip 圧縮されます。(SVGZ 形式)
FALSEの場合は、gzip 圧縮されません。(SVG テキスト形式)
エンコーディングは、UTF-8となります。
改行コードは、Macintosh では CR、Windows では CRLF となります。

戻り値

正常終了時は、DOMERR_OK が返ります。
エラーが発生した場合は、エラーコードが返ります。

解説

gsvg_save_file_as 関数は、gsvg_load_file 関数で SVG ファイルからロードされた SVG ドキュメントを他のファイルにセーブします。
また is_gzip にて gzip 圧縮の有無を指定します。

参照

gsvg_load_file | gsvg_new | gsvg_free


gsvg_load_mem

SVG ドキュメントをメモリファイルからロードします。

DOMErr gsvg_load_mem( GSVGRef **outGSVGRef, const PubUChar *mem, size_t mem_size, XMLERR *outXmlErr,
    int *ioWidth, int *ioHeight, double inScale, int inFallbackWidth, int inFallbackHeight );

パラメータ

outGSVGRef
[out] 正常終了時には、SVG ドキュメントを現わす SVG レファレンスが返ります。

mem
[in] メモリファイルのアドレスを指定します。

mem_size
[in] メモリファイルの長さを指定します。

outXmlErr
[out] XMLエラーが発生した場合、そのエラー内容詳細が返されます。

ioWidth
[in] 負の値を指定すると、SVG ドキュメントの指定による横幅(ドット単位)を使用します。
SVG ドキュメントに横幅の指定がない場合には、inFallbackWidth を使用します。
0以上の値を指定すると、その値を SVG ドキュメントの横幅として使用します。
[out] 最終的に使用された SVG ドキュメントの横幅(ドット単位)が返されます。

ioHeight
[in] 負の値を指定すると、SVG ドキュメントの指定による縦幅(ドット単位)を使用します。
SVG ドキュメントに縦幅の指定がない場合には、inFallbackHeight を使用します。
0以上の値を指定すると、その値を SVG ドキュメントの縦幅として使用します。
[out] 最終的に使用された SVG ドキュメントの縦幅(ドット単位)が返されます。

inScale
[in] SVG ドキュメントのスケールを浮動小数点形式で指定します。
例えば、1.0で等倍、2.0で2倍、0.5で1/2倍です。
0以下の値を指定してはなりません。

inFallbackWidth
[in] SVG ドキュメントに横幅の指定がない場合に使用される横幅(ドット単位)を指定します。

inFallbackHeight
[in] SVG ドキュメントに縦幅の指定がない場合に使用される縦幅(ドット単位)を指定します。

戻り値

正常終了時は、DOMERR_OK が返ります。
エラーが発生した場合は、エラーコードが返ります。
更にXMLエラーの場合は、outXmlErr にエラー詳細が返ります。

解説

gsvg_load_mem 関数は、mem, mem_size で指定された SVG メモリファイルから SVG ドキュメントをロードします。
正常にロードできると、その SVG ドキュメントを現わす SVG レファレンスが返ります。
この SVG レファレンスを他の処理関数(gsvg_draw 関数、gsvg_set_canvas_scale 関数など)で使用することが出来ます。
SVG ドキュメントを閉じる際には、gsvg_free 関数にて SVG レファレンスを解放してください。

参照

gsvg_draw | gsvg_free


gsvg_save_mem

SVG ドキュメントをメモリファイルにセーブします。

DOMErr gsvg_save_mem( GSVGRef *inGSVGRef, PubUChar **mem, size_t *mem_size,
    PubBool is_gzip, enum XML_LB linebreak );

パラメータ

inGSVGRef
[in] セーブする SVG レファレンスを指定します。

mem
[out] メモリファイルのアドレスが返ります。

mem_size
[out] メモリファイルの長さが返ります。

is_gzip
[in] gzip 圧縮フラグ。
TRUEの場合は、gzip 圧縮されます。(SVGZ 形式)
FALSEの場合は、gzip 圧縮されません。(SVG テキスト形式)

linebreak
[in] ラインブレイク。
XML_LB_CR CR(0x0D)
XML_LB_LF LF(0x0A)
XML_LB_CRLF CRLF(0x0D,0x0A)

戻り値

正常終了時は、DOMERR_OK が返ります。
エラーが発生した場合は、エラーコードが返ります。

解説

gsvg_save_mem 関数は、gsvg_load_file 関数、gsvg_load_mem 関数等でロードされた SVG ドキュメントをメモリファイルにセーブします。
また is_gzip にて gzip 圧縮の有無を指定します。
エンコーディングは、UTF-8となります。
改行コードは、linebreak の指定によります。

メモリファイルを使用し終わったら、gsvg_free_mem 関数にて解放してください。

参照

gsvg_load_mem | gsvg_free_mem


gsvg_free_mem

SVG メモリファイルを解放します。

void gsvg_free_mem( PubUChar *mem );

パラメータ

mem
[in] メモリファイルのアドレスを指定します。

戻り値

なし。

解説

gsvg_free_mem 関数は、gsvg_save_mem 関数で作成されたメモリファイルを解放します。

参照

gsvg_save_mem


gsvg_get_file_canvas_size

SVG ファイルの画像サイズを取得する。

DOMErr gsvg_get_file_canvas_size( GSVGFileSpec inFileSpec, 
    int *outWidth, int *outHeight, double inScale, double inPixelsPerInch, int inFallbackWidth, int inFallbackHeight );

パラメータ

inFileSpec
[in] SVG ファイル指定。
Macintoshでは、FSSpec * を指定します。
Windowsでは、ファイルのフルパスを示す NULL 終端文字列を指定します。

outWidth
[out] SVG ドキュメントの横幅(ドット単位)が返されます。

outHeight
[out] SVG ドキュメントの縦幅(ドット単位)が返されます。

inScale
[in] SVG ドキュメントのスケールを浮動小数点形式で指定します。
例えば、1.0で等倍、2.0で2倍、0.5で1/2倍です。
0以下の値を指定してはなりません。

inPixelsPerInch
[in] ピクセル/インチを浮動小数点形式で指定します。
一般的には、96.0、72.0などです。0以下の値を指定してはなりません。

inFallbackWidth
[in] SVG ドキュメントに横幅の指定がない場合に使用される横幅(ドット単位)を指定します。

inFallbackHeight
[in] SVG ドキュメントに縦幅の指定がない場合に使用される縦幅(ドット単位)を指定します。

戻り値

正常終了時は、DOMERR_OK が返ります。
エラーが発生した場合は、エラーコードが返ります。

解説

gsvg_get_file_canvas_size 関数は、inFileSpec で指定された SVG ファイルの画像サイズを取得します。

参照

gsvg_export_file_to_ofs


gsvg_get_mem_canvas_size

SVG メモリファイルの画像サイズを取得する。

DOMErr gsvg_get_mem_canvas_size( const PubUChar *mem, size_t mem_size, 
    int *outWidth, int *outHeight, double inScale, double inPixelsPerInch, int inFallbackWidth, int inFallbackHeight );

パラメータ

mem
[in] メモリファイルのアドレスを指定します。

mem_size
[in] メモリファイルの長さを指定します。

outWidth
[out] SVG ドキュメントの横幅(ドット単位)が返されます。

outHeight
[out] SVG ドキュメントの縦幅(ドット単位)が返されます。

inScale
[in] SVG ドキュメントのスケールを浮動小数点形式で指定します。
例えば、1.0で等倍、2.0で2倍、0.5で1/2倍です。
0以下の値を指定してはなりません。

inPixelsPerInch
[in] ピクセル/インチを浮動小数点形式で指定します。
一般的には、96.0、72.0などです。0以下の値を指定してはなりません。

inFallbackWidth
[in] SVG ドキュメントに横幅の指定がない場合に使用される横幅(ドット単位)を指定します。

inFallbackHeight
[in] SVG ドキュメントに縦幅の指定がない場合に使用される縦幅(ドット単位)を指定します。

戻り値

正常終了時は、DOMERR_OK が返ります。
エラーが発生した場合は、エラーコードが返ります。

解説

gsvg_get_mem_canvas_size 関数は、mem, memsizeで指定された SVG メモリファイルの画像サイズを取得します。

参照

gsvg_export_mem_to_ofs


gsvg_export_file_to_ofs

SVG ファイルをオフスクリーンにエクスポートする。

DOMErr gsvg_export_file_to_ofs( GSVGFileSpec inFileSpec, 
    double inScale, double inPixelsPerInch, int inFallbackWidth, int inFallbackHeight, 
    GSVGOfs *outRGBOfs, GSVGOfs *outAlphaOfs, unsigned long inBgColor );

パラメータ

inFileSpec
[in] SVG ファイル指定。
Macintoshでは、FSSpec * を指定します。
Windowsでは、ファイルのフルパスを示す NULL 終端文字列を指定します。

inScale
[in] SVG ドキュメントのスケールを浮動小数点形式で指定します。
例えば、1.0で等倍、2.0で2倍、0.5で1/2倍です。
0以下の値を指定してはなりません。

inPixelsPerInch
[in] ピクセル/インチを浮動小数点形式で指定します。
一般的には、96.0、72.0などです。0以下の値を指定してはなりません。

inFallbackWidth
[in] SVG ドキュメントに横幅の指定がない場合に使用される横幅(ドット単位)を指定します。

inFallbackHeight
[in] SVG ドキュメントに縦幅の指定がない場合に使用される縦幅(ドット単位)を指定します。

outRGBOfs
[out] 正常終了時には、RGB オフスクリーンが返ります。
Macintosh では、32 Bit Color の GWorld です。
Windows では、24 Bit Color の DIB です。

outAlphaOfs
[in] NULL を指定すると、アルファ情報は返されず、画像は inBGColor を背景色として outRGBOfs に返されます。
GSVGOfs 型変数へのポインタを指定すると、アルファオフスクリーンが返されます。
[out] [in] で非 NULL が指定され、正常終了時には、アルファオフスクリーンが返ります。
Macintosh では、8 Bit Color の GWorld です。
Windows では、24 Bit Color の DIB の Red ペインにアフファ情報が返ります。

inBgColor
[in] 背景色を 0xRRGGBB の形式で指定します。
outAlphaOfs に NULL が指定された時のみ、使用されます。
例えば、白は 0xFFFFFF、黒は 0x000000、赤は 0xFF0000、黄色は 0xFFFF00 です。

戻り値

正常終了時は、DOMERR_OK が返ります。
エラーが発生した場合は、エラーコードが返ります。

解説

gsvg_export_file_to_ofs 関数は、inFileSpec で指定された SVG ファイルをオフスクリーンにエクスポートします。
引き数の指定により、背景色と合成して1枚の画像としてエクスポートか、RGB 画像とアルファ画像を別にエクスポートを、選択できます。
オフスクリーンを使用し終わったら、gsvg_free_ofs 関数にてオフスクリーンを解放してください。

参照

gsvg_free_ofs | gsvg_get_file_canvas_size


gsvg_export_mem_to_ofs

SVG メモリファイルをオフスクリーンにエクスポートする。

DOMErr gsvg_export_mem_to_ofs( const PubUChar *mem, size_t mem_size, 
    double inScale, double inPixelsPerInch, int inFallbackWidth, int inFallbackHeight, 
    GSVGOfs *outRGBOfs, GSVGOfs *outAlphaOfs, unsigned long inBgColor );

パラメータ

mem
[in] メモリファイルのアドレスを指定します。

mem_size
[in] メモリファイルの長さを指定します。

inScale
[in] SVG ドキュメントのスケールを浮動小数点形式で指定します。
例えば、1.0で等倍、2.0で2倍、0.5で1/2倍です。
0以下の値を指定してはなりません。

inPixelsPerInch
[in] ピクセル/インチを浮動小数点形式で指定します。
一般的には、96.0、72.0などです。0以下の値を指定してはなりません。

inFallbackWidth
[in] SVG ドキュメントに横幅の指定がない場合に使用される横幅(ドット単位)を指定します。

inFallbackHeight
[in] SVG ドキュメントに縦幅の指定がない場合に使用される縦幅(ドット単位)を指定します。

outRGBOfs
[out] 正常終了時には、RGB オフスクリーンが返ります。
Macintosh では、32 Bit Color の GWorld です。
Windows では、24 Bit Color の DIB です。

outAlphaOfs
[in] NULL を指定すると、アルファ情報は返されず、画像は inBGColor を背景色として outRGBOfs に返されます。
GSVGOfs 型変数へのポインタを指定すると、アルファオフスクリーンが返されます。
[out] [in] で非 NULL が指定され、正常終了時には、アルファオフスクリーンが返ります。
Macintosh では、8 Bit Color の GWorld です。
Windows では、24 Bit Color の DIB の Red ペインにアフファ情報が返ります。

inBgColor
[in] 背景色を 0xRRGGBB の形式で指定します。
outAlphaOfs に NULL が指定された時のみ、使用されます。
例えば、白は 0xFFFFFF、黒は 0x000000、赤は 0xFF0000、黄色は 0xFFFF00 です。

戻り値

正常終了時は、DOMERR_OK が返ります。
エラーが発生した場合は、エラーコードが返ります。

解説

gsvg_export_mem_to_ofs 関数は、mem, mem_size で指定された SVG メモリファイルをオフスクリーンにエクスポートします。
引き数の指定により、背景色と合成して1枚の画像としてエクスポートか、RGB 画像とアルファ画像を別にエクスポートを、選択できます。
オフスクリーンを使用し終わったら、gsvg_free_ofs 関数にてオフスクリーンを解放してください。

参照

gsvg_free_ofs | gsvg_get_mem_canvas_size


gsvg_export_ofs

SVG ドキュメントをオフスクリーンにエクスポートする。

DOMErr gsvg_export_ofs( GSVGRef *inGSVGRef, 
    GSVGOfs *outRGBOfs, GSVGOfs *outAlphaOfs, unsigned long inBgColor );

パラメータ

inGSVGRef
[in] エクスポートする SVG レファレンスを指定します。

outRGBOfs
[out] 正常終了時には、RGB オフスクリーンが返ります。
Macintosh では、32 Bit Color の GWorld です。
Windows では、24 Bit Color の DIB です。

outAlphaOfs
[in] NULL を指定すると、アルファ情報は返されず、画像は inBGColor を背景色として outRGBOfs に返されます。
GSVGOfs 型変数へのポインタを指定すると、アルファオフスクリーンが返されます。
[out] [in] で非 NULL が指定され、正常終了時には、アルファオフスクリーンが返ります。
Macintosh では、8 Bit Color の GWorld です。
Windows では、24 Bit Color の DIB の Red ペインにアフファ情報が返ります。

inBgColor
[in] 背景色を 0xRRGGBB の形式で指定します。
outAlphaOfs に NULL が指定された時のみ、使用されます。
例えば、白は 0xFFFFFF、黒は 0x000000、赤は 0xFF0000、黄色は 0xFFFF00 です。

戻り値

正常終了時は、DOMERR_OK が返ります。
エラーが発生した場合は、エラーコードが返ります。

解説

gsvg_export_ofs 関数は、指定された SVG レファレンスが指す SVG ドキュメントをオフスクリーンにエクスポートします。
引き数の指定により、背景色と合成して1枚の画像としてエクスポートか、RGB 画像とアルファ画像を別にエクスポートを、選択できます。
オフスクリーンを使用し終わったら、gsvg_free_ofs 関数にてオフスクリーンを解放してください。

参照

gsvg_free_ofs


gsvg_get_trans_ofs_bbox

SVG ドキュメントの移動、スケール、回転時のオフスクリーンのバウンディングボックスを取得する。

DOMErr gsvg_get_trans_ofs_bbox( GSVGRef *inGSVGRef, double inX, double inY, double inScale, double inRotate,
    GSVGRect *outBBox, GSVGDPoint outBPoints[4] );

パラメータ

inGSVGRef
[in] エクスポートする SVG レファレンスを指定します。

inX
[in] 左上位置 X座標を指定します。

inY
[in] 左上位置 Y座標を指定します。

inScale
[in] スケールを指定します。

inRotate
[in] 回転角を指定します。(単位はdegree、時計回り)

outBBox
[out] SVG ドキュメントの移動、スケール、回転後のオフスクリーンのバウンディングボックスが返ります。
(回転したドキュメント矩形を大きく囲む XY 軸に沿った矩形)

outBPoints
[out] SVG ドキュメントの移動、スケール、回転後のオフスクリーンのバウンディングポインツが返ります。
(回転したドキュメント矩形をぴったり囲む矩形の4点)

戻り値

正常終了時は、DOMERR_OK が返ります。
エラーが発生した場合は、エラーコードが返ります。

解説

gsvg_get_trans_ofs_bbox 関数は、SVG ドキュメントの移動、スケール、回転後のオフスクリーンのバウンディングボックスを返します。
処理順は、元ドキュメント画像を移動、移動後画像の左上点を中心にスケール、スケール後画像の真ん中を中心に回転、となります。。
バウンディングボックスは、処理後のドキュメント矩形を囲む水平、垂直方向に平行な最小矩形です。
バウンディングポインツは、処理後のドキュメント矩形を回転も含めて正確に囲む4点です。

参照

gsvg_trans_blend_ofs


gsvg_trans_blend_ofs

SVG ドキュメントを反転、移動、スケール、回転し、オフスクリーンにブレンドする。

DOMErr gsvg_trans_blend_ofs( GSVGRef *inGSVGRef, GSVGOfs inOfs, 
    double inX, double inY, double inScale, double inRotate, enum GSVG_FLIP_FLAG inFlipFlag );

パラメータ

inGSVGRef
[in] エクスポートする SVG レファレンスを指定します。

inOfs
[in] ブレンドするオフスクリーンを指定します。

inX
[in] 左上位置 X座標を指定します。

inY
[in] 左上位置 Y座標を指定します。

inScale
[in] スケールを指定します。

inRotate
[in] 回転角を指定します。(単位はdegree、時計回り)

inFlipFlag
[in] 反転フラグを指定します。(GSVG_FLIP_NONE、GSVG_FLIP_LR、GSVG_FLIP_TB)
GSVG_FLIP_NONE 以外のフラグは '|' で連結し複数指定ができます。

戻り値

正常終了時は、DOMERR_OK が返ります。
エラーが発生した場合は、エラーコードが返ります。

解説

gsvg_trans_blend_ofs 関数は、SVG ドキュメントを反転、移動、スケール、回転し、既存のオフスクリーンにブレンドします。
処理順は、元ドキュメント画像を反転、移動、移動後画像の左上点を中心にスケール、スケール後画像の真ん中を中心に回転、となります。。

参照

gsvg_get_trans_ofs_bbox


gsvg_trans_export_ofs

SVG ドキュメントを反転、移動、スケール、回転し、オフスクリーンにエクスポートする。

DOMErr gsvg_trans_export_ofs( GSVGRef *inGSVGRef, 
    double inX, double inY, double inScale, double inRotate, enum GSVG_FLIP_FLAG inFlipFlag, 
    GSVGOfs *outRGBOfs, GSVGOfs *outAlphaOfs, unsigned long inBgColor, 
    double *outX, double *outY );

パラメータ

inGSVGRef
[in] エクスポートする SVG レファレンスを指定します。

inOfs
[in] ブレンドするオフスクリーンを指定します。

inX
[in] 左上位置 X座標を指定します。

inY
[in] 左上位置 Y座標を指定します。

inScale
[in] スケールを指定します。

inRotate
[in] 回転角を指定します。(単位はdegree、時計回り)

inFlipFlag
[in] 反転フラグを指定します。(GSVG_FLIP_NONE、GSVG_FLIP_LR、GSVG_FLIP_TB)
GSVG_FLIP_NONE 以外のフラグは '|' で連結し複数指定ができます。

outRGBOfs
[out] 正常終了時には、RGB オフスクリーンが返ります。
Macintosh では、32 Bit Color の GWorld です。
Windows では、24 Bit Color の DIB です。

outAlphaOfs
[in] NULL を指定すると、アルファ情報は返されず、画像は inBGColor を背景色として outRGBOfs に返されます。
GSVGOfs 型変数へのポインタを指定すると、アルファオフスクリーンが返されます。
[out] [in] で非 NULL が指定され、正常終了時には、アルファオフスクリーンが返ります。
Macintosh では、8 Bit Color の GWorld です。
Windows では、24 Bit Color の DIB の Red ペインにアフファ情報が返ります。

inBgColor
[in] 背景色を 0xRRGGBB の形式で指定します。
outAlphaOfs に NULL が指定された時のみ、使用されます。
例えば、白は 0xFFFFFF、黒は 0x000000、赤は 0xFF0000、黄色は 0xFFFF00 です。

outX
[out] オフスクリーン描画位置 X座標(NULL:情報が返されない)

outY
[out] オフスクリーン描画位置 Y座標(NULL:情報が返されない)

戻り値

正常終了時は、DOMERR_OK が返ります。
エラーが発生した場合は、エラーコードが返ります。

解説

gsvg_trans_export_ofs 関数は、SVG ドキュメントを反転、スケール、回転し、オフスクリーンにエクスポートします。
処理順は、反転、元ドキュメント画像の左上点を中心にスケール、スケール後画像の真ん中を中心に回転、となります。
移動処理は行われませんが、オフスクリーン描画位置として情報が返ります。
オフスクリーンを使用し終わったら、gsvg_free_ofs 関数にてオフスクリーンを解放してください。

参照

gsvg_get_trans_ofs_bbox


gsvg_free_ofs

オフスクリーンを解放する。

void gsvg_free_ofs( GSVGOfs inOfs );

パラメータ

inOfs
[in] 解放するオフスクリーンを指定します。

戻り値

なし。

解説

gsvg_free_ofs 関数は、オフスクリーンを解放します。
gsvg_export_ofs 関数等により返されたオフスクリーンを使用し終わったら、必ず呼んでください。

参照

gsvg_export_file_to_ofs | gsvg_export_mem_to_ofs | gsvg_export_ofs | gsvg_trans_export_ofs


Gresan SVG Library Copyright 2002-2004 Symphony, Inc.

Gresan SVG Library に関するお問い合わせ、サポートは、
http://www.symphonyinc.co.jp/gresan/

(有)シンフォニー、およびその他の製品に関するお問い合わせは、
http://www.symphonyinc.co.jp

へ、お越しください。