XCF->PNG build

In the end it would have been easier just to use Imagemagick for this.  What
a mess.  Another example where a GUI seemed simple at first but then turned
out to be a poor tool for the job.
master
Mike Gerwitz 2019-03-25 14:00:27 -04:00
parent fad5b41407
commit 2bc167f8ee
Signed by: mikegerwitz
GPG Key ID: 8C917B7F5DC51BA2
2 changed files with 42 additions and 3 deletions

View File

@ -18,12 +18,16 @@
default: slides.pdf
xcfs = $(wildcard images/*.xcf)
pngs = $(xcfs:.xcf=.png)
.PRECIOUS: $(pngs)
# TODO: No local init.el! Isolate required options so that this is actually
# portable!
%.pdf: %.org %-preamble.tex
%.pdf: %.org %-preamble.tex $(pngs)
emacs --batch -l ~/.emacs.d/init.el $< -f org-beamer-export-to-pdf
# TODO: Either script with GIMP or just use ImageMagick and get rid of xcfs
%.png: %.xcf
@echo 'Not yet implemented!' >&2
@false
GIMP_INPUT="$<" GIMP_OUTPUT="$@" gimp -ni -b - < build-aux/xcf2png.scm

View File

@ -0,0 +1,35 @@
;;; Convert XCF files to PNG
;;;
;;; Copyright (C) 2019 Mike Gerwitz
;;;
;;; This program is free software: you can redistribute it and/or modify
;;; it under the terms of the GNU General Public License as published by
;;; the Free Software Foundation, either version 3 of the License, or
;;; (at your option) any later version.
;;;
;;; This program is distributed in the hope that it will be useful,
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
(let* ((input-filename (getenv "GIMP_INPUT"))
(output-filename (getenv "GIMP_OUTPUT"))
(image (car (gimp-file-load RUN-NONINTERACTIVE
input-filename
input-filename)))
(layer (car (gimp-image-merge-visible-layers
image
CLIP-TO-IMAGE))))
(gimp-file-save RUN-NONINTERACTIVE
image
layer
output-filename
output-filename)
(gimp-image-delete image)
(gimp-quit 0))