racket/new-racket-web/plt-web-pkgs/plt-web-lib/resources/add-logo-text.rkt
Matthew Flatt 8ae703cb24 reorganize into packages: "plt-web" and "plt-new-services"
The "plt-new-services" package defines the "meta/new-web"
collection, with the idea that it will be merged into
"plt-services" and later replace "meta/web".
2014-03-01 19:55:58 -07:00

57 lines
1.4 KiB
Racket

#lang racket/base
#|
;; This is how "logo-and-text.png" was generated, but it's commented
;; out here to avoid a dependency on `racket/draw`.
(require racket/draw)
(define logo (read-bitmap "logo.png"))
(define s 0.72)
(define font (make-font #:face "Optima" #:weight 'bold #:size 44 #:size-in-pixels? #t))
(define-values (tw th)
(let ()
(define bm (make-bitmap 2 2))
(define dc (send bm make-dc))
(define-values (w h d a) (send dc get-text-extent "Racket" font #t))
(values (inexact->exact (ceiling w))
(inexact->exact (ceiling h)))))
(define sep 0)
(define bm (make-bitmap (+ (inexact->exact (ceiling (* s (send logo get-width))))
sep
tw
5)
60
#:backing-scale 2))
(define dc (send bm make-dc))
(send dc set-smoothing 'smoothed)
(send dc set-brush (make-brush #:color "black"))
(send dc draw-rectangle -10 -10 1000 1000)
(send dc set-scale s s)
(send dc draw-bitmap logo 1
(+ 2
(/ (- (send bm get-height)
(* s (send logo get-height)))
2)))
(send dc set-scale 1 1)
(send dc set-font font)
(send dc set-text-foreground "white")
(send dc draw-text
"Racket"
(+ (* s (send logo get-width))
1
sep)
(/ (- (send bm get-height) th) 2)
#t)
; (send bm save-file "/tmp/x.png" 'png #:unscaled? #t)
|#