--track0:T間隔,1,100,10,1 --track1:ぼかし,0,300,5,1 --track2:F間隔,1,300,5,1 --track3:Frame,0,9999,0,1 --check0:必要フレーム数表示,1 --dialog:File,local file="J:\\temp5\\IMAGE01.png";MaxFile数※,local file_maxn=32;ランダム読込/chk,chk4=1;反転閾値,local iki0=10;ぼかし閾値,local iki1=85;モザイク閾値,local iki2=85;マスク閾値,local iki3=85;M繰返,local rn=50;エッジ抽出閾値,local iki4=65;SEED,sd=100; ------------------------------------set local t0=math.floor(obj.track0) local t1=math.floor(obj.track1) local t2=math.floor(obj.track2) local t3=math.floor(obj.track3) local sw,sh = obj.screen_w,obj.screen_h local fs = sh / 24 obj.setfont("",fs) ------------------------------------ if(obj.frame == 0 or fr_keizoku0 == null)then fr_keizoku0 = 0 fr_keizoku1 = 0 end local fr = t3 + fr_keizoku1 local r0,r1,r2,r3,r4 ------------------------------------ chk2 = 1 if(file_maxn < 1)then file_maxn = 1 end if(chk2 == 0)then if(file_maxn < fr_keizoku1)then fr_keizoku1 = file_maxn end else fr_keizoku1 = fr_keizoku1 % file_maxn end local shuf = {} for i=1,file_maxn do shuf[i] = i end local nnn = (t2 * file_maxn) if(nnn <= 0)then nnn=1 end local fr_keizoku2 = math.floor(fr_keizoku0 / nnn) if(chk4 == 1)then for i=1,file_maxn do rnd = obj.rand(1,file_maxn,-(sd+fr+fr_keizoku2),i) swp = shuf[i] shuf[i] = shuf[rnd] shuf[rnd] = swp end end ------------------------------------ local ptrn1="%w*$" --拡張子取得 local ptrn2="[%w|_]*%p%w*$" --filename local ptrn2a="%d*$" --filename 数値取得 local ptrn3="%w*%p*[%w|%s|%p|_]*\\" --drive&folder local f1=string.match(file,ptrn1) --拡張子 local f2=string.match(file,ptrn2) --ファイル全体 local f2a=string.sub(f2,1,string.len(f2)-4) --ファイル名 local f2b=string.match(f2a,ptrn2a) --ファイル名数値 local f3=string.match(file,ptrn3) --ドライブ&フォルダ local keta1=string.len(f2b) local f2a=string.sub(f2a,1,-keta1-1) local keta="%0"..keta1.."d" --local ff=f3..f2a..string.format(keta,(f2b+fr_keizoku1)).."."..f1 local fidx=1 local kakuchoshi={"jpg","png","gif","bmp"} local ow,oh,rzm,xzm,yzm repeat -- ff = f3..f2a..string.format(keta,(f2b + fr_keizoku1)).."."..kakuchoshi[fidx] ff = f3..f2a..string.format(keta,(f2b + shuf[fr_keizoku1 + 1] - 1)).."."..kakuchoshi[fidx] obj.load("image",ff) ow,oh = obj.getpixel() fidx = fidx+1 until ow ~= 0 or fidx > 4 ------------------------------------ if(obj.check0)then local output = "総File数:"..file_maxn.."\n一周分フレーム数:"..(t2 * file_maxn).."\nFrCnt:"..fr_keizoku1.."\nFile:"..ff.."\nTMP取得間隔:"..t0.."フレーム毎".."\nカウント増加:"..t2.."フレーム毎".."\nカウント0:"..fr_keizoku0.."\nカウント1:"..fr_keizoku1.."\nカウント2:"..fr_keizoku2 obj.load("text",output) obj.draw() else xzm = sw /ow yzm = sh/ oh if(ow >= oh)then rzm = xzm * 100 else rzm = yzm * 100 end obj.effect("リサイズ","拡大率",rzm) ------------------------------------ obj.effect() if(fr_keizoku0 % t0 == 0)then obj.copybuffer("tmp","obj") end ------------------------------------ local rz = obj.rand(-36000,36000,sd,fr) * 0.01 if(iki0 < obj.rand(0,100,sd,fr))then r0 = obj.rand(0,1,sd,fr) r1 = obj.rand(0,1,sd+1,fr) r2 = obj.rand(0,1,sd+2,fr) r3 = obj.rand(0,1,sd+3,fr) r4 = obj.rand(0,1,sd+4,fr) obj.effect("反転","上下反転",r0,"左右反転",r1,"輝度反転",r3,"色相反転",r4) end if(iki1 < obj.rand(0,100,sd+1,fr))then obj.effect("ぼかし","範囲",t1,"サイズ固定",1) end if(iki2 < obj.rand(0,100,sd+2,fr))then obj.effect("モザイク","サイズ",sh*0.0125) end if(iki3 < obj.rand(0,100,sd+3,fr))then obj.draw(0,0,0,1,1,0,0,rz) for i=0,obj.rand(rn*0.5,rn,sd,fr) do obj.copybuffer("obj","tmp") obj.setoption("blend",obj.rand(0,12,sd,i)) if(obj.rand(0,100,sd+10,i) % 2 == 0)then obj.effect("マスク","X",obj.rand(-ow,ow,sd+4+i,fr)*0.5,"Y",obj.rand(-oh,oh,sd+5+i,fr)*0.5,"サイズ",obj.rand(0,ow,sd+6+i,fr)*0.5,"縦横比",obj.rand(-1000,-750,sd+7+i,fr)*0.1) else obj.effect("マスク","X",obj.rand(-ow,ow,sd+4+i,fr)*0.5,"Y",obj.rand(-oh,oh,sd+5+i,fr)*0.5,"サイズ",obj.rand(0,oh,sd+6+i,fr)*0.5,"縦横比",obj.rand(750,1000,sd+7+i,fr)*0.1) end obj.draw(obj.rand(-ow,ow,sd+12+i,fr)*0.5,obj.rand(-oh,oh,sd+11+i,fr)*0.5) end obj.setoption("blend",0) end if(iki4 < obj.rand(0,100,sd+13,fr))then obj.effect("エッジ抽出") obj.draw() obj.copybuffer("obj","tmp") obj.draw(0,0,0,1,obj.rand(15,50,sd+14)*0.01,fr) end end ------------------------------------ if(fr_keizoku0 % t2 == 0)then fr_keizoku1 = fr_keizoku1 + 1 end fr_keizoku0 = fr_keizoku0 + 1 ------------------------------------ --[[http://madeinpc.blog50.fc2.com/]]--