# Load images using the API in C#

### Image

[Image](https://www.nutrient.io/guides/dotnet/load-a-file/imaging/from-local-storage-image.md)

### Bitmap

[Bitmap](https://www.nutrient.io/guides/dotnet/load-a-file/imaging/from-local-storage-bitmap.md)

### SVG

[SVG](https://www.nutrient.io/guides/dotnet/load-a-file/imaging/from-local-storage-svg.md)

### DICOM

[DICOM](https://www.nutrient.io/guides/dotnet/load-a-file/imaging/from-local-storage-dicom.md)

### TIFF

[TIFF](https://www.nutrient.io/guides/dotnet/load-a-file/imaging/from-local-storage-tiff.md)

### More...

[More...](https://www.nutrient.io/guides/dotnet/load-a-file/imaging/from-local-storage-more.md)

## Creating an empty image

To create an empty image, use the [`CreateNewGdPictureImage` method](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.GdPictureImaging~CreateNewGdPictureImage.html) of the [`GdPictureImaging` class](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.GdPictureImaging.html).

It returns a non-zero `imageID` on success. If it fails, it returns `0` — use `GetStat()` to get the reason.

You can create an image using either:

- `BitDepth` and background color, or

- `PixelFormat` and background color

The background color can be provided as either a `System.Drawing.Color` object, or an integer color value from the [`ARGB` method](https://www.nutrient.io/guides/dotnet/editor/manipulation/colors/#argb-method).

When you no longer need an image resource, release it with the [`ReleaseGdPictureImage` method](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.GdPictureImaging~ReleaseGdPictureImage.html).

### C#

```csharp

using GdPicture14;
using System;

using GdPictureImaging gdpictureImaging = new GdPictureImaging();

int imageID = gdpictureImaging.CreateNewGdPictureImage(
    200,
    200,
    BitDepth: 32,
    BackColor: gdpictureImaging.ARGB(100, 100, 100, 100));

if (imageID == 0)
{
    Console.WriteLine($"CreateNewGdPictureImage failed: {gdpictureImaging.GetStat()}");
    return;
}

GdPictureStatus status = gdpictureImaging.SaveAsJPEG(imageID, @"C:\temp\output.jpg", 85);
if (status!= GdPictureStatus.OK)
{
    Console.WriteLine($"SaveAsJPEG failed: {status}");
}

gdpictureImaging.ReleaseGdPictureImage(imageID);

```

### VB.NET

```vb

Imports GdPicture14

Using gdpictureImaging As New GdPictureImaging()
    Dim imageID As Integer = gdpictureImaging.CreateNewGdPictureImage(
        200,
        200,
        BitDepth:=32,
        BackColor:=gdpictureImaging.ARGB(100, 100, 100, 100))

    If imageID = 0 Then
        Console.WriteLine($"CreateNewGdPictureImage failed: {gdpictureImaging.GetStat()}")
        Return
    End If

    Dim status As GdPictureStatus = gdpictureImaging.SaveAsJPEG(imageID, "C:\temp\output.jpg", 85)
    If status <> GdPictureStatus.OK Then
        Console.WriteLine($"SaveAsJPEG failed: {status}")
    End If

    gdpictureImaging.ReleaseGdPictureImage(imageID)
End Using

```

## Loading an image from an FTP server

To load an image from FTP, use the [`CreateGdPictureImageFromFTP` method](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.GdPictureImaging~CreateGdPictureImageFromFTP.html) of the [`GdPictureImaging` class](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.GdPictureImaging.html).

Parameters:

- `Host`

- `Path`

- `Login`

- `Password`

- `FTPPort` (typically `21`)

The method returns a non-zero `imageID` on success. If it fails, it returns `0`.
Use `GetStat()` first, and for internet transfer errors, use `GetLastTransferError()`.

### C#

```csharp

using GdPicture14;
using System;

using GdPictureImaging gdpictureImaging = new GdPictureImaging();

int imageID = gdpictureImaging.CreateGdPictureImageFromFTP(
    "ftp.example.com",
    "/demo/source.jpg",
    "user",
    "passw0rd",
    21);

if (imageID == 0)
{
    Console.WriteLine($"FTP load failed: {gdpictureImaging.GetStat()}");
    Console.WriteLine($"Transfer error: {gdpictureImaging.GetLastTransferError()}");
    return;
}

GdPictureStatus status = gdpictureImaging.SaveAsPNG(imageID, @"C:\temp\output.png");
if (status!= GdPictureStatus.OK)
{
    Console.WriteLine($"SaveAsPNG failed: {status}");
}

gdpictureImaging.ReleaseGdPictureImage(imageID);

```

### VB.NET

```vb

Imports GdPicture14

Using gdpictureImaging As New GdPictureImaging()
    Dim imageID As Integer = gdpictureImaging.CreateGdPictureImageFromFTP(
        "ftp.example.com",
        "/demo/source.jpg",
        "user",
        "passw0rd",
        21)

    If imageID = 0 Then
        Console.WriteLine($"FTP load failed: {gdpictureImaging.GetStat()}")
        Console.WriteLine($"Transfer error: {gdpictureImaging.GetLastTransferError()}")
        Return
    End If

    Dim status As GdPictureStatus = gdpictureImaging.SaveAsPNG(imageID, "C:\temp\output.png")
    If status <> GdPictureStatus.OK Then
        Console.WriteLine($"SaveAsPNG failed: {status}")
    End If

    gdpictureImaging.ReleaseGdPictureImage(imageID)
End Using

```

The following `GdPictureImaging` methods are Windows-only and aren’t included in the cross-platform GdPicture.API package output on non-Windows targets (for example, `net8.0` and `net10.0`):

- [`CreateGdPictureImageFromClipboard`](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.GdPictureImaging~CreateGdPictureImageFromClipboard.html)

- [`CopyRegionToClipboard`](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.GdPictureImaging~CopyRegionToClipboard.html)

- [`DeleteClipboardData`](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.GdPictureImaging~DeleteClipboardData.html)

- [`CreateGdPictureImageFromMetaFile`](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.GdPictureImaging~CreateGdPictureImageFromMetaFile.html)

These APIs are available in Windows-specific/legacy toolkit variants (for example, WinForms/.NET Framework builds).

For cross-platform apps using GdPicture.API, use file/stream/byte-array loading methods instead — for example, the [`CreateGdPictureImageFromFile` method](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.GdPictureImaging~CreateGdPictureImageFromFile.html), the [`CreateGdPictureImageFromStream` method](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.GdPictureImaging~CreateGdPictureImageFromStream.html), and the [`CreateGdPictureImageFromByteArray` method](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.GdPictureImaging~CreateGdPictureImageFromByteArray.html).

## Loading an image from the clipboard

To load an image from clipboard data, use the [`CreateGdPictureImageFromClipboard` method](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.GdPictureImaging~CreateGdPictureImageFromClipboard.html).

It returns a non-zero `imageID` on success. If it fails, it returns `0`.

### C#

```csharp

using GdPicture14;
using System;

using GdPictureImaging gdpictureImaging = new GdPictureImaging();

int imageSourceID = gdpictureImaging.CreateGdPictureImageFromFile(@"C:\temp\source.jpg");
if (imageSourceID == 0)
{
    Console.WriteLine($"Source load failed: {gdpictureImaging.GetStat()}");
    return;
}

GdPictureStatus copyStatus = gdpictureImaging.CopyRegionToClipboard(imageSourceID, 0, 0, 100, 100);
if (copyStatus!= GdPictureStatus.OK)
{
    Console.WriteLine($"CopyRegionToClipboard failed: {copyStatus}");
    gdpictureImaging.ReleaseGdPictureImage(imageSourceID);
    return;
}

int imageID = gdpictureImaging.CreateGdPictureImageFromClipboard();
if (imageID == 0)
{
    Console.WriteLine($"CreateGdPictureImageFromClipboard failed: {gdpictureImaging.GetStat()}");
    gdpictureImaging.ReleaseGdPictureImage(imageSourceID);
    return;
}

gdpictureImaging.SaveAsJPEG(imageID, @"C:\temp\output.jpg", 85);
gdpictureImaging.DeleteClipboardData();
gdpictureImaging.ReleaseGdPictureImage(imageID);
gdpictureImaging.ReleaseGdPictureImage(imageSourceID);

```

### VB.NET

```vb

Imports GdPicture14

Using gdpictureImaging As New GdPictureImaging()
    Dim imageSourceID As Integer = gdpictureImaging.CreateGdPictureImageFromFile("C:\temp\source.jpg")
    If imageSourceID = 0 Then
        Console.WriteLine($"Source load failed: {gdpictureImaging.GetStat()}")
        Return
    End If

    Dim copyStatus As GdPictureStatus = gdpictureImaging.CopyRegionToClipboard(imageSourceID, 0, 0, 100, 100)
    If copyStatus <> GdPictureStatus.OK Then
        Console.WriteLine($"CopyRegionToClipboard failed: {copyStatus}")
        gdpictureImaging.ReleaseGdPictureImage(imageSourceID)
        Return
    End If

    Dim imageID As Integer = gdpictureImaging.CreateGdPictureImageFromClipboard()
    If imageID = 0 Then
        Console.WriteLine($"CreateGdPictureImageFromClipboard failed: {gdpictureImaging.GetStat()}")
        gdpictureImaging.ReleaseGdPictureImage(imageSourceID)
        Return
    End If

    gdpictureImaging.SaveAsJPEG(imageID, "C:\temp\output.jpg", 85)
    gdpictureImaging.DeleteClipboardData()
    gdpictureImaging.ReleaseGdPictureImage(imageID)
    gdpictureImaging.ReleaseGdPictureImage(imageSourceID)
End Using

```

## Loading an image from a metafile

To load a metafile image (EMF, WMF, SVG), use the [`CreateGdPictureImageFromMetaFile` method](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.GdPictureImaging~CreateGdPictureImageFromMetaFile.html).

Parameters:

- `FilePath`

- `ScaleBy` (optional)

The method returns a non-zero `imageID` on success. Otherwise, it returns `0`. Use `GetStat()` to diagnose failures.

`GetLastPath()` can be used to retrieve the last selected/loaded/saved path.

### C#

```csharp

using GdPicture14;
using System;

using GdPictureImaging gdpictureImaging = new GdPictureImaging();

int imageID = gdpictureImaging.CreateGdPictureImageFromMetaFile(@"C:\temp\source.emf", 2.0f);
if (imageID == 0)
{
    Console.WriteLine($"CreateGdPictureImageFromMetaFile failed: {gdpictureImaging.GetStat()}");
    return;
}

GdPictureStatus status = gdpictureImaging.SaveAsPNG(imageID, @"C:\temp\output.png");
if (status!= GdPictureStatus.OK)
{
    Console.WriteLine($"SaveAsPNG failed: {status}");
}

gdpictureImaging.ReleaseGdPictureImage(imageID);

```

### VB.NET

```vb

Imports GdPicture14

Using gdpictureImaging As New GdPictureImaging()
    Dim imageID As Integer = gdpictureImaging.CreateGdPictureImageFromMetaFile("C:\temp\source.emf", 2.0F)
    If imageID = 0 Then
        Console.WriteLine($"CreateGdPictureImageFromMetaFile failed: {gdpictureImaging.GetStat()}")
        Return
    End If

    Dim status As GdPictureStatus = gdpictureImaging.SaveAsPNG(imageID, "C:\temp\output.png")
    If status <> GdPictureStatus.OK Then
        Console.WriteLine($"SaveAsPNG failed: {status}")
    End If

    gdpictureImaging.ReleaseGdPictureImage(imageID)
End Using

```
---

## Related pages

- [Load a DICOM image from a byte array in C#](/guides/dotnet/load-a-file/imaging/from-byte-array-dicom.md)
- [Load a bitmap (BMP) from a byte array in C#](/guides/dotnet/load-a-file/imaging/from-byte-array-bitmap.md)
- [Load a TIFF from a byte array in C#](/guides/dotnet/load-a-file/imaging/from-byte-array-tiff.md)
- [Load a vector image (SVG) from a byte array in C#](/guides/dotnet/load-a-file/imaging/from-byte-array-svg.md)
- [Load an image from a byte array in C#](/guides/dotnet/load-a-file/imaging/from-byte-array-image.md)
- [Load a bitmap (BMP) from local storage in C#](/guides/dotnet/load-a-file/imaging/from-local-storage-bitmap.md)
- [Load a vector image (SVG) from local storage in C#](/guides/dotnet/load-a-file/imaging/from-local-storage-svg.md)
- [Load a bitmap (BMP) from a remote URL in C#](/guides/dotnet/load-a-file/imaging/from-remote-url-bitmap.md)
- [Load a DICOM image from local storage in C#](/guides/dotnet/load-a-file/imaging/from-local-storage-dicom.md)
- [Load a TIFF from local storage in C#](/guides/dotnet/load-a-file/imaging/from-local-storage-tiff.md)
- [Load images from local storage in C#](/guides/dotnet/load-a-file/imaging/from-local-storage-image.md)
- [Load a vector image (SVG) from a remote URL in C#](/guides/dotnet/load-a-file/imaging/from-remote-url-svg.md)
- [Load a TIFF from a remote URL in C#](/guides/dotnet/load-a-file/imaging/from-remote-url-tiff.md)
- [Load a DICOM image from a remote URL in C#](/guides/dotnet/load-a-file/imaging/from-remote-url-dicom.md)
- [Load a DICOM image from a stream in C#](/guides/dotnet/load-a-file/imaging/from-stream-dicom.md)
- [Load an image from a remote URL in C#](/guides/dotnet/load-a-file/imaging/from-remote-url-image.md)
- [Load a bitmap (BMP) from a stream in C#](/guides/dotnet/load-a-file/imaging/from-stream-bitmap.md)
- [Load an image from a stream in C#](/guides/dotnet/load-a-file/imaging/from-stream-image.md)
- [Load a TIFF from a stream in C#](/guides/dotnet/load-a-file/imaging/from-stream-tiff.md)
- [Load a vector image (SVG) from a stream in C#](/guides/dotnet/load-a-file/imaging/from-stream-svg.md)

