anchor.diff:   * such as: [arial_14], [arial_24], or [arial_48].
    */
   Image drawString(Image image, BitmapFont font, int x, int y, String string,
  -                 {int color: 0xffffffff}) {
  -  int ca = getAlpha(color);
  -  if (ca == 0) {
  -    return image;
  +                 {int color = 0xffffffff}) {
  +  if (color != 0xffffffff) {
  +    int ca = getAlpha(color);
  +    if (ca == 0) {
  +      return image;
  +    }
  +    double da = ca / 255.0;
  +    double dr = getRed(color) / 255.0;
  +    double dg = getGreen(color) / 255.0;
  +    double db = getBlue(color) / 255.0;
  +    for (int i = 1; i < 256; ++i) {
  +      _r_lut[i] = (dr * i).toInt();
  +      _g_lut[i] = (dg * i).toInt();
  +      _b_lut[i] = (db * i).toInt();
  +      _a_lut[i] = (da * i).toInt();
  +    }
     }
  -
  -  double da = ca / 255.0;
  -  double dr = getRed(color) / 255.0;
  -  double dg = getGreen(color) / 255.0;
  -  double db = getBlue(color) / 255.0;
   
     List<int> chars = string.codeUnits;
     for (int c in chars) {
  
positive.code:     for (int yi = y; yi < y2; ++yi) {
        for (int xi = x; xi < x2; ++xi) {
          int p = ch.image[pi++];
          p = getColor((getRed(p) * dr).toInt(),
                       (getGreen(p) * dg).toInt(),
                       (getBlue(p) * db).toInt(),
                       (getAlpha(p) * da).toInt());
  
          drawPixel(image, xi + ch.xoffset, yi + ch.yoffset, p);
        }
      }
  
negative.code: import 'dart:typed_data';
  import '../bitmap_font.dart';
  import '../color.dart';
  import '../image.dart';
  import 'draw_pixel.dart';
  
  var _r_lut = new Uint8List(256);
  var _g_lut = new Uint8List(256);
  var _b_lut = new Uint8List(256);
  var _a_lut = new Uint8List(256);
  
  /**
   * Draw a string horizontally into [image] horizontally into [image] at position
  