Тема: 001,002,003...007
Показать сообщение отдельно
Старый 24.11.2006, 20:13   #6
JVSh
Оператор ЭВМ
 
Регистрация: 16.11.2006
Сообщений: 42
Написано одно полезное сообщение
(для 7 участников)
Re: 001,002,003...007

Спасибо всем за помощь.
Сделал код для склеивания в strip из image sequence
файлы в имени должны содержать порядковые номера от 001,002 и т.п
Может кому и пригодится:
;=================================
;= Evgeny Shatohin by JVS©2006 =
;= Create strip-animation texture for Blitz3D =
;=================================
; Help
; Enter text in field "Path\Folder" (optional).
; Enter text in field "Prefix name" (example - file name
; "sea_001.bmp" - field prefix "sea_" ).
; Enter text in field "Extension" (example -file name
; "sea_ooq.bmp" - field extension "bmp").
; Enter text i fields "Frame count", "Width Picture",
; "Height Picture".
; Enter text in fielf "Name New Image" - The file with
; such name is kept in a program directory.
;
; Heading "View Example" appears near to an example
; of the loaded picture.
; 
; "Generate\Save" button - create and save new picture
; "New Create" button - clear all and start new project.
;=================================
Graphics3D 640,480,32,0
SetBuffer BackBuffer()
ClsColor 150,160,160
Global xsize,ysize,frame
Global inps=True
Global tex,terrx,fr=0,frc
Global dir$,nam$,ext$,saves$,stra$
Global font18,font20
Global CursPos=60
Global key
font18 = LoadFont("verdana", 18, 0, 0, 0)
SetFont font18
CreateNew()
.main
;================= Main Loop =====================
While Not KeyDown( 1 )
If fr<frame And frc=1 Then fr=MilliSecs()/50 Mod frame
key=GetKey()
If key Then KeyHits(key)
UpdateWorld
RenderWorld
DrawImages()
Flip
Wend
End
;============= Functions =================
Function SaveImages(dir$,nam$,ext$,saves$,frame,xsize,ysize)
terrx=CreateImage(xsize*frame,ysize)
SetBuffer ImageBuffer(terrx)
For i=1 To 40
s$=""
j=i
k=0
While j>0 
j=Int(j/10)
k=k+1
Wend
For j=1 To 3-k
s$=s$+"0"
Next
texa=LoadImage(dir$+nam$+s$+Str(i)+"."+ext$)
ResizeImage texa,xsize,ysize
DrawImage texa,i*xsize-xsize,0
Next
SaveImage(terrx,saves$+".bmp")
SetBuffer BackBuffer()
FreeImage tex
tex=LoadAnimImage (saves$+".bmp",xsize,ysize,0,Int(frame))
ResizeImage tex,96,96 
frc=1
End Function

 Function DrawImages()
Color 200,210,210
c=0
For i=1 To 6
If i>3 Then c=125 
Rect 300,20+i*40,250-c,25,1
Next
Rect 300,20+i*40,250,25,1
Rect 450,142+i*40,100,25,1
Rect 75,142+i*40,125,25,1
 
Color 50,60,60
Rect 5,5,630,470,0
Rect 8,8,624,464,0
 
Text 200,30,"Creator ANIMIMAGE ( JVSh©2006 )"
Text 80,60,"Path\Folders (optional)"
Text 80,100,"Prefix filename"
Text 80,140,"Extension"
Text 80,180,"Frame count"
Text 80,220,"Width picture"
Text 80,260,"Height picture"
Text 80,300,"Name New Image"
Text 80,425,"Generate\Save"
Text 455,425,"New Create"
If frc=1 Then Text 80,340,"View Example": Line 80,358,299,358: Color 50,60,60
 
Color 150,50,50
Text 305,60,dir$
Text 305,100,nam$
Text 305,140,ext$
Text 305,180,frame
Text 305,220,xsize
Text 305,260,ysize
Text 305,300,saves$
Color 50,60,60
 
For i=1 To 7
Line 80,38+i*40,299,38+i*40
Next
 
Rect 298,348,96+4,96+4,0
 
Color 150,50,50
If CursPos<320 Then Rect 295,CursPos,5,25,1
Color 50,60,60
TexFon()
DrawImage tex,300,350,fr
 
If MouseX()>450 And MouseY()>422 And MouseX()<500 And MouseY()<447
Color 255,255,255
Rect 450,422,100,25,1
Color 50,60,60
Text 455,425,"New Create"
If MouseHit(1) 
CreateNew() 
Color 50,60,60
EndIf
Else If MouseX()>75 And MouseY()>422 And MouseX()<200 And MouseY()<447
Color 255,255,255
Rect 75,422,125,25,1
Color 50,60,60
Text 80,425,"Generate\Save"
If MouseHit(1) 
SaveImages(dir$,nam$,ext$,saves$,Int(frame),xsize,ysize)
EndIf
EndIf
Color 150,50,50
Text 305,CursPos,stra$

End Function

 Function TexFon()
If frc=0
tex=CreateImage(96,96)
SetBuffer ImageBuffer(tex)
Color 200,210,210
Rect 0,0,96,96,1
For i=0To 96
cold=Rnd(150)
Color cold,cold,cold
Line 0,i,96,i
Next
SetBuffer BackBuffer()
ResizeImage tex,96,96 
EndIf
End Function
Function CreateNew()
Cls
stra$=""
Color 200,210,210
c=0
For i=1 To 6
If i>3 Then c=125 
Rect 300,20+i*40,250-c,25,1
Next
Rect 300,20+i*40,250,25,1
Rect 450,142+i*40,100,25,1
Rect 75,142+i*40,125,25,1
inps=1
CursPos=60
TexFon()
frc=0
fr=0
dir$=""
nam$=""
ext$=""
frame=""
xsize=""
ysize=""
saves$=""
Color 150,50,50
If CursPos<320 Then Rect 295,CursPos,5,25,1
 
End Function

 Function KeyHits(key)
If inps=1
Color 150,50,50
If key=13
If CursPos=60 Then dir$=stra$ : stra$=""
If CursPos=100 Then nam$=stra$ : stra$=""
If CursPos=140 Then ext$=stra$ : stra$=""
If CursPos=180 Then frame=stra$ : stra$=""
If CursPos=220 Then xsize=stra$ : stra$=""
If CursPos=260 Then ysize=stra$ : stra$=""
If CursPos=300 Then saves$=stra$ : stra$="" : inps=False : CursPos=300: SaveImages(dir$,nam$,ext$,saves$,Int(frame),xsize,ysize)
CursPos= CursPos+40
Else If key>32
stra$=stra$+Chr$(key)
If CursPos=60 Then dir$=stra$
If CursPos=100 Then nam$=stra$
If CursPos=140 Then ext$=stra$
If CursPos=180 Then frame=stra$
If CursPos=220 Then xsize=stra$
If CursPos=260 Then ysize=stra$
If CursPos=300 Then saves$=stra$
EndIf
EndIf
Color 50,60,60
End Function
(Offline)
 
Ответить с цитированием