public UInt16 ConvierteA16Bit(Int32 color)
        {
      byte uno, dos, tres;
 
      /* Separar las componentes de byte
       * para poder posteriormente calcular la proporcion
       * independiente por cada componente de color.*/
      uno = (byte)(color & 0x000000FF);
      dos = (byte)((color & 0x0000FF00)>>8);
      tres= (byte)((color & 0x00FF0000)>>16);
 
      /* Calcular proporciones por regla de tres
       * es decir ej.:
       *  valor byte        max valor
       *     uno               255 (0xFF, es decir maximo 8 bits prendidos)
       *      ?                 31 (0x1F, es decir maximo 5 bits prendidos)
       *  
       *  ? = uno * 31 /255 => ? = (0x1F*uno/0xFF)
       * */
      uno= (byte)(0x1F*uno/0xFF);
      tres=(byte)(0x1F*tres/0xFF);
      dos= (byte)(0x3F*dos/0xFF);
 
      return (ushort)(  (uno|(dos <<5)) |
                      ( (tres<<3 | dos>>3 ) ) <<8 );
    }