;;; File: ;;; hw13.scm ;;; Authors: ;;; Samuel A. Rebelsky (compiler, editor) ;;; Various members of CSC151 2007S (see below) ;;; Summary: ;;; A variety of interesting image manpiulation procedures. Each ;;; procedure should be used, along with an image to modify, as a ;;; parameter to modify-image!, as in ;;; (modify-image! sam make-even-more-silly) ;;; Procedures: ;;; Procedure: ;;; hw13 ;;; Parameters: ;;; None ;;; Perpetrator: ;;; Sam Rebelsky ;;; Purpose: ;;; To make it easier to reload this file after changes (define hw13 (lambda () (load "/home/rebelsky/Web/Courses/CS151/2007S/Examples/hw13.scm"))) ;;; Procedure: ;;; cartoon ;;; Perpetrators: ;;; Paden Roder and Cyrus Witthuas (define cartoon (lambda (color) (let* ((round-to-50 (lambda (number) (cond ((and (<= 0 number) (< number 25)) 0) ((and (<= 25 number) (< number 75)) 50) ((and (<= 75 number) (< number 125)) 100) ((and (<= 125 number) (< number 175)) 150) ((and (<= 175 number) (< number 225)) 200) (else 250)))) (round-to-100 (lambda (number) (cond ((and (<= 0 number) (< number 50)) 0) ((and (<= 50 number) (< number 150)) 100) ((and (<= 150 number) (< number 250)) 200) (else 250)))) (round-to-125 (lambda (number) (cond ((and (<= 0 number) (< number 67)) 0) ((and (<= 67 number) (< number 192)) 125) (else 250))))) (rgb (round-to-50 (green color)) (round-to-50 (blue color)) (round-to-50 (red color)))))) ;;; Procedure: ;;; transform-portrait-color ;;; Perpetrator: ;;; Jordan Medalia (define transform-portrait-color (lambda (color) (let ((newred (if (< (red color) 150) (+ (red color) 50) (- (red color) 50))) (newgreen (if (< (green color) 150) (+ (green color) 50) (- (green color) 50))) (newblue (if (< (blue color) 150) (+ (blue color) 50) (- (blue color) 50)))) (rgb newred newgreen newblue))))