]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/ps-to-png.scm
lilypond-manuals.css: edit color scheme and some spacing
[lilypond.git] / scm / ps-to-png.scm
index e890eaa746f52df2b5be0cd7a5d71f66e1e9be96..d0f810fafbdf14370709f69911eb868770b85130 100644 (file)
        '("pnmtopng"))))
 
 (define (scale-down-image factor file)
-  (let* ((old (string-append file ".old"))
+  (let* ((port-tmp1 (make-tmpfile))
+         (tmp1-name (port-filename port-tmp1))
+         (port-tmp2 (make-tmpfile))
+         (tmp2-name (port-filename port-tmp2))
          ;; Netpbm commands (pngtopnm, pnmscale, pnmtopng)
          ;; outputs only standard output instead of a file.
          ;; So we need pipe and redirection.
          (cmd
           (ly:format
            "~a \"~a\" | ~a -reduce ~a | ~a -compression 9 > \"~a\""
-           (search-pngtopam) old
+           (search-pngtopam) tmp1-name
            (search-pamscale) factor
            (search-pnmtopng)
-           file)))
+           tmp2-name)))
 
-    (rename-file file old)
+    (close-port port-tmp1)
+    (close-port port-tmp2)
+    (ly:debug (_ "Copying `~a' to `~a'...") file tmp1-name)
+    (copy-binary-file file tmp1-name)
     (ly:system-with-shell cmd)
-    (delete-file old)))
+    (ly:debug (_ "Copying `~a' to `~a'...") tmp2-name file)
+    (copy-binary-file tmp2-name file)
+    (ly:debug (_ "Deleting `~a'...") tmp1-name)
+    (delete-file tmp1-name)
+    (ly:debug (_ "Deleting `~a'...") tmp2-name)
+    (delete-file tmp2-name)))
 
 (define-public (ps-page-count ps-name)
   (let* ((byte-count 10240)
                     "-dNOPAUSE"
                     "-dBATCH"
                     (ly:format "-sDEVICE=~a" pixmap-format)
+                    "-dAutoRotatePages=/None"
                     (string-append "-sOutputFile=" output-file)
                     (ly:format "-r~a" (* anti-alias-factor resolution))
                     (string-append "-f" tmp-name))))