---
title: "Transforming Images (Resize, Rotate, Crop)"
canonical: https://www.graphicsmill.com/docs/gm/transformations-on-images.htm
product: "Graphics Mill"
---

# Transforming Images (Resize, Rotate, Crop)
 
This section is designed to give a detailed explanation on how to perform geometrical raster transformations with Graphics Mill. The section examines such transformations as [rotating](https://www.graphicsmill.com/docs/gm/rotating-and-flipping-images.htm.md), [flipping](https://www.graphicsmill.com/docs/gm/rotating-and-flipping-images.htm.md), [resizing](https://www.graphicsmill.com/docs/gm/resizing-and-cropping-images.htm.md), [cropping](https://www.graphicsmill.com/docs/gm/resizing-and-cropping-images.htm.md), and [affine/projective transformations using matrices](https://www.graphicsmill.com/docs/gm/affine-and-projective-transformations.htm.md). If you are working with JPEG format and want to apply the transformations without diminishing the image's quality, see the [Applying Lossless JPEG Transforms](https://www.graphicsmill.com/docs/gm/applying-lossless-jpeg-transforms.htm.md) topic.
 
Image transformation operations in Graphics Mill can be performed in two ways: in-place and out-of-place. The main difference is that in-place operations change the source bitmap, while out-of-place operations create a new one. All in-place transformations are realized through the [TransformsProvider](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_TransformsProvider.htm.md) class and can be implemented via the [Bitmap.Transforms](https://www.graphicsmill.com/docs/gm/P_Aurigma_GraphicsMill_Bitmap_Transforms.htm.md) property. To implement an out-of-place operation you should utilize the related class from the [Aurigma.GraphicsMill.Transforms](https://www.graphicsmill.com/docs/gm/N_Aurigma_GraphicsMill_Transforms.htm.md) namespace, for example, the [Transforms.Resize](https://www.graphicsmill.com/docs/gm/T_Aurigma_GraphicsMill_Transforms_Resize.htm.md) class.
 
For in-place resize transformation, note that the source bitmap is changed:
 
```csharp
using (var bitmap = new Bitmap(@"Images\in.jpg"))
{
    
    bitmap.Transforms.Resize(100, 0);
    bitmap.Save(@"Images\Output\out.jpg");
}
```
 
For out-of-place resize transformation, note that the new resized bitmap is created, while the source bitmap remains unchanged:
 
```csharp
using (var bitmap = new Bitmap(@"Images\in.jpg"))
using (var resize = new Resize(100, 0))
{
    using (var result = resize.Apply(bitmap))
    {
        result.Save(@"Images\Output\out.jpg");
    }
}
```
 
## In This Section
  
[Resizing and Cropping Images](https://www.graphicsmill.com/docs/gm/resizing-and-cropping-images.htm.md) 
 [Rotating and Flipping Images](https://www.graphicsmill.com/docs/gm/rotating-and-flipping-images.htm.md) 
 [Affine and Projective Transformations](https://www.graphicsmill.com/docs/gm/affine-and-projective-transformations.htm.md)
