BmpTransforms.cs
C# VB
//// This code is part of Document Solutions for Imaging demos.// Copyright (c) MESCIUS inc. All rights reserved.//using System.IO;using System.Drawing;using GrapeCity.Documents.Imaging;
namespace DsImagingWeb.Demos{ // This sample demonstrates how to use bitmap transformations // such as resizing, flipping and rotating. public class Transforms { public GcBitmap GenerateImage(Size pixelSize, float dpi, bool opaque, string[] sampleParams = null) { var bmp = new GcBitmap(pixelSize.Width, pixelSize.Height, opaque, dpi, dpi); bmp.Clear(Color.Transparent);
var side = pixelSize.Width / 2; var side2 = side / 2; GcBitmap bmpLarge, bmpFlip, bmpSmall1, bmpSmall2, bmpSmall3, bmpSmall4; using (var bmpSrc = new GcBitmap(Path.Combine("Resources", "Stock", "goldfish.jpg"))) { bmpSrc.Opaque = opaque; bmpLarge = bmpSrc.Resize(side, side); bmpFlip = bmpLarge.FlipRotate(FlipRotateAction.FlipHorizontal); bmpSmall1 = bmpSrc.Resize(side2, side2); bmpSmall2 = bmpSmall1.FlipRotate(FlipRotateAction.Rotate270); bmpSmall3 = bmpSmall1.FlipRotate(FlipRotateAction.FlipVertical); bmpSmall4 = bmpSmall1.FlipRotate(FlipRotateAction.Rotate90); }
bmp.BitBlt(bmpLarge, 0, 0); bmp.BitBlt(bmpFlip, (int)(pixelSize.Width - bmpFlip.Width), 0); bmp.BitBlt(bmpSmall1, 0, side + side2 / 2); bmp.BitBlt(bmpSmall2, side2, side + side2 / 2); bmp.BitBlt(bmpSmall3, side2 * 2, side + side2 / 2); bmp.BitBlt(bmpSmall4, side2 * 3, side + side2 / 2);
// Dispose bitmaps except the resulting one: bmpLarge.Dispose(); bmpFlip.Dispose(); bmpSmall1.Dispose(); bmpSmall2.Dispose(); bmpSmall3.Dispose(); bmpSmall4.Dispose();
return bmp; } }}