To resize with different format:
Bitmap resizedBitmap = new Bitmap(newWidth, newHeight, PixelFormat.Format32bppArgb);
Graphics g = Graphics.FromImage(resizedBitmap);
g.DrawImage(originalBitmap, new Rectangle(Point.Empty, resizedBitmap.Size), new Rectangle(Point.Empty, originalBitmap.Size), GraphicsUnit.Pixel);
g.Dispose();
With that you will have yopur scaled bitmap, also you can play with the Graphics object options to get better quality/faster processing times.
Also, to convert your MemoryStream to array is better to use ms.ToArray();
picArray = ms.ToArray();
This way you don't need to create the array by yourself.