類的使用demo:
<? "roucheng.php" = ->temp_dir = "keleyi"->resize("keleyi.gif","keleyi_resized.gif",500,500?>
類的源代碼,保存為roucheng.php文件:
<? = "frames" = 0 = 0 = = = = 0 = = = = 0 = 0 , = = resize(,,, ->decode( ->wr=/-> ->hr=/-> -> ->encode(,, -> decode( ->decoding = -> ->loadfile( -> ->get_graphics_extension(0 -> -> ->get_image_block(0 ->get_graphics_extension(1 -> -> ->get_image_block(1 (!->checkbyte(0x3b) && !-> ->get_comment_data(1 ->get_graphics_extension(2 ->get_image_block(2 ->writeframes( -> ->decoding = encode(,, = "" ->pointer = 0 ->imagedata = ->imageinfo = ->handle = 0 ->index=0 =0 (->parsedfiles ->loadfile( -> -> -> ->get_graphics_extension(0 ->get_image_block(0 ((->encdata[->index-1 = ->encdata[->index-1]["graphicsextension" = = ->imageinfo["gifheader" = "" =([3]&&1==1 ( = ([6 = (,13+*3,3 ->transfercolortable(->imageinfo["gifheader"],->imagedata[->index-1]["imagedata" = &->imagedata[->index-1]["imagedata" ( = ((([9])&128)==128 ( =((2,(([9])&7)+1)*3)+10 ->orgvars[->index-1]["transparent_color_index"] = ((((->imagedata[->index-1]["imagedata"],0,),)-10)/3 } =((2,(([10])&7)+1)*3)+10 ->orgvars[->index-1]["transparent_color_index"] = ((((,0,),)-10)/3 (!->imagedata[->index-1]["graphicsextension"]) ->imagedata[->index-1]["graphicsextension"] = (0x21).(0xf9).(0x04).(0x00).(0x00).(0x00).(0x00).(0x00 = &->imagedata[->index-1]["graphicsextension" [3] = ((([3]) & 0xE3) | (->orgvars[->index-1]["disposal_method"] << 2 [4] = ((->orgvars[->index-1]["delay_time"] % 256 [5] = ((->orgvars[->index-1]["delay_time"] / 256 ( [6] = (->orgvars[->index-1]["transparent_color_index" [3] = (([3])| [1] = (((->orgvars[->index-1]["offset_left"]*->wr) % 256 [2] = (((->orgvars[->index-1]["offset_left"]*->wr) / 256 [3] = (((->orgvars[->index-1]["offset_top"]*->hr) % 256 [4] = (((->orgvars[->index-1]["offset_top"]*->hr) / 256 (->index==1 (!(->imageinfo["applicationdata"]) || !->imageinfo["applicationdata" ->imageinfo["applicationdata"]=(0x21).(0xff).(0x0b)."NETSCAPE2.0".(0x03).(0x01).(0x00).(0x00).(0x00 (!(->imageinfo["commentdata"]) || !->imageinfo["commentdata" ->imageinfo["commentdata"] = (0x21).(0xfe).(0x10)."PHPGIFRESIZER1.0".(0 .= ->orgvars["gifheader"]. ->imageinfo["applicationdata"].->imageinfo["commentdata" ((->orgvars["hasgx_type_0"]) && ->orgvars["hasgx_type_0"]) .= ->globaldata["graphicsextension_0" ((->orgvars["hasgx_type_1"]) && ->orgvars["hasgx_type_1"]) .= ->globaldata["graphicsextension" .= . ++ -> .= (0x3b [6] = ( % 256 [7] = (( / 256 [8] = ( % 256 [9] = (( / 256 [11]= ->orgvars["background_color" (, ->pointer = 0 ->index = 0 ->imagedata = ->imageinfo = ->handle = 0 ->parsedfiles = (->parsedfiles ( writeframes( (=0;<(->imagedata);++ (->temp_dir."/frame_".."_".(,2,"0",STR_PAD_LEFT).".gif",->imageinfo["gifheader"].->imagedata[]["graphicsextension"].->imagedata[]["imagedata"].(0x3b ->parsedfiles[]=->temp_dir."/frame_".."_".(,2,"0",STR_PAD_LEFT).".gif" transfercolortable(,& ((([10])&128)==128 = (2,->readbits(([10]),5,3)+1)*3 = (,13, ((([9])&128)==128 } = (2,->readbits(([9]),5,3)+1)*3 [9] = (([9]) | (0x80 | ((/3,2)-1 = (,0,10)..(,-1*()+10 } ->p_forward(10 (->readbits((=->readbyte_int()),0,1)==1 ->p_forward(2 ->p_forward((2,->readbits(,5,3)+1)*3 } ->p_forward(2 ->imageinfo["gifheader"]=->datapart(0,-> (-> ->orgvars["gifheader"]=->imageinfo["gifheader" ->originalwidth = (->orgvars["gifheader"][7])*256+(->orgvars["gifheader"][6 ->originalheight = (->orgvars["gifheader"][9])*256+(->orgvars["gifheader"][8 ->orgvars["background_color"]=->orgvars["gifheader"][11 = ->readbyte(2 (==(0x21).(0xff = ->pointer - 2 ->p_forward(-> ->read_data_stream(-> ->imageinfo["applicationdata"] = ->datapart(,->pointer- } ->p_rewind(2 = ->readbyte(2 (==(0x21).(0xfe = ->pointer - 2 ->read_data_stream(-> ->imageinfo["commentdata"] = ->datapart(,->pointer- } ->p_rewind(2 get_graphics_extension( = ->readbyte(2 (==(0x21).(0xf9 = ->pointer - 2 ->p_forward(-> ->p_forward(1 (==2 ->imagedata[->index]["graphicsextension"] = ->datapart(,->pointer- } (==1 ->orgvars["hasgx_type_1"] = 1 ->globaldata["graphicsextension"] = ->datapart(,->pointer- } (==0 && ->decoding== ->encdata[->index]["graphicsextension"] = ->datapart(,->pointer- } (==0 && ->decoding== ->orgvars["hasgx_type_0"] = 1 ->globaldata["graphicsextension_0"] = ->datapart(,->pointer- } ->p_rewind(2 get_image_block( (->checkbyte(0x2c = -> ->p_forward(9 (->readbits((=->readbyte_int()),0,1)==1 ->p_forward((2,->readbits(,5,3)+1)*3 ->p_forward(1 ->read_data_stream(-> ->imagedata[->index]["imagedata"] = ->datapart(,->pointer- (==0 ->orgvars["hasgx_type_0"] = 0 ((->globaldata["graphicsextension_0" ->imagedata[->index]["graphicsextension"]=->globaldata["graphicsextension_0" ->imagedata[->index]["graphicsextension"]= (->globaldata["graphicsextension_0" }(==1 ((->orgvars["hasgx_type_1"]) && ->orgvars["hasgx_type_1"]==1 ->orgvars["hasgx_type_1"] = 0 ->imagedata[->index]["graphicsextension"]=->globaldata["graphicsextension" (->globaldata["graphicsextension" } ->orgvars["hasgx_type_0"] = 0 ->imagedata[->index]["graphicsextension"]=->globaldata["graphicsextension_0" (->globaldata["graphicsextension_0" -> ->index++ ->imagedata[->index]["disposal_method"] = ->get_imagedata_bit("ext",3,3,3 ->imagedata[->index]["user_input_flag"] = ->get_imagedata_bit("ext",3,6,1 ->imagedata[->index]["transparent_color_flag"] = ->get_imagedata_bit("ext",3,7,1 ->imagedata[->index]["delay_time"] = ->dualbyteval(->get_imagedata_byte("ext",4,2 ->imagedata[->index]["transparent_color_index"] = (->get_imagedata_byte("ext",6,1 ->imagedata[->index]["offset_left"] = ->dualbyteval(->get_imagedata_byte("dat",1,2 ->imagedata[->index]["offset_top"] = ->dualbyteval(->get_imagedata_byte("dat",3,2 ->imagedata[->index]["width"] = ->dualbyteval(->get_imagedata_byte("dat",5,2 ->imagedata[->index]["height"] = ->dualbyteval(->get_imagedata_byte("dat",7,2 ->imagedata[->index]["local_color_table_flag"] = ->get_imagedata_bit("dat",9,0,1 ->imagedata[->index]["interlace_flag"] = ->get_imagedata_bit("dat",9,1,1 ->imagedata[->index]["sort_flag"] = ->get_imagedata_bit("dat",9,2,1 ->imagedata[->index]["color_table_size"] = (2,->get_imagedata_bit("dat",9,5,3)+1)*3 ->imagedata[->index]["color_table"] = (->imagedata[->index]["imagedata"],10,->imagedata[->index]["color_table_size" ->imagedata[->index]["lzw_code_size"] = (->get_imagedata_byte("dat",10,1 (-> ->orgvars[->index]["transparent_color_flag"] = ->imagedata[->index]["transparent_color_flag" ->orgvars[->index]["transparent_color_index"] = ->imagedata[->index]["transparent_color_index" ->orgvars[->index]["delay_time"] = ->imagedata[->index]["delay_time" ->orgvars[->index]["disposal_method"] = ->imagedata[->index]["disposal_method" ->orgvars[->index]["offset_left"] = ->imagedata[->index]["offset_left" ->orgvars[->index]["offset_top"] = ->imagedata[->index]["offset_top" get_imagedata_byte(,, (=="ext" (->imagedata[->index]["graphicsextension"],, (=="dat" (->imagedata[->index]["imagedata"],, get_imagedata_bit(,,, (=="ext" ->readbits(((->imagedata[->index]["graphicsextension"],,1)),, (=="dat" ->readbits(((->imagedata[->index]["imagedata"],,1)),, dualbyteval( = ([1])*256 + ([0 read_data_stream( ->p_forward( =-> (!=0 (!=0 ->p_forward( =-> loadfile( ->handle = (,"rb" ->pointer = 0 (-> ->handle=0 readbyte( = (->handle, ->pointer += = (->handle,1 ->pointer++ ( readbits(,, = ((),8,"0", = (,, ( p_rewind( ->pointer-= (->handle,-> p_forward( ->pointer+= (->handle,-> datapart(, (->handle, = (->handle, (->handle,-> checkbyte( ((->handle)==( (->handle,-> } (->handle,-> ((->handle)=== } (->handle,-> debug( "<pre>" (=0;<();++ ((([])),2,"0",STR_PAD_LEFT). " " "</pre>" debuglen(, "<pre>" (=0;<;++ ((([])),2,"0",STR_PAD_LEFT). " " "</pre>" debugstream( ->debug(->datapart(->pointer, =0 (->parsedfiles = imagecreatefromgif( = ->imagedata[]["width" = ->imagedata[]["height" = ( * -> = ( * -> = imagecreatetruecolor(, = imagecolortransparent( imagealphablending(, imagesavealpha(, imagepalettecopy(, imagefill(,0,0,imagecolortransparent( imagecolortransparent(,imagecolortransparent( imagecopyresized(,,0,0,0,0,,,, imagegif(, imagedestroy( imagedestroy( ++ ?>