X-Git-Url: http://git.kpe.io/?p=cl-photo.git;a=blobdiff_plain;f=convert.lisp;h=bb5094264a051365e1573a41e413931cc9e49ded;hp=f6daab1836fce334f8652dd5fdaca3ea06fb6355;hb=HEAD;hpb=aa668443cbb520ebd5dd1d007c19aab2316562e5 diff --git a/convert.lisp b/convert.lisp old mode 100755 new mode 100644 index f6daab1..bb50942 --- a/convert.lisp +++ b/convert.lisp @@ -9,8 +9,11 @@ ;;;; ;;;; $Id$ ;;;; -;;;; This file, part of cl-photo, is Copyright (c) 2005 by Kevin Rosenberg. -;;;; Rights of modification and redistribution are in the LICENSE file. +;;;; This file, part of cl-photo, is Copyright (c) 2005 by Kevin M. Rosenberg +;;;; +;;;; cl-photo users are granted the rights to distribute and use this software +;;;; as governed by the terms of the GNU General Public License v2 +;;;; (http://www.gnu.org/licenses/gpl.html) ;;;; ;;;; ************************************************************************* @@ -43,26 +46,26 @@ (defun inches->mm (d) (* d +inches->mm+)) -(defun format-dimensions (format) - "Returns format dimensions in mm." - (ecase format - (:aps-c (cons 22.7 15.1)) - ((:aps :dx) (cons 24 16)) - ((:35 :35mm) (cons 36 24)) - ((:645 :6x4.5cm) (cons 60 45)) - ((:6x6 :6x6cm) (cons 60 60)) - ((:6x7 :6x7cm) (cons 60 70)) - ((:6x9 :6x9cm) (cons 60 90)) - ((:4x5 :4x5in) (cons (* 4 +inches->mm+) (* 5 +inches->mm+))) - ((:5x7 :5x7in) (cons (* 5 +inches->mm+) (* 7 +inches->mm+))) - ((:8x10 :8x10in) (cons (* 8 +inches->mm+) (* 10 +inches->mm+))) - (:11x13.75in (cons (* 11 +inches->mm+) (* 13.75 +inches->mm+))) - (:11x16.5in (cons (* 11 +inches->mm+) (* 16.5 +inches->mm+))) - (:13x19in (cons (* 13 +inches->mm+) (* 19 +inches->mm+))) - (:16x20in (cons (* 13 +inches->mm+) (* 19 +inches->mm+))) - (:16x24in (cons (* 13 +inches->mm+) (* 19 +inches->mm+))) - (:18x22.5in (cons (* 13 +inches->mm+) (* 19 +inches->mm+))) - (:18x24in (cons (* 13 +inches->mm+) (* 19 +inches->mm+))) - (:24x30in (cons (* 13 +inches->mm+) (* 19 +inches->mm+))) - (:24x36in (cons (* 13 +inches->mm+) (* 19 +inches->mm+))) - )) +(declaim (inline mm->inches)) +(defun mm->inches (d) + (/ d +inches->mm+)) + +(defun length->mm (d units) + "Convert a length in units to mm." + (ecase units + (:mm d) + (:inches (inches->mm d)) + (:feet (inches->mm (* d 12))) + (:yards (inches->mm (* d 36))) + (:meters (* 1000 d)))) + +(defun mm->length (d units) + "Convert a number of mm to units." + (ecase units + (:mm d) + (:inches (mm->inches d)) + (:feet (/ (mm->inches d) 12)) + (:yards (/ (mm->inches d) 36)) + (:meters (/ d 1000)))) + +