bitetti

gimp start test 2

Jul 24th, 2012
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.83 KB | None | 0 0
  1.  
  2. (define (texture-anim-monter-tabj size unir ini src)
  3. (let*
  4. (
  5. (_layers (gimp-image-get-layers src))
  6. (total (car _layers))
  7. (layers (cadr _layers) )
  8. (dst (car (gimp-image-new size size RGB)))
  9. (layer (car (gimp-layer-new dst size size RGBA-IMAGE "sprites" 100 NORMAL)))
  10. (srcWidth (car (gimp-image-width src)))
  11. (srcHeight (car (gimp-image-height src)))
  12. (fLayer 0)
  13. (divX 0)
  14. (divY 0)
  15. (passX 0)
  16. (passY 0)
  17. (offset ())
  18. (x 0)
  19. (y 0)
  20. (i 0)
  21. )
  22.  
  23. ; arredonda divisoes horizontais para o maior numero
  24. ;(set! divX
  25. ; (/
  26. ; (* size size)
  27. ; (* (max srcWidth srcHeight )
  28. ; (max srcWidth srcHeight ))
  29. ; )
  30. ;)
  31. ;(set! divX (* -1 (floor (* -1 (sqrt divX) ))) )
  32. (set! divX (floor (/ size srcWidth) ) )
  33. (set! passX (/ size divX))
  34.  
  35. ; arredonda divisoes horizontais para o menor numero
  36. ;(set! divY (floor (/ size (car (gimp-image-height src))) ) )
  37. ;(set! divY (* -1 (floor (* -1 (/ size srcHeight) ) ) ) )
  38. (set! divY (floor (/ size srcHeight) ) )
  39. (set! passY (/ size divY))
  40.  
  41. ; The following is done for all scripts
  42. (gimp-image-undo-disable dst)
  43. (gimp-image-add-layer dst layer 0)
  44.  
  45.  
  46. (set! i 0)
  47. (set! x 0)
  48. (set! y 0)
  49.  
  50. ; verifica se comeca no primeiro quadro
  51. (while (> ini 1)
  52. (set! ini (- ini 1))
  53. (let*
  54. (
  55. (lin (floor (/ ini divX)) )
  56. (my (* lin passY ))
  57. (mx (* (- ini (* lin divX) ) passX ) )
  58. )
  59. (set! x mx)
  60. (set! y my)
  61. ;(car (gimp-image-width src))
  62. )
  63. (set! ini 1)
  64. )
  65.  
  66. (while (< i total)
  67. ;(gimp-message (number->string (- (- total i) 1) ))
  68.  
  69. ; manipula a imagem
  70. (gimp-image-set-active-layer src (vector-ref layers (- (- total i) 1) ))
  71. (set! offset
  72. (cond ( (gimp-drawable-is-layer (vector-ref layers (- (- total i) 1) ) )
  73. (gimp-drawable-offsets (vector-ref layers (- (- total i) 1) ) )
  74. ) (else '(0 0) )
  75. ) )
  76. (gimp-edit-copy (vector-ref layers (- (- total i) 1)))
  77. (set! fLayer (car (gimp-edit-paste layer TRUE)) )
  78. (gimp-floating-sel-to-layer fLayer)
  79. (gimp-image-set-active-layer dst fLayer)
  80. (gimp-layer-set-offsets fLayer (+ x (car offset) ) (+ y (car (cdr offset)) ))
  81.  
  82. ;(gimp-message (number->string (car offset) ) )
  83.  
  84. ;(set! x (+ x (car (gimp-image-width src))))
  85. (set! x (+ x passX ))
  86. (set! x
  87. (cond
  88. (
  89. (> (+ x passX) size)
  90. (set! y (+ y passY))
  91. 0
  92. )
  93. (else
  94. x
  95. )
  96. )
  97. )
  98.  
  99. (set! i (+ i 1))
  100. )
  101.  
  102. (while (= unir TRUE)
  103. (gimp-image-merge-visible-layers dst CLIP-TO-IMAGE)
  104. (set! unir FALSE)
  105. )
  106.  
  107. ; guias
  108. (set! i 0)
  109. (set! x 0)
  110. (while (<= i divX)
  111. (set! x (cond ( (> x size) size ) (else x)) )
  112. (gimp-image-add-vguide dst x)
  113. (set! x (+ x passX))
  114. (set! i (+ i 1))
  115. )
  116. (set! i 0)
  117. (set! y 0)
  118. (while (<= i divY)
  119. (set! y (cond ( (> y size) size ) (else y)) )
  120. (gimp-image-add-hguide dst y)
  121. (set! y (+ y passY))
  122. (set! i (+ i 1))
  123. )
  124.  
  125. (gimp-display-new dst)
  126. (gimp-image-undo-enable dst)
  127.  
  128. (gimp-message
  129. (string-append (string-append "tilex=" (car (strbreakup (number->string divX) ".")) )
  130. (string-append " tiley=" (car (strbreakup (number->string divY) "."))) ) )
  131. )
  132. )
  133.  
  134. (script-fu-register "texture-anim-monter-tabj"
  135. "Serializador de textura"
  136. "Monta textura para animação"
  137. "By marcosbitetti <[email protected]>"
  138. "http://www.wildwitchproject.com/"
  139. "2012-07-24"
  140. ""
  141. SF-VALUE "size" "512"
  142. SF-TOGGLE "Imagem única" TRUE
  143. SF-VALUE "Iniciar na posição" "1"
  144. SF-IMAGE "src" 0
  145. )
  146. (script-fu-menu-register "texture-anim-monter-tabj" "<Toolbox>/Xtns/Game Design")
Advertisement
Add Comment
Please, Sign In to add comment