You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

21 lines
886 B
Racket

#lang br
(require pict pict/convert racket/draw icns file/ico)
(define (make-icon-pict size)
(unsafe-dc (λ (dc dx dy)
(send dc set-text-foreground "slategray")
(send dc set-text-background "darkslategray")
(send dc set-font (make-font #:size size
#:face "Equity Text A"))
(send dc draw-text "W" (/ size 40) (- (/ size 10))))
size size))
(send (pict->bitmap (make-icon-pict 96)) save-file "app.png" 'png)
(with-output-to-file "app.icns"
(λ () (void (write-bytes (pict->icns-bytes (make-icon-pict 1024)))))
#:exists 'replace)
(write-icos (for/list ([size '(16 32 48 256)])
(argb->ico size size (pict->argb-pixels (make-icon-pict size)))) "app.ico"
#:exists 'replace)