public static unsafe void ColorAdjust(Gdk.Pixbuf src, Gdk.Pixbuf dest, Cms.Transform trans)
    {
        int   width   = src.Width;
        byte *srcpix  = (byte *)src.Pixels;
        byte *destpix = (byte *)dest.Pixels;

        for (int row = 0; row < src.Height; row++)
        {
            trans.Apply((IntPtr)(srcpix + row * src.Rowstride),
                        (IntPtr)(destpix + row * dest.Rowstride),
                        (uint)width);
        }
    }