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;
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 /* データの終わり(内部使用) */ };
typedef void *GSVGRef;SVG ドキュメントを現わす SVG レファレンス型です。
利用者にとっては内部構造はブラックボックスです。
gsvg_load_file 関数、gsvg_new 関数により作成され、gsvg_free 関数により解放されます。
属性の取得、設定には、アクセス関数を使ってください。
Macintosh版
typedef FSSpec *GSVGFileSpec;Windows版
typedef char *GSVGFileSpec;ファイル指定型です。
Macintoshでは、FSSpec * です。
Windowsでは、ファイルのフルパスを示す NULL 終端文字列です。
typedef struct { double x; double y; } GSVGDPoint;浮動小数点ポイント型です。
Macintosh版
typedef Rect GSVGRect;Windows版
typedef RECT GSVGRect;矩形型です。
Macintoshでは、Rect です。
Windowsでは、RECT です。
Macintosh版
typedef CGrafPtr GSVGGPort;Windows版
typedef HDC GSVGGPort;グラフポート型です。
Macintoshでは、CGrafPtr です。
Windowsでは、HDC です。
typedef struct { enum XML_Error code; /* expatエラーコード */ int line; /* エラーの発生した行番号 */ int column; /* エラーの発生したカラム番号 */ long bytes; /* エラーの発生したファイル位置 */ } XMLERR;XMLエラー時のエラー詳細情報を示します。
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 { XML_LB_CR = 0, XML_LB_LF XML_LB_CRLF };改行コード指定。
Macintosh版
typedef GWorldPtr GSVGOfs;Windows版
typedef HBITMAP GSVGOfs;オフスクリーン型です。
Macintoshでは、GWorldPtr です。
Windowsでは、HBITMAP です。
enum GSVG_FLIP_FLAG { GSVG_FLIP_NONE = 0, /* 反転なし */ GSVG_FLIP_LR = (1 << 0), /* 左右反転 */ GSVG_FLIP_TB = (1 << 1) /* 上下反転 */ };反転フラグです。
SVG ライブラリを初期化します。
DOMErr gsvg_init( void );
なし。
正常終了時は、DOMERR_OK が返ります。
エラーが発生した場合は、エラーコードが返ります。
gsvg_init 関数は、SVG ライブラリを初期化します。
Gresan SVG Library を使用する前に一度だけ呼んでください。
また、Gresan SVG Library の使用を終了したら、gsvg_term 関数を呼んでください。
SVG ライブラリを終了します。
void gsvg_term( void );
なし。
なし。
gsvg_term 関数は、SVG ライブラリを終了します。
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 レファレンスを解放してください。
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 ドキュメントをグラフポートに描画します。
SVG ドキュメントを解放します。
void gsvg_free( GSVGRef *inGSVGRef );
inGSVGRef
[in] 解放する SVG レファレンスを指定します。
なし。
gsvg_free 関数は、SVG レファレンスが内部的に保持している SVG ドキュメント情報を全て解放します。
SVG ドキュメントを使用し終わった時に、必ず呼んでください。
表示時のデフォルト背景色を指定します。
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 関数が使用できます。
表示時のデフォルト背景色を取得します。
unsigned long gsvg_get_default_bg_color( void );
なし。
デフォルト背景色が 0xRRGGBB の形式で返ります。
例えば、白は 0xFFFFFF、黒は 0x000000、赤は 0xFF0000、黄色は 0xFFFF00 です。
gsvg_get_default_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 ドキュメントが作成された初期状態では、背景色はデフォルト背景色に設定されています。
デフォルト背景色が未設定時には、背景色は白に設定されています。
表示時の背景色を取得します。
unsigned long gsvg_get_bg_color(GSVGRefinGSVGRef );
inGSVGRef
[in] 背景色を取得する SVG レファレンスを指定します。
現在の表示時の背景色が返ります。
gsvg_get_bg_color 関数は、現在設定されている表示時の背景色を取得します。
表示時のデフォルトピクセル/インチを指定します。
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
表示時のデフォルトピクセル/インチを取得します。
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
表示時のピクセル/インチを指定します。
DOMErrgsvg_set_pixels_per_inch(GSVGRefinGSVGRef, 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に設定されています。
表示時のピクセル/インチを取得します。
double gsvg_get_pixels_per_inch(GSVGRefinGSVGRef );
inGSVGRef
[in] ピクセル/インチを取得する SVG レファレンスを指定します。
現在の表示時のピクセル/インチが返ります。
gsvg_get_pixels_per_inch 関数は、現在設定されている表示時のピクセル/インチを取得します。
表示時のスケールを指定します。
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 ドキュメントを表示する際の、スケールを指定します。
表示時のスケールを取得します。
double gsvg_get_canvas_scale(GSVGRefinGSVGRef );
inGSVGRef
[in] スケールを取得する SVG レファレンスを指定します。
現在の表示時のスケールが返ります。
gsvg_get_canvas_scale 関数は、現在設定されている表示時のスケールを取得します。
空の 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 関数を使用する意味はありません。
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 関数を使用する意味はありません。
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 圧縮の有無を指定します。
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 レファレンスを解放してください。
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 関数にて解放してください。
SVG メモリファイルを解放します。
void gsvg_free_mem( PubUChar *mem );
mem
[in] メモリファイルのアドレスを指定します。
なし。
gsvg_free_mem 関数は、gsvg_save_mem 関数で作成されたメモリファイルを解放します。
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 ファイルの画像サイズを取得します。
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 メモリファイルの画像サイズを取得します。
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 関数にてオフスクリーンを解放してください。
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 関数にてオフスクリーンを解放してください。
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 関数にてオフスクリーンを解放してください。
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点です。
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 ドキュメントを反転、移動、スケール、回転し、既存のオフスクリーンにブレンドします。
処理順は、元ドキュメント画像を反転、移動、移動後画像の左上点を中心にスケール、スケール後画像の真ん中を中心に回転、となります。。
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 関数にてオフスクリーンを解放してください。
オフスクリーンを解放する。
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
へ、お越しください。