[racket-dev] [plt] Push #24770: master branch updated

From: Neil Toronto (neil.toronto at gmail.com)
Date: Wed May 30 00:35:34 EDT 2012

I didn't think it was fair to make everyone wait for the Typed Racket 
code behind the icons to be compiled but be the only person who could 
use it. So I've made it public. Now

     (require images/flomap)

imports about half the Typed Racket goodies behind the icons. (The ray 
tracer itself is the other half, which I'll get to sometime.)

I have a hunch that there's a lot of image-processing code scattered 
around the codebase. It might be good to centralize most of it. Can some 
of you that have written or used other image-processing code scan 
through the images/flomap docs and see how feasible that is?

FWIW, there are some features that are exported but not documented yet:

  * arbitrary spatial transformations (rotation, warps, etc.)
  * outline and shadow effects

You shouldn't need to worry about performance. A best-case example:
blur-bitmap! is only slightly faster (30% by my tests) than converting 
the bitmap to a flomap, applying flomap-blur, and converting back to a 
bitmap. And blur-bitmap! is in-place, uses the same algorithm, and also 
uses unsafe ops. TR-optimized floating-point code keeps up just fine.

Neil ⊥

On 05/29/2012 06:09 PM, ntoronto at racket-lang.org wrote:
> ntoronto has updated `master' from 2f23f1b6b3 to c05c45e0e9.
>    http://git.racket-lang.org/plt/2f23f1b6b3..c05c45e0e9
>
> =====[ 2 Commits ]======================================================
>
> Directory summary:
>    38.5% collects/images/icons/
>    14.3% collects/images/private/
>    40.2% collects/images/scribblings/
>     6.9% collects/images/
>
> ~~~~~~~~~~
>
> c7bea1d Neil Toronto<ntoronto at racket-lang.org>  2012-05-29 17:50
> :
> | images/flomap: public interface to floating-point bitmaps used by ray tracer
> :
>    A collects/images/flomap.rkt
>    M collects/images/icons/arrow.rkt              |   34 +-
>    M collects/images/icons/control.rkt            |   54 ++-
>    M collects/images/icons/file.rkt               |   92 +++---
>    M collects/images/icons/misc.rkt               |  399 +++++++++++------------
>    M collects/images/icons/stickman.rkt           |  149 ++++-----
>    M collects/images/icons/style.rkt              |   18 +-
>    M collects/images/icons/symbol.rkt             |   94 +++---
>    M collects/images/logos.rkt                    |  140 ++++----
>    D collects/images/private/draw-predicates.rkt
>    M collects/images/private/flomap-blur.rkt      |   24 +-
>    M collects/images/private/flomap-composite.rkt |  147 +++++----
>    M collects/images/private/flomap-convert.rkt   |    4 +-
>    M collects/images/private/flomap-effects.rkt   |   18 +-
>    M collects/images/private/flomap-gradient.rkt  |    4 +-
>    M collects/images/private/flomap-pointwise.rkt |    5 +-
>    M collects/images/private/flomap-resize.rkt    |   87 ++---
>    M collects/images/private/flomap.rkt           |   12 +-
>    M collects/images/private/flomap-struct.rkt    |   13 +-
>    A collects/images/scribblings/flomap.scrbl
>    M collects/images/scribblings/images.scrbl     |    9 +-
>    M collects/images/tests/effects-tests.rkt      |    6 +-
>
> =====[ Overall Diff ]===================================================
>...

Posted on the dev mailing list.