TITLE:Flash SWF format - Shape - ベクター画像を表現するタグ。 ビットマップ貼り付けやグラデーションも対応。あとモーフも。 #contents * (2) DefineShape [#tag2] - http://www.m2osw.com/swf_tag_defineshape +---------------------------------------------------+ | tag & length | shape_id | rect | shape_with_style | | 2 | | | | +---------------------------------------------------+ < 2 or 6 bytes ><-2 bytes><-RECT-> <------------------ length --------> - shape_with_style +------------------------------------------------------+ |fill_style|line_style|fill_bits|line_bits| shape | | array | array | count | count | records | +------------------------------------------------------+ <-- STYLES --> <-4 bits-><-4 bits-><-- SHAPE --> -- fill_style_array +---------------------------------------+ | count | fill_style | fill_style | ... | +---------------------------------------+ <-1 byte><----- count 個分 -------------> --- fill_style (solid: type=0x00) +-------------------------------+ | type | red | green | blue | +-------------------------------+ <-1 byte><----- 3 bytes ------> --- fill_style (gradient: type=0x10, 0x12, 0x13) +-----------------------------+ | type | matrix | gradient | +-----------------------------+ <-1 byte><-MATRIX-> * gradient +--------------------------------------------------------+ | pad | count | gradient_record | gradient_record | ... | +--------------------------------------------------------+ <4bits><4bits-> <------ count 個分 ----------> * gradient_record +-----------------------------------+ | position | red | green | blue | +-----------------------------------+ <- 1 byte ->< 1byte>< 1byte>< 1byte > --- fill_style (bitmap: type=0x40, 0x41, 0x42, 0x43) +-------------------------------------+ | type | bitmap_ref | bitmap_matrix | +-------------------------------------+ <-1 byte> <- 2 bytes -> <-MATRIX-> -- line_style_array +---------------------------------------+ | count | line_style | line_style | ... | +---------------------------------------+ <-1 byte><----- count 個分 -------------> --- line_style +--------------------------------+ | width | red | green | blue | +--------------------------------+ <-2bytes><----- 3 bytes ------> -- shape_record --- shape_record_end +--------+ | 000000 | +--------+ <-6 bits-> --- shape_record_setup +-----------------------------------------------------+ | 00WXYZ | move | move| move| fill | fill | line | | | size | x | y | style0 | style1 | style | +-----------------------------------------------------+ <-6 bits-><5bits>/move\/move\/numfill\/numfill\/numline\ \size/\size/\ bits /\ bits / \ bits / <--- if Z==1 ---> <if Y==1><if X==1><if W==1> --- shape_record_edge +--------------------------+ | 1 |edge_type| coord_size | +--------------------------+ <1bit><-1bit-> <- 4 bits --> --- shape_record_edge (edge_type:0) spline curve +-----------------------------------------------+ | 1 | 0 | coord |control|control| anchor| anchor| | | | size |delta_x|delta_y|delta_x|delta_y| +-----------------------------------------------+ <1bi 1bi><4bits>/coord \/coord \/coord \/coord \ \size+2/\size+2/\size+2/\size+2/ --- shape_record_edge (edge_type:1) straight line +-----------------------------------+ | 1 | 1 | coord |x_and| delta| delta| | 1 | 1 | coord |x_and| delta| delta| slanted line (斜線) | | | size |y = 1| _x | _y | +-----------------------------------+ <1bi 1bi><4bits><1bit>/coord \/coord \ \size+2/\size+2/ ----------------------------------+ ... |x_and|has_x |delta| ... |x_and|has_x |delta| horizontal line |y = 0|or_y=0| _x | |has_x |delta| |has_x |delta| vertical line |or_y=1| _y | ----------------------------------+ <1bi 1bi><4bits><1bit><1bit> /coord \ \size+2/ |