Save images in C#
To Byte Array
To save a GdPicture image to a byte array, use the SaveAsByteArray method of the GdPictureImaging class. It uses the following parameters:
imageID— The ID of the GdPicture image.Data— The reference parameter of the byte array where the image data is stored.Length— The reference parameter that returns the number of bytes written into the byte array if the save operation was successful.ImageFormat— The image format represented as a member of theDocumentFormatenumeration.EncoderParameter— The compression or encoding quality used. This parameter and its range depend on the image format:- JPEG format — Image quality between
1(lowest) and100(highest). - PNG format — Compression level between
0(no compression and fastest encoding) and9(maximum compression and slowest encoding). - TIFF format — Compression scheme specified with the
TiffCompressionenumeration. - JPEG2000 format — Compression rate between
1(highest quality) and512(lowest quality). - WebP format — Image quality between
1(lowest) and100(highest). - For other formats, set this parameter to
0.
- JPEG format — Image quality between
When you no longer need an image resource, release it with the ReleaseGdPictureImage method.
The following example saves a previously loaded JPG image to a byte array:
using GdPictureImaging gdPictureImaging = new GdPictureImaging();// Create a GdPicture image from a JPG file.int imageID = gdPictureImaging.CreateGdPictureImageFromFile(@"C:\temp\source.jpg");// Initialize the `Data` and `Length` reference parameters.byte[] data = new byte[0];int length = 0;// Save the GdPicture image as a byte array.gdPictureImaging.SaveAsByteArray(imageID, ref data, ref length, GdPicture14.DocumentFormat.DocumentFormatPNG, 9);// Save the byte array to a PNG image.File.WriteAllBytes(@"C:\temp\output.png", data);gdPictureImaging.ReleaseGdPictureImage(imageID);Using gdPictureImaging As GdPictureImaging = New GdPictureImaging() ' Create a GdPicture image from a JPG file. Dim imageID As Integer = gdPictureImaging.CreateGdPictureImageFromFile("C:\temp\source.jpg") ' Initialize the `Data` and `Length` reference parameters. Dim data = New Byte(0) {} Dim length = 0 ' Save the GdPicture image as a byte array. gdPictureImaging.SaveAsByteArray(imageID, data, length, GdPicture14.DocumentFormat.DocumentFormatPNG, 9) ' Write the `Length` parameter to the console. Console.WriteLine(length) ' Save the byte array to a PNG image. File.WriteAllBytes("C:\temp\output.png", data) gdPictureImaging.ReleaseGdPictureImage(imageID)End Using