From: matz@... (Yukihiro Matsumoto) Date: 1997-01-23T02:20:06+09:00 Subject: [ruby-list:1833] GD.c revised まつもと ゆきひろです デバッグしたGD.cを圧縮したものを送ります. 以下のテストはなんとなく動いているようです. #!/usr/local/bin/ruby require "GD" im = GD::Image.new(128,128) white = im.colorAllocate(255,255,255); im.transparent(white); begin inf = open("demoin.gif", "rb") im_in = GD::Image.newFromGif(inf) inf.close im.copyResized(im_in, 16, 16, 0, 0, 96, 96, 127, 127) rescue end red = im.colorAllocate(255,0,0); green = im.colorAllocate(0,255,0); blue = im.colorAllocate(0,0,255); im.line(8,8,120,8,green) im.line(120,8,120,120,green) im.line(120,120,8,120,green) im.line(8,120,8,8,green) im.arc(64,64,30,10,0,360,blue) im.arc(64, 64, 20, 20, 45, 135, blue) im.fill(4, 4, blue) points = GD::Polygon.new points.addPt(32,0) points.addPt(0,64) points.addPt(64,64) im.filledPolygon(points,green) if im_in brush = GD::Image.new(8,8) in_w, in_h = im_in.bounds brush.copyResized(im_in, 0, 0, 0, 0, 8, 8, in_w, in_h) im.setBrush(brush) im.setStyle(0,0,0,0,0,0,0,1) im.line(0,127,127,0,GD::StyledBrushed) end im.string(GD::Font::LargeFont, 16, 16, "hi", red) im.stringUp(GD::Font::SmallFont, 32, 32, "hi", red) im.interlace = TRUE; out = open("demoout.gif", "wb") im.gif(out) im.destroy if im_in im_in.destroy end exit --binary follows this line-- begin 644 GD.c.gz M'XL("*A(YC(``T=$+F,`[1MK<]O&\;/T*R[*5"4D*+9I=SJ-+'=DZS&:46Q5 MHEM[,AD4P`$D'!!@<*!$-/%_[^X]@`-Q`$%:TKAI,K%XK]W;W=O=6^S=?1LE M?CRG`=G)YE[QW61G^]NR)4KK]3%=KH=IDH^A<6OKR1X91VZ2D[TGC1&Q&A&[ MV3@PC9AZ:L@TH-%\2KPTIJ:!3(UC4S>.32-R-2*/D@(';+/;+'#S8/#V_0_#B[>CP9UE$U6> M6)*X+,CG64+^E;DSY\3-70VDH4MN3&Q$>8I5-G'(6*E=#`1]C"Q+M9 MD)Q%,>A&R'EH9^S-)/!_=D;%+!B$-ADY9Q>7I]8AX7WG0:X086=823Y*'1`! M=3WL$L;%?DZNLTE>*&/<27(H9%$0*[X?P*U!+& M!@@I7U];!J3EN"*E';Q8>"W+(9@EP9UAGEK@UW> MVL+L.ASJW)WH,U=\"`*6>.&:T$"")+2VH-)R=BSL]10ITTE-LH)\/BD0L&:J=9EF:#G?.3[[_G/3#Q M+_,H"^A.]S<5L.W%*'N.U9 MH%IV]K)/Y);E!<2G\'WMVZ!1XUND34H?S0P[=(OE#@T6,SQY>6[-\?.VT&$G]](FQP0IAG$KT=/#TGTDI-,HOU]K@P<],?H M)\WXD05H*15A29(W7"*"`RB5\_06:1[%,KC#4D-]L+%%9/F:1Q\0QV(_BW&,+OT+A=+8^XOXWK4I!AEWO6,ZLL M%UIY,=3:M7+_O8RZ;!+0KX7O$T[-@W%OV,H#/W>3; M9HFVL4$8&@?)FD%339H"%R"!'0KJ!Z^@^&0H6F$J?=>31/`I#1L?$E+N>P`* M>]QW"VW?X]AG>?9CM#?$W4^-*5K&[#\S[Y%7I;1MI)"3L\GG@;2K/Q;O,1=/ M>([[6D(W\V7\#=^D?B$.'"!PLDE@\HC&4??G%8\Y-95G6VA>KJC*=U5Q4A59 M50PV"1!0FQ_YL_U,3%FY>,W#;\J"DZ>.EV8TR'1FO'9^O'MG:92^5@2L8,W; MA$L_G17RNW@ZAFV9`A\4&&'PRXKF4=J*H2VA?#0=;AK+XUPML;P@0P,>-C[$ M.7,V])2BH9KPJ"8]IK6S-OM81ZI`/8O^PY,HK2*C(#.*Q@^_AF_K/D!?G\2O M2[Z_2/!4DSS579/6SE8MB3B"3I.<_]G@MY*?:>+AMS*1@1]]$ M2IY%R5A(GF,5S@*:39ZD,:)S,TCZXNUY^Y*:U*$F M,S,DIU,0@&>-=46X42S;88O;NA9D(9$6WZ@W\%Y"L,Y\]G\HV_>SAY:N/W&S MAF#]R0JY\@'KB?61Y/9&\-,JLU)"DXUV4L!NTL3_<8%UJ]F7B0P/K>`K(,AB MUP_Z'[6MM:V!8Z].J"[49+@[":\N:1Q=OS\UG->?'5_>G+8G-VO$V^36C:U[ M"_XN--PVN1Z=WHP&.$%?X7KI/*%LO0-,XT&3"@8V2%5'U<'.S8=!V6P^TXDL M`]3'7E"Z0%I/@O!6%:<->X2V#KF8;L?@O1>HKR<0;0.!&;NNS_#N^@6: MNRS*]0LTW,1!5NJBS-`B?R>J3+Y7Q;I-GW,I:+:^TDCI'U(+SFE_H*R-(>!;YE*^6M*BDDZ>5I*A.Y_/J" M)'?I@%:UE:$ZNB'SZ34Z^VN>1>7Y*)Z`(B\YPOH%+.%E]H[(<,EW,);Z?"60 MC2#)LT+29-EDN6G_F66XN8#3CKS]TM64965J M6>_;((.&@%6(3>E9310=NVV5.%5,B<0HOU!(HI>J'_.C1T,>PM0WQDJ'JPSH M3S;1*DJHM4C'N&TB5)H9JK8($?`%^9_R-'`N81O=6OZWET@3<[:93X+D0_]+DEN:*D4NK+QP:;]%E>*N\CBZ2VZ*WCFMK M0/:/"$JW)E!L+$6ERVK`:;5:7<+4G=4N?)1ZON+"1[L9R)T]QA0#_`-#8)Y- M*-0IU"G4J68995:/9_E$.TWG$+"0!40>($WXVPS`44\RSV&^FSA`%!,\-I7I\2KCI*7(S>\O1.+H*?]?9)E,$V`TDKA3 M>?T+,V5D#^MZ^AT;P!`5\0 M1DE`>0:1(&+R[S^Q/^_8O-RRR.()7NI]DJ.TS1`:Z[NF2&'7E4#[RA>L+&77 M-4:4/G$3:-,Y5#/6<>:C:?FL)1^!V5&9'`UG=3)43!7.#EZ)J5KHD+'58]`A MIFJAXRZB\.GS&&33YROG]^CNP&I[J85H? M3GSM\54-C7P:UIL:_JJIAH&_M^H-+UX/Z0CD.R8AUFX,8_GN18*7+XI,^KD, MFXT]"0:E/B+3GF5(0*U%(%B!@90]4E%TTIZOQ32Q&^MIPV/3O@&2`RBPVOY MFN3$/?YNN2%(?5K>LI+W#KC5=.HFQ"H36FW`>)E>PF'1)G]9[4'+B^_*B5;W M\OO`EY>XE>VJ>A_@L'[K6FTC2]?#^V"2=UXE!EGKXW5"_?IFG8`UL+B9+V&A M9)._]II6FZW/XH;:33X-M+I?:),7FVG(RFUA5I3[P:SHPYY?W>'2(-5U-IO\ MK8<=\/!>60&O]%$$)B^VU`"=^:P/+(;@BEPH]@4I)Y/7-WH)M3SV5U%/[2)# MG[VV''RDN0H-0X_]3^3E);BH]`J>QF7DV!(T-@"4&JBP3L3(ZE%"=Y1<&6?_ M./E*V:Z,E.6!:B=W%8Q+Z54NH<0I:)<3J.`P_%%PXCBR2S@5'-/@F(1K=P@5 MG#C.*D'+`[5^LXJ3+`DK*EUZ5P&JLRH)JJK]@$N=JPZ&^@&*+U,)*"K]5F7J MSB04E&2D)/2/W[_L5CXA9+3J02%RF&UA1L2 ME.=TED%E1F@%*$]7+8/*9-<*4)&;6H95N:T5P)@Z6@85::=V`U6BY:D2!<@K A71HDH4KU60N*9SPD$"_W@!$YBB;0Y^W_`E4/9.CD2P`` ` end