(define (split-filename filename) (let ((ext (memv #\. (string->list filename)))) (cons (substring filename 0 (- (string-length filename) (length ext))) (list->string (cdr ext))))) (define (string-minus str num) (substring str 0 (- (string-length str) num))) (define (unretina-save image) (let* ((parts (split-filename (car (gimp-image-get-filename image)))) (newname (string-append (string-minus (car parts) 3) "." (cdr parts)))) (gimp-file-save RUN-NONINTERACTIVE image (car (gimp-image-get-active-drawable image)) newname newname))) (define (unretina image) (unretina-save (half image))) (define (half image) (let ((newwidth (/ (car (gimp-image-width image)) 2)) (newheight (/ (car (gimp-image-height image)) 2))) (gimp-image-scale image newwidth newheight)) (gimp-displays-flush) image) (script-fu-register "half" "Halfsize image" "Reduce the size of an image to 50%" "Tom Willemse " "Tom Willemse" "2014-11-18" "RGB*, GRAY*" SF-IMAGE "Image" 0) (script-fu-menu-register "half" "/Picturefix") (script-fu-register "unretina" "Unretina image" "Reduce the size of an image and rename for non-retina displays." "Tom Willemse " "Tom Willemse" "2014-12-01" "RGB*, GRAY*" SF-IMAGE "Image" 0) (script-fu-menu-register "unretina" "/Picturefix")