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, [email protected] 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<[email protected]>  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 ]===================================================
...
_________________________
 Racket Developers list:
 http://lists.racket-lang.org/dev

Reply via email to