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 37 ; The currently open image is used as a template with the upper layers having 38 38 ; names that match the field names. These field layers are used to determine 39 39 ; the location and size of the text (this layer is otherwise ignored). 40 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 51 ;; Perform a search for the largest font that will fit within 46 52 ;; the cell. 47 53 ; 48 54 (define (calc-fontsize text font width height) 49 55 (let loop ((fontsize 6) ;; minimum possible fontsize 50 56 (last-extents nil) ................................................................................ 87 93 #f 88 94 (if (string=? field-name (car (gimp-drawable-get-name (car layers)))) 89 95 (car layers) 90 96 (loop (cdr layers)) ))))) 91 97 (if frame-layer 92 98 (begin 93 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 0 255)) 104 + (car (gimp-histogram frame-layer HISTOGRAM-GREEN 0 255)) 105 + (car (gimp-histogram frame-layer HISTOGRAM-BLUE 0 255)) ))) 106 + (gimp-context-set-foreground color) ) 107 + (gimp-selection-load orig-sel) )) 94 108 (let* ((fontsize (calc-fontsize field-data 95 109 font 96 110 (* fontsize% 97 111 0.01 98 112 (car (gimp-drawable-width frame-layer)) ) 99 113 (* fontsize% 100 114 0.01 ................................................................................ 115 129 ;; Main processing start here 116 130 ; 117 131 (let* ((inport (open-input-file datafilename)) 118 132 (field-names (map symbol->string (read inport))) 119 133 (filetag (car field-names)) ) 120 134 (gimp-image-undo-freeze image) 121 135 (gimp-context-push) 122 - (gimp-context-set-foreground color) 123 136 (let entry-loop ((fields (read inport))) 124 137 (unless (eof-object? fields) 125 138 (let ((temp-image (car (gimp-image-duplicate image))) 126 139 (filename #f) ) 127 140 (let field-loop ((field-names field-names) 128 141 (field-values fields) ) 129 142 (unless (null? field-values) ................................................................................ 130 143 (when (string=? (car field-names) filetag) 131 144 (set! filename (car field-values)) ) 132 145 (create-data-layer temp-image (car field-names) (car field-values)) 133 146 (field-loop (cdr field-names) (cdr field-values)) )) 134 147 (if filename 135 148 (let ((fullname (string-append save-dir 136 149 DIR-SEPARATOR 137 - filename 138 - ".xcf" ))) 139 - (gimp-xcf-save TRUE 140 - temp-image 141 - (car (gimp-image-get-active-layer image)) 142 - fullname 143 - fullname )) 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 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 169 + ))) 170 + ((1) 171 + (let ((layer (car (gimp-image-merge-visible-layers temp-image 172 + CLIP-TO-IMAGE ))) 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"))) 191 + (gimp-xcf-save TRUE 192 + temp-image 193 + (car (gimp-image-get-active-layer image)) 194 + filename 195 + filename ))))) 144 196 (gimp-message "Error encountered") ) 145 197 (gimp-image-delete temp-image) ) 146 198 (entry-loop (read inport)) )) 147 199 (close-input-port inport) 148 200 (gimp-context-pop) 149 201 (gimp-image-undo-thaw image) 150 202 ) ................................................................................ 156 208 "Create uniform files based on template image" 157 209 "Saul Goode" 158 210 "Saul Goode" 159 211 "June 2012" 160 212 "*" 161 213 SF-IMAGE "Image" 0 162 214 SF-FILENAME "Data file" "example.data" 215 + SF-OPTION "File type" '(".jpg" ".png" ".xcf") 163 216 SF-DIRNAME "Save directory" "" 164 217 SF-FONT "Font" "Sans Bold" 165 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 221 (script-fu-menu-register "script-fu-sg-goobie" 169 222 "<Image>/File" 170 223 )