gsel 0,-1 onexit gosub *exit buffer 1 picload"zoom.bmp",0 screen 2,320,240 color $ff,$3d,$6b:boxf title "画像の拡大/縮小" objimage 1,36,0,36,0,36,0:objsize 36,20:pos 290,4:button gosub "",*file objimage 1,0,0,0,0,0,0:objsize 36,20:pos 200,200:button gosub "",*exit gosub *drive_init:pp="1.0" objsize 280,16:pos 8,4:combox p,16,path+s color 255,255,255:font"",12:pos 40,180:mes "拡大比":pos 80,178:mesbox pp,72,16,1,4 do if ( p!=old_p ){ gosub *file_select } old_p=p await 1 until exit_flag end *file return *file_select ss=s if ( drive_cnt ){ loop_cnt=p }else{ loop_cnt=p+1 } repeat loop_cnt i=instr( ss,0,"\n" ) wstr=strmid( ss,0,i ) ss=strmid( ss,i+2,strlen(ss)-(i+2) ) loop ;画像ファイルが見つかった場合 flag=0 if ( instr(wstr,0,".BMP")>=0 or instr(wstr,0,".bmp")>=0 ):flag=1 ;instrで探す場合は拡張子は大文字と小文字で検索 if ( instr(wstr,0,".JPG")>=0 or instr(wstr,0,".jpg")>=0 ):flag=1 if ( instr(wstr,0,".PNG")>=0 or instr(wstr,0,".png")>=0 ):flag=1 if ( instr(wstr,0,".GIF")>=0 or instr(wstr,0,".gif")>=0 ):flag=1 if ( flag ){ ;ファイルオープン buffer 3:picload path+wstr sx=double(ginfo_sx) : sy=double(ginfo_sy) w=double( pp ):if ( w=0 ):goto *skip screen 4,sx*w,sy*w gmode 0,sx*w,sy*w gzoom sx*w,sy*w,3,0,0,sx,sy,0 ;pos ( sx*w )/2.0,( sy*w )/2.0 ;grotate 3,0,0,3.14*0.5,sx*w,sy*w title "画像サイズ "+str( int(sx*w) )+","+str( int(sy*w) ) exit_flag2=0 do await 1 until exit_flag2 extension=strmid( wstr,instr( wstr,0,"." ),strlen( wstr )-instr( wstr,0,"." ) ) bmpsave "./zoom_img"+extension *skip gsel 2 gosub *drive_init:clrobj 2,2:pos 8,4:combox p,16,s return } path+=( wstr+"\\" ) chdir path ss="" dirlist ss,"*.*",5 wstr="":dirlist wstr,"*.BMP",1:ss+=wstr ;dirlistの場合は大文字で拡張子を指定 wstr="":dirlist wstr,"*.JPG",1:ss+=wstr wstr="":dirlist wstr,"*.PNG",1:ss+=wstr wstr="":dirlist wstr,"*.GIF",1:ss+=wstr if ( ss="" ){ dialog "画像ファイル、ディレクトリーがありません。" gosub *drive_init clrobj 2,2:pos 8,4:combox p,16,s }else{ s=ss p=0:clrobj 2,2:pos 8,4:combox p,16,path+"\n"+s drive_cnt++ } return *drive_init path="":s="ドライブ指定\nC:\nD:\n" p=0:old_p=p:drive_cnt=0 return *exit id=ginfo_act gsel id,-1 if ( id=2 ):exit_flag=1 exit_flag2=1 return