Кажется, Gdiplus не поддерживает какие-либо 64-битные операции. Как-то более простой способ использовать методы Gdiplus - разделить изображение на два 32-битных изображения и работать с ними отдельно.
Вы можете разделить каналы ARGB на AARR и GGBB или использовать два 32-битных изображения с младшим и старшим битами ARGB.
Для обоих вариантов потребуется либо написать функции обтекания, либо разделить каждый вызов на две части, например:
// This is what you want to do (ARGB, 16 bit per channel)
// g.DrawLine(new Pen(Color(0, 65535, 1024, 31), 1, 0, 0, 100, 100);
// AARR GGBB variant
gAARR.DrawLine(new Pen(Color(0,0,255,255), 1, 0, 0, 100, 100);
gGGBB.DrawLine(new Pen(Color(4,0,0,31), 1, 0, 0, 100, 100);
// ARGBhigh ARGBlow variant
gHigh.DrawLine(new Pen(Color(0,255,4,0), 1, 0, 0, 100, 100);
gLow.DrawLine(new Pen(Color(0,255,0,31), 1, 0, 0, 100, 100);
Обратите внимание, что я использовал здесь порядок цветов (A, R, G, B), и я не уверен в этом. В соответствии с документацией MSDN это значение должно быть изменено на Цвет (R, G, B, A). Если вам не нужен альфа-канал, вы должны предпочесть вариант highlow, поскольку вы все равно сможете использовать Color (R, G, B) с ним.
Чтобы отобразить или сохранить результаты, вам нужно объединить 2 буфера.