NSColor , colorspace etc. :(

Solved …

func makeMask() {
   let BMP  : NSBitmapImageRep = self.representations[0] as! NSBitmapImageRep
   let data = BMP.bitmapData
   var ptr  : Int = 0
   for _ in(0...BMP.pixelsHigh-1) {
      for _ in (0...BMP.pixelsWide-1) {
         let clr = getPixel(data: data, pointer: ptr)
         if clr.IntValue() == NSColor.white.IntValue() {
            putPixel(data: data, pointer: ptr, newColor: NSColor.magenta.withAlphaComponent(0))
         }
        ptr+=4
      }
   }
   self.addRepresentation(BMP)
}

  private func getPixel(data:UnsafeMutablePointer<UInt8>?,pointer:Int) -> NSColor {
    let r : CGFloat = CGFloat(data![pointer])/255
    let g : CGFloat = CGFloat(data![pointer+1])/255
    let b : CGFloat = CGFloat(data![pointer+2])/255
    let a : CGFloat = CGFloat(data![pointer+3])/255
    let clr = NSColor(calibratedRed: r, green: g, blue: b, alpha: a)
    // make sure it returns an RGB color
    let rgbColorSpace = CGColorSpaceCreateDeviceRGB()
    return NSColor(cgColor:clr.cgColor.converted(to: rgbColorSpace, intent: .defaultIntent, options: nil)!)!
  }
  private func putPixel(data:UnsafeMutablePointer<UInt8>?,pointer:Int,newColor:NSColor) {
    data![pointer] = UInt8(newColor.redValue*255)
    data![pointer+1] = UInt8(newColor.greenValue*255)
    data![pointer+2] = UInt8(newColor.blueValue*255)
    data![pointer+3] = UInt8(newColor.alpha*255)
  }

IntValue is an extension to NSColor the returns the integervalue of the color… due to the various colorspaces Swift uses, the was a way to make the color directly comparable

also the use of Magenta was unimportant, just the fact the alpha was 0