private byte[] TransformRgb24(int width, int height, byte[] frame, IFixedSizeDestination dest) { if (dest == null) { return TransformationUtil.Flip(width, height, 3, frame, FlipHorizontally, FlipVertically); } var bmp = ImageUtil.ConvertFromRgb24(width, height, frame); var transformedBmp = TransformationUtil.Transform(bmp, dest.DmdWidth, dest.DmdHeight, Resize, FlipHorizontally, FlipVertically); var transformedFrame = new byte[dest.DmdWidth*dest.DmdHeight*3]; ImageUtil.ConvertToRgb24(transformedBmp, transformedFrame); return transformedFrame; }
private byte[] TransformGray4(int width, int height, byte[] frame, IFixedSizeDestination dest) { if (dest == null) { return TransformationUtil.Flip(width, height, 1, frame, FlipHorizontally, FlipVertically); } if (width == dest.DmdWidth && height == dest.DmdHeight && !FlipHorizontally && !FlipVertically) { return frame; } var bmp = ImageUtil.ConvertFromGray4(width, height, frame, 0, 1, 1); var transformedBmp = TransformationUtil.Transform(bmp, dest.DmdWidth, dest.DmdHeight, Resize, FlipHorizontally, FlipVertically); var transformedFrame = ImageUtil.ConvertToGray4(transformedBmp); return transformedFrame; }
private BitmapSource Transform(BitmapSource bmp, IFixedSizeDestination dest) { if (dest == null && !FlipHorizontally && !FlipVertically) { return bmp; } int width, height; if (dest == null) { width = bmp.PixelWidth; height = bmp.PixelHeight; } else { width = dest.DmdWidth; height = dest.DmdHeight; } return TransformationUtil.Transform(bmp, width, height, Resize, FlipHorizontally, FlipVertically); }
private Tuple<byte[][], Color[]> TransformColoredGray4(int width, int height, byte[][] planes, Color[] palette, IFixedSizeDestination dest) { if (dest == null) { return new Tuple<byte[][], Color[]>(TransformationUtil.Flip(width, height, planes, FlipHorizontally, FlipVertically), palette); } if (width == dest.DmdWidth && height == dest.DmdHeight && !FlipHorizontally && !FlipVertically) { return new Tuple<byte[][], Color[]>(planes, palette); } var bmp = ImageUtil.ConvertFromGray4(width, height, FrameUtil.Join(width, height, planes), 0, 1, 1); var transformedBmp = TransformationUtil.Transform(bmp, dest.DmdWidth, dest.DmdHeight, Resize, FlipHorizontally, FlipVertically); var transformedFrame = ImageUtil.ConvertToGray4(transformedBmp); return new Tuple<byte[][], Color[]>(FrameUtil.Split(dest.DmdWidth, dest.DmdHeight, 4, transformedFrame), palette); }