Hi,
deine eigene Funktion ist vermutlich so langsam, weil du Canvas.Pixels benutzt. ScanLine() geht da wesentlich schneller, danach solltest du vielleicht mal suchen.
Du könntest auch
Graphics32 benuzen, ich habe mal etwas geschaut und es sieht so aus, als wäre da auch was zum AntiAliasing drin.
HTH