GenesisFan64

GimpLayerToImage

Dec 21st, 2022 (edited)
314
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. (define (create-sprite-sheet img drawable)
  2. (let *
  3. (
  4. (anImage 0)
  5. (numlayers 0)
  6. (layers 0)
  7. (imgh 0)
  8. (idx 0)
  9. (layr 0)
  10. (yoff 0)
  11. )
  12.  
  13. (set! anImage (car (gimp-image-duplicate img)))
  14. (set! numlayers (car (gimp-image-get-layers anImage)))
  15. (set! layers (cadr(gimp-image-get-layers anImage)))
  16. (set! imgh (car (gimp-image-height anImage)))
  17.  
  18. (while (< idx numlayers)
  19. (set! layr (aref layers (- (- numlayers 1) idx)))
  20. (gimp-layer-translate layr 0 yoff)
  21. (set! yoff (+ imgh yoff))
  22. (set! idx (+ idx 1))
  23. )
  24.  
  25. (gimp-image-resize-to-layers anImage)
  26. (gimp-image-merge-visible-layers anImage EXPAND-AS-NECESSARY)
  27. (gimp-display-new anImage)
  28. )
  29.  
  30. )
  31.  
  32. (script-fu-register "create-sprite-sheet"
  33. _"<Toolbox>/Xtns/Sprite-Sheet/Create From Layers / Y down"
  34. "Creates a new image from current image, then offsets each layer of new image, and finally merges all visible layers to create a spritesheet"
  35. "2009"
  36. "INDEXED* RGB* GRAY*"
  37. SF-IMAGE "Image to use" 0
  38. SF-DRAWABLE "Layer to use" 0
  39. )
  40.  
  41.  
  42. (define (create-sprite-sheet-x img drawable)
  43. (let *
  44. (
  45. (anImage 0)
  46. (numlayers 0)
  47. (layers 0)
  48. (imgw 0)
  49. (idx 0)
  50. (layr 0)
  51. (xoff 0)
  52. )
  53.  
  54. (set! anImage (car (gimp-image-duplicate img)))
  55. (set! numlayers (car (gimp-image-get-layers anImage)))
  56. (set! layers (cadr(gimp-image-get-layers anImage)))
  57. (set! imgw (car (gimp-image-width anImage)))
  58.  
  59. (while (< idx numlayers)
  60. (set! layr (aref layers (- (- numlayers 1) idx)))
  61. (gimp-layer-translate layr xoff 0)
  62. (set! xoff (+ imgw xoff))
  63. (set! idx (+ idx 1))
  64. )
  65.  
  66. (gimp-image-resize-to-layers anImage)
  67. (gimp-image-merge-visible-layers anImage EXPAND-AS-NECESSARY)
  68. (gimp-display-new anImage)
  69. )
  70.  
  71. )
  72.  
  73. (script-fu-register "create-sprite-sheet-x"
  74. _"<Toolbox>/Xtns/Sprite-Sheet/Create From Layers / X right"
  75. "Creates a new image from current image, then offsets each layer of new image, and finally merges all visible layers to create a spritesheet"
  76. "2009"
  77. "INDEXED* RGB* GRAY*"
  78. SF-IMAGE "Image to use" 0
  79. SF-DRAWABLE "Layer to use" 0
  80. )
Advertisement
Add Comment
Please, Sign In to add comment