---
title: "Save image C#: Save JPG, TIFF, BMP, and PNG in C# | Nutrient .NET SDK"
canonical_url: "https://www.nutrient.io/guides/dotnet/save-a-file/imaging-remote-url/"
md_url: "https://www.nutrient.io/guides/dotnet/save-a-file/imaging-remote-url.md"
last_updated: "2026-06-15T15:43:43.655Z"
description: "Discover how to save files in .NET using imaging techniques. Learn to convert to bitmap, vector, byte array, FTP, and remote URL seamlessly."
---

# Save images in C#

### Overview

[Overview](https://www.nutrient.io/guides/dotnet/save-a-file/imaging.md)

### To Bitmap

[To Bitmap](https://www.nutrient.io/guides/dotnet/save-a-file/imaging-bitmap.md)

### To Vector

[To Vector](https://www.nutrient.io/guides/dotnet/save-a-file/imaging-vector.md)

### To Byte Array

[To Byte Array](https://www.nutrient.io/guides/dotnet/save-a-file/imaging-byte-array.md)

### To FTP

[To FTP](https://www.nutrient.io/guides/dotnet/save-a-file/imaging-ftp.md)

### To Remote URL

[To Remote URL](https://www.nutrient.io/guides/dotnet/save-a-file/imaging-remote-url.md)

To save a previously loaded GdPicture image to a remote URL, use the [`SaveToHTTP` method](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.GdPictureImaging~SaveToHTTP.html) of the [`GdPictureImaging` class](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.GdPictureImaging.html).

`SaveToHTTP` uploads the image using HTTP `PUT`.

Main parameters:

- `imageID` — The GdPicture image identifier.

- `ImageFormat` — Output format as a member of the [`DocumentFormat` enumeration](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.DocumentFormat.html).

- `EncoderParameter` — Encoding/compression parameter (depends on format).

- `Address` — Destination URL.

- `Login`/`Password` (optional) — Credentials for authenticated endpoints.

`SaveToHTTP` returns a `GdPictureStatus`, which should be checked.

In some environments, network/DNS failures for `SaveToHTTP(...)` may surface as runtime transfer exceptions (for example, host resolution errors) instead of only a non-OK `GdPictureStatus`. We recommend wrapping remote upload calls in `try/catch` in addition to checking `GdPictureStatus`.

Typical `EncoderParameter` values:

- **JPEG** — Quality `1` to `100`

- **PNG** — Compression level `0` to `9`

- **TIFF** — Values from [`TiffCompression` enumeration](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.TiffCompression.html)

- **JPEG2000** — Compression rate `1` to `512`

- **WebP** — Quality `1` to `100`

- **Other formats** — Usually `0`

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).

When transferring data to or from remote servers, you can optionally use the [`SetHttpTransferBufferSize` method](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.GdPictureImaging~SetHttpTransferBufferSize.html) to specify transfer buffer size.

The following example saves a previously loaded JPG image to a remote URL:

### C#

```csharp

using GdPicture14;
using System;

using GdPictureImaging gdPictureImaging = new GdPictureImaging();

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

gdPictureImaging.SetHttpTransferBufferSize(2048);

GdPictureStatus status = gdPictureImaging.SaveToHTTP(
    imageID,
    DocumentFormat.DocumentFormatJPEG,
    75,
    "https://pspdfkit.com/uploads/source.jpg");

if (status!= GdPictureStatus.OK)
{
    Console.WriteLine($"SaveToHTTP failed: {status}");
}

gdPictureImaging.ReleaseGdPictureImage(imageID);

```

### VB.NET

```vb

Imports GdPicture14

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

    gdPictureImaging.SetHttpTransferBufferSize(2048)

    Dim status As GdPictureStatus = gdPictureImaging.SaveToHTTP(
        imageID,
        DocumentFormat.DocumentFormatJPEG,
        75,
        "https://pspdfkit.com/uploads/source.jpg")

    If status <> GdPictureStatus.OK Then
        Console.WriteLine($"SaveToHTTP failed: {status}")
    End If

    gdPictureImaging.ReleaseGdPictureImage(imageID)
End Using

```
---

## Related pages

- [Save a file from the annotation manager in C#](/guides/dotnet/save-a-file/annotation-to-jpg.md)
- [Save a file from the annotation manager in C#](/guides/dotnet/save-a-file/annotation-to-pdf.md)
- [Save a file from the annotation manager in C#](/guides/dotnet/save-a-file/annotation-to-tiff.md)
- [Save a file from the annotation manager in C#](/guides/dotnet/save-a-file/annotation-to-xmp.md)
- [Save images in C#](/guides/dotnet/save-a-file/imaging-bitmap.md)
- [Save images in C#](/guides/dotnet/save-a-file/imaging-byte-array.md)
- [Save images in C#](/guides/dotnet/save-a-file/imaging-ftp.md)
- [Save images in C#](/guides/dotnet/save-a-file/imaging-vector.md)
- [Save images and PDF files in C#](/guides/dotnet/save-a-file.md)
- [Save images in C#](/guides/dotnet/save-a-file/imaging.md)
- [Save PDF files in C#](/guides/dotnet/save-a-file/pdf-incremental-to-stream.md)
- [Save PDF files in C#](/guides/dotnet/save-a-file/pdf-incremental.md)
- [Save PDF files in C#](/guides/dotnet/save-a-file/pdf-local-storage.md)
- [Save PDF files in C#](/guides/dotnet/save-a-file/pdf.md)
- [Save PDF files in C#](/guides/dotnet/save-a-file/pdf-stream.md)

