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
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) |