Es scheint, dass Gdiplus keine 64-Bit-Operationen unterstützt. Ein irgendwie einfacher Weg, um trotzdem Gdiplus-Methoden verwenden zu können, wäre, das Bild in zwei 32-Bit-Bilder aufzuteilen und diese getrennt zu bearbeiten.
Sie können entweder die ARGB-Kanäle in AARR und GGBB aufteilen oder zwei 32-Bit-Bilder mit den unteren und oberen ARGB-Bits verwenden.
Für beide Varianten müssten Sie entweder Wrapping-Funktionen schreiben oder jeden Aufruf in zwei Teile aufteilen, etwa so:
// 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);
Beachten Sie, dass ich hier die Reihenfolge Farbe(A,R,G,B) verwendet habe, und ich bin mir nicht sicher, ob sie stimmt. Laut der MSDN-Dokumentation muss dies stattdessen in Farbe(R,G,B,A) geändert werden. Wenn Sie den Alphakanal nicht benötigen, sollten Sie die Highlow-Variante bevorzugen, da Sie mit ihr immer noch Color(R,G,B) verwenden können.
Um die Ergebnisse anzuzeigen oder zu speichern, müssen Sie die beiden Puffer zusammenführen.