/// <summary> /// Only support BGRA data. /// </summary> /// <param name="imageData"></param> /// <returns></returns> public void AddImage(byte[] imageData) { var result = Environment.Is64BitProcess ? Interop64.AddImage(_encoderHandle, imageData, imageData.Length): Interop32.AddImage(_encoderHandle, imageData, imageData.Length); if (result != 0) { throw new PusherException(result); } }
/// <summary> /// Only support BGRA data. /// </summary> /// <param name="image"></param> /// <returns></returns> public void AddImage(Bitmap image) { var processImage = _layerImage; if (image.Width == _layerImage.Width && image.Height == _layerImage.Height) { processImage = image; } else { _layerGraphics.DrawImage(image, _layerRect); } var bmpData = processImage.LockBits(_layerRect, ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb); var result = Environment.Is64BitProcess ? Interop64.AddImage(_encoderHandle, bmpData.Scan0, _layerDataSzie) : Interop32.AddImage(_encoderHandle, bmpData.Scan0, _layerDataSzie); if (result != 0) { throw new PusherException(result); } processImage.UnlockBits(bmpData); }