Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| SHA1 Hash: | 337ffb4e730d4f999074c8baa32f1815868269e6 |
|---|---|
| Date: | 2012-06-17 04:11:27 |
| User: | saul |
| Edited Comment: | Fetch text colors from frame layers. Also, added ability to save as JPEG or PNG |
| Original Comment: | Fetch text colors from frame layers. Also, added ability to save as JPEG and PNG |
Tags And Properties
- branch=sg-goobie inherited from [ff12df0c63]
- comment=Fetch text colors from frame layers. Also, added ability to save as JPEG or PNG added by [f46e389269] on 2012-06-17 04:08:30
- sym-LATEST cancelled by [406e1cad3f] on 2012-06-17 12:04:32
- sym-sg-goobie inherited from [ff12df0c63]
Changes
Changes to sg-goobie.scm
36 ; 36 ; 37 ; The currently open image is used as a template with the upper layers having 37 ; The currently open image is used as a template with the upper layers having 38 ; names that match the field names. These field layers are used to determine 38 ; names that match the field names. These field layers are used to determine 39 ; the location and size of the text (this layer is otherwise ignored). 39 ; the location and size of the text (this layer is otherwise ignored). 40 ; The name text is centered within the bounds of this field template layer. 40 ; The name text is centered within the bounds of this field template layer. 41 ; 41 ; 42 ; 42 ; 43 (define (script-fu-sg-goobie image datafilename save-dir font fontsize% color) | 43 (define (script-fu-sg-goobie image > 44 datafilename > 45 datafiletype > 46 save-dir > 47 font > 48 fontsize% > 49 use-template-colors ) 44 50 45 ;; Perform a search for the largest font that will fit within 51 ;; Perform a search for the largest font that will fit within 46 ;; the cell. 52 ;; the cell. 47 ; 53 ; 48 (define (calc-fontsize text font width height) 54 (define (calc-fontsize text font width height) 49 (let loop ((fontsize 6) ;; minimum possible fontsize 55 (let loop ((fontsize 6) ;; minimum possible fontsize 50 (last-extents nil) 56 (last-extents nil) ................................................................................................................................................................................ 87 #f 93 #f 88 (if (string=? field-name (car (gimp-drawable-get-name (car laye 94 (if (string=? field-name (car (gimp-drawable-get-name (car laye 89 (car layers) 95 (car layers) 90 (loop (cdr layers)) ))))) 96 (loop (cdr layers)) ))))) 91 (if frame-layer 97 (if frame-layer 92 (begin 98 (begin 93 (gimp-image-set-active-layer image frame-layer) 99 (gimp-image-set-active-layer image frame-layer) > 100 (unless (zero? use-template-colors) > 101 (let ((orig-sel (car (gimp-selection-save image)))) > 102 (gimp-selection-layer-alpha frame-layer) > 103 (let ((color (list (car (gimp-histogram frame-layer HISTOGRAM-RED > 104 (car (gimp-histogram frame-layer HISTOGRAM-GREE > 105 (car (gimp-histogram frame-layer HISTOGRAM-BLUE > 106 (gimp-context-set-foreground color) ) > 107 (gimp-selection-load orig-sel) )) 94 (let* ((fontsize (calc-fontsize field-data 108 (let* ((fontsize (calc-fontsize field-data 95 font 109 font 96 (* fontsize% 110 (* fontsize% 97 0.01 111 0.01 98 (car (gimp-drawable-width frame-lay 112 (car (gimp-drawable-width frame-lay 99 (* fontsize% 113 (* fontsize% 100 0.01 114 0.01 ................................................................................................................................................................................ 115 ;; Main processing start here 129 ;; Main processing start here 116 ; 130 ; 117 (let* ((inport (open-input-file datafilename)) 131 (let* ((inport (open-input-file datafilename)) 118 (field-names (map symbol->string (read inport))) 132 (field-names (map symbol->string (read inport))) 119 (filetag (car field-names)) ) 133 (filetag (car field-names)) ) 120 (gimp-image-undo-freeze image) 134 (gimp-image-undo-freeze image) 121 (gimp-context-push) 135 (gimp-context-push) 122 (gimp-context-set-foreground color) < 123 (let entry-loop ((fields (read inport))) 136 (let entry-loop ((fields (read inport))) 124 (unless (eof-object? fields) 137 (unless (eof-object? fields) 125 (let ((temp-image (car (gimp-image-duplicate image))) 138 (let ((temp-image (car (gimp-image-duplicate image))) 126 (filename #f) ) 139 (filename #f) ) 127 (let field-loop ((field-names field-names) 140 (let field-loop ((field-names field-names) 128 (field-values fields) ) 141 (field-values fields) ) 129 (unless (null? field-values) 142 (unless (null? field-values) ................................................................................................................................................................................ 130 (when (string=? (car field-names) filetag) 143 (when (string=? (car field-names) filetag) 131 (set! filename (car field-values)) ) 144 (set! filename (car field-values)) ) 132 (create-data-layer temp-image (car field-names) (car field-values) 145 (create-data-layer temp-image (car field-names) (car field-values) 133 (field-loop (cdr field-names) (cdr field-values)) )) 146 (field-loop (cdr field-names) (cdr field-values)) )) 134 (if filename 147 (if filename 135 (let ((fullname (string-append save-dir 148 (let ((fullname (string-append save-dir 136 DIR-SEPARATOR 149 DIR-SEPARATOR > 150 filename ))) > 151 (case datafiletype > 152 ((0) > 153 (let ((layer (car (gimp-image-flatten temp-image))) > 154 (filename (string-append fullname ".jpg")) ) > 155 (file-jpeg-save RUN-NONINTERACTIVE > 156 temp-image > 157 layer 137 filename | 158 filename > 159 filename > 160 0.93 > 161 0 ; smoothing > 162 1 ; optimize > 163 1 ; progressive > 164 "" ; comment > 165 0 ; subsmp (0-4) > 166 1 ; baseline > 167 0 ; restart > 168 0 ;dct 138 ".xcf" ))) | 169 ))) > 170 ((1) > 171 (let ((layer (car (gimp-image-merge-visible-layers temp-image > 172 CLIP-TO-IMA > 173 (filename (string-append fullname ".png")) ) > 174 (file-png-save2 RUN-NONINTERACTIVE > 175 temp-image > 176 layer > 177 filename > 178 filename > 179 FALSE ; interlace > 180 9 > 181 FALSE ; bkgd > 182 (car (gimp-drawable-has-alpha layer)) > 183 FALSE ; offs > 184 FALSE ; phys > 185 FALSE ; time > 186 TRUE ; comment > 187 FALSE ; svtrans > 188 ))) > 189 ((2) > 190 (let ((filename (string-append fullname ".png"))) 139 (gimp-xcf-save TRUE | 191 (gimp-xcf-save TRUE 140 temp-image | 192 temp-image 141 (car (gimp-image-get-active-layer image)) | 193 (car (gimp-image-get-active-layer image)) 142 fullname | 194 filename 143 fullname )) | 195 filename ))))) 144 (gimp-message "Error encountered") ) 196 (gimp-message "Error encountered") ) 145 (gimp-image-delete temp-image) ) 197 (gimp-image-delete temp-image) ) 146 (entry-loop (read inport)) )) 198 (entry-loop (read inport)) )) 147 (close-input-port inport) 199 (close-input-port inport) 148 (gimp-context-pop) 200 (gimp-context-pop) 149 (gimp-image-undo-thaw image) 201 (gimp-image-undo-thaw image) 150 ) 202 ) ................................................................................................................................................................................ 156 "Create uniform files based on template image" 208 "Create uniform files based on template image" 157 "Saul Goode" 209 "Saul Goode" 158 "Saul Goode" 210 "Saul Goode" 159 "June 2012" 211 "June 2012" 160 "*" 212 "*" 161 SF-IMAGE "Image" 0 213 SF-IMAGE "Image" 0 162 SF-FILENAME "Data file" "example.data" 214 SF-FILENAME "Data file" "example.data" > 215 SF-OPTION "File type" '(".jpg" ".png" ".xcf") 163 SF-DIRNAME "Save directory" "" 216 SF-DIRNAME "Save directory" "" 164 SF-FONT "Font" "Sans Bold" 217 SF-FONT "Font" "Sans Bold" 165 SF-ADJUSTMENT "Font Size (% of maximum)" '( 80 0 100 1 10 0 1) 218 SF-ADJUSTMENT "Font Size (% of maximum)" '( 80 0 100 1 10 0 1) 166 SF-COLOR "Color" '(0 0 0) | 219 SF-TOGGLE "Use colors from template (else FG)" TRUE 167 ) 220 ) 168 (script-fu-menu-register "script-fu-sg-goobie" 221 (script-fu-menu-register "script-fu-sg-goobie" 169 "<Image>/File" 222 "<Image>/File" 170 ) 223 )