Load an image from a stream in C#
Image
To load an image from a Stream, use the CreateGdPictureImageFromStream method from the GdPictureImaging class.
This method returns a non-zero GdPicture image identifier (imageID) on success. If it fails, it returns 0 — use GetStat() to view the failure reason.
Available overloads include:
CreateGdPictureImageFromStream(Stream)CreateGdPictureImageFromStream(Stream, DocumentFormat ImageFormat)CreateGdPictureImageFromStream(Stream, DocumentFormat ImageFormat, bool DirectAccess)
Notes:
- The stream must support seeking.
- If
DirectAccessistrue, only properties/metadata/thumbnail are loaded; pixel operations will fail. - For multipage formats (for example TIFF/GIF), keep the stream open until the image is released.
Remember to release image resources with the ReleaseGdPictureImage method.
To load an image from a stream, use the following code:
using GdPicture14;using System;using System.IO;
using GdPictureImaging gdpictureImaging = new GdPictureImaging();
// Create a stream object from an image file.using Stream streamImage = new FileStream(@"C:\temp\source.jpg", FileMode.Open, FileAccess.Read);
// Create a GdPicture image from the stream object.int imageID = gdpictureImaging.CreateGdPictureImageFromStream( streamImage, DocumentFormat.DocumentFormatJPEG);
if (imageID == 0){ Console.WriteLine($"CreateGdPictureImageFromStream 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);Imports GdPicture14Imports System.IO
Using gdpictureImaging As New GdPictureImaging(), streamImage As Stream = New FileStream("C:\temp\source.jpg", FileMode.Open, FileAccess.Read)
' Create a GdPicture image from the stream object. Dim imageID As Integer = gdpictureImaging.CreateGdPictureImageFromStream( streamImage, DocumentFormat.DocumentFormatJPEG)
If imageID = 0 Then Console.WriteLine($"CreateGdPictureImageFromStream 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