Crop APNG via C# Cloud API
Crop APNG using native .NET Cloud APIs without needing any image editor or 3rd-party libraries.
Get StartedHow to Crop APNG Using C# Cloud API
In order to process images, we’ll use Aspose.Imaging.Cloud for .NET API which is a feature-rich, powerful and easy to use image manipulation and conversion API for C# platform. Open NuGet package manager, search for Aspose.Imaging-Cloud and install. You may also use the following command from the Package Manager Console.
Package Manager Console Command
PM> Install-Package Aspose.Imaging-Cloud
Steps to Crop APNG via C# Cloud API
Developers can easily load & crop APNG files in just a few lines of code.
- Load APNG file as stream
- Create & set the instance of CreateCroppedImageRequest
- Set start position and crop area size
- Call the CreateCroppedImage method
- Get cropped image from response stream
System Requirements
Aspose.Imaging Cloud for .NET is supported on all major operating systems. Just make sure that you have the following prerequisites.
- Microsoft Windows or a compatible OS with .NET Framework, .NET Core, Windows Application, ASP.NET Web Application.
- Development environment like Microsoft Visual Studio.
- Aspose.Imaging Cloud for .NET referenced in your project.
Crop APNG - Cloud
using System; | |
using System.IO; | |
using Aspose.Imaging.Cloud.Sdk.Api; | |
using Aspose.Imaging.Cloud.Sdk.Model; | |
using Aspose.Imaging.Cloud.Sdk.Model.Requests; | |
string ImageFileName = "example_image.apng"; | |
string ImagesFolder = "ExampleImages"; | |
string CloudFolder = "CloudImages"; | |
string OutputFolder = "Output"; | |
// Get ClientId and ClientSecret from https://dashboard.aspose.cloud/ | |
// or use on-premise version (https://docs.aspose.cloud/imaging/getting-started/how-to-run-docker-container/) | |
var api = new ImagingApi(clientSecret, clientId, "https://api.aspose.cloud"); | |
/// <summary> | |
/// Crop an image from cloud storage. | |
/// </summary> | |
public void CropImageFromStorage() | |
{ | |
// Upload image to cloud storage | |
using (var localInputImage = File.OpenRead(Path.Combine(ImagesFolder, ImageFileName))) | |
{ | |
var uploadFileRequest = new UploadFileRequest(Path.Combine(CloudFolder, imageName), image); | |
var result = api.UploadFile(uploadFileRequest); | |
if (result.Errors?.Count > 0) | |
throw new Exception($"Uploading errors count: {result.Errors.Count}"); | |
} | |
// Please refer to https://docs.aspose.cloud/imaging/supported-file-formats/#crop | |
// for possible formats | |
var format = "apng"; // Resulting image format. | |
int? x = 10; | |
int? y = 10; | |
int? width = 100; | |
int? height = 150; | |
var folder = CloudFolder; // Input file is saved at the desired folder in the storage | |
string storage = null; // We are using default Cloud Storage | |
var request = new CropImageRequest(SampleImageFileName, x, y, width, height, format, folder, storage); | |
using (var updatedImage = api.CropImage(request)) | |
{ | |
// Save the image file to output folder | |
var croppedImageName = Path.ChangeExtension(ImageFileName, "apng") | |
var path = Path.GetFullPath(Path.Combine(OutputFolder, croppedImageName)); | |
using (var fileStream = File.Create(path)) | |
{ | |
updatedImage.Seek(0, SeekOrigin.Begin); | |
updatedImage.CopyTo(fileStream); | |
} | |
} | |
} | |
/// <summary> | |
/// Crop an image. Image data is passed in a request stream. | |
/// </summary> | |
public void CreateCroppedImageFromRequest() | |
{ | |
using (var inputImageStream = File.OpenRead(Path.Combine(ImagesFolder, ImageFileName))) | |
{ | |
// Please refer to https://docs.aspose.cloud/imaging/supported-file-formats/#crop | |
// for possible formats | |
var format = "apng"; | |
int? x = 10; | |
int? y = 10; | |
int? width = 100; | |
int? height = 150; | |
string storage = null; // We are using default Cloud Storage | |
string outPath = null; // Path to updated file (if this is empty, response contains streamed image) | |
var request = new CreateCroppedImageRequest(inputImageStream, x, y, width, height, format, outPath, storage); | |
using (var updatedImage = api.CreateCroppedImage(request)) | |
{ | |
// Save the image file to output folder | |
var croppedImageName = Path.ChangeExtension(ImageFileName, "apng") | |
var path = Path.GetFullPath(Path.Combine(OutputFolder, croppedImageName)); | |
using (var fileStream = File.Create(path)) | |
{ | |
updatedImage.Seek(0, SeekOrigin.Begin); | |
updatedImage.CopyTo(fileStream); | |
} | |
} | |
} | |
} |
About Aspose.Imaging Cloud API for .NET
Aspose.Imaging Cloud API is an image processing solution to process images (photos) within your cloud or web applications. It offers: cross-platform Image processing, including but not limited to conversions between various image formats (including uniform multi-page or multi-frame image processing), transformations (resize, crop, flip&rotate, grayscale, adjust), advanced image manipulation features (filtering, deskewing), AI features (i.e. object detection and reverse image search). It’s a Cloud API and does not depend on any software for image operations. One can easily add high-performance image conversion features with Cloud APIs within projects. Flexible integrations options including SDKs for various languages (Python, Ruby, .NET, Java, NodeJS, PHP) and the use of the REST API allow to make the integration easy.
Crop APNGs via Online App
Crop APNG documents by visiting our Live Demos website. The live demo has the following benefits:
APNG What is APNG File Format
A file with .apng (Animated Portable Network Graphics) extension is a raster graphic format and is an unofficial extension to the Portable Network Graphic (PNG ). It comprises of multiple frames (each of PNG image) that represents an animation sequence. This gives similar visualization as a GIF file. APNG files support 24-bit images and 8-bit transparency. APNG is backward compatible with non-animated GIF files. APNG files use the same .png extension and can be opened by applications such as Mozilla Firefox, Chrome with APNG support, iMessage apps for iOS 10.
Read MoreOther Supported Conversions
Using C# Cloud API, one can easily crop different formats including: