当存储对象时,需要标识其格式。表 4列示了可指定的格式。Extender 将把图象、 音频或视频对象存储成与源相同的格式。可选择让 Image Extender 转换所存储图象的格式 (仅对于图象对象)。若选择转换图象格式, 则需要指定源图象的格式和目标图象的格式。目标图象就是所存储的图象。
当您存储对象时不进行格式转换时,指定源图象、音频或视频对象的格式。例如,C 应用程序中的以下语句将位图 (BMP) 图象存储到数据库表中。源的内容位于服务器文件中。目标图象的格式将与源的格式相同。
EXEC SQL INSERT INTO EMPLOYEE VALUES( '128557', 'Anita Jones', DB2IMAGE( CURRENT SERVER, '/Employee/images/ajones.bmp', 'BMP', /*image in BMP format */ '', 'Anita''s picture') );
还可指定空值或空字符串作为格式, 或者也可以指定字符串 ASIS(仅针对 Image Extender)。然后,Extender 将通过检查源来确定格式。
将 NULL 或 ASIS 用作可识别的格式:仅当 Extender 可识别该格式时,也就是说,仅当格式是表 4中对 Extender 列示的其中一种格式时, 才指定空值、空字符串或 ASIS。否则,Extender 将无法存储对象。
若在存储图象时进行格式转换,同时指定源和目标图象的格式。表 4列示了允许的格式转换。
另外,还可指定转换选项, 其标识要应用于所存储图象的其他更改(如旋转或压缩)。通过参数和相关联的值指定每个转换选项。表 5中列示了参数和允许的值。可通过指定多对参数/值来请求对存储的图象进行多处更改。
在下例中,当存储在数据库表中时, 将把内容在服务器文件中的位图 (BMP) 图象转换为 GIF 格式。
EXEC SQL INSERT INTO EMPLOYEE VALUES( '128557', 'Anita Jones', DB2IMAGE( CURRENT SERVER, '/Employee/images/ajones.bmp', 'BMP', /* source format */ 'GIF', /* target format */ '', 'Anita''s picture') );
在下例中,当存储在数据库表中时, 将把前一示例中的图象转换为 GIF 格式。另外,在存储时,将把该图象修剪成宽度为 110 象素,高度为 150 象素, 并使用 LZW 压缩来进行压缩。
EXEC SQL INSERT INTO EMPLOYEE VALUES( '128557', 'Anita Jones', DB2IMAGE( CURRENT SERVER, '/Employee/images/ajones.bmp', 'BMP', /* source format */ 'GIF', /* target format */ '-x 110 -y 150 -c 14', /* conversion options */ '/Employee/images/ajones.gif', 'Anita''s picture') );