Bitmap/Write a PPM file: Difference between revisions

Content added Content deleted
(Added PHP implementation)
(Added Scheme)
Line 539: Line 539:
alias_method :write, :save
alias_method :write, :save
end</lang>
end</lang>
=={{header|Scheme}}==

{{Works with|Scheme|R<math>^5</math>RS}}
<lang scheme>(define (write-ppm image file)
(define (write-image image)
(define (write-row row)
(define (write-colour colour)
(if (not (null? colour))
(begin (write-char (integer->char (car colour)))
(write-colour (cdr colour)))))
(if (not (null? row))
(begin (write-colour (car row)) (write-row (cdr row)))))
(if (not (null? image))
(begin (write-row (car image)) (write-image (cdr image)))))
(with-output-to-file file
(lambda ()
(begin (display "P6")
(newline)
(display (length (car image)))
(display " ")
(display (length image))
(newline)
(display 255)
(newline)
(write-image image)))))</lang>
Example using definitions in [[Basic bitmap storage#Scheme]]:
<lang scheme>(define image (make-image 800 600))
(image-fill! image *black*)
(image-set! image 400 300 *blue*)
(write-ppm image "out.ppm")</lang>
=={{header|Tcl}}==
=={{header|Tcl}}==
{{libheader|Tk}}
{{libheader|Tk}}