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.tiff"; 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> /// Rotate and/or flip an image from cloud storage. /// </summary> public void RotateFlipImageFromStorage() { // 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/#rotateflip // for possible formats var format = "tiff"; // Resulting image format. var method = "Rotate90FlipX"; // RotateFlip method 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 RotateFlipImageRequest(SampleImageFileName, method, format, folder, storage); using (var updatedImage = api.RotateFlipImage(request)) { // Save the image file to output folder var updatedImageName = Path.ChangeExtension(ImageFileName, "tiff") var path = Path.GetFullPath(Path.Combine(OutputFolder, updatedImageName)); using (var fileStream = File.Create(path)) { updatedImage.Seek(0, SeekOrigin.Begin); updatedImage.CopyTo(fileStream); } } } /// <summary> /// Rotate and/or flip an image. Image data is passed in a request stream. /// </summary> public void CreateRotateFlippedImageFromRequest() { using (var inputImageStream = File.OpenRead(Path.Combine(ImagesFolder, ImageFileName))) { // Please refer to https://docs.aspose.cloud/imaging/supported-file-formats/#rotateflip // for possible formats var format = "tiff"; var method = "Rotate90FlipX"; // RotateFlip method 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 CreateRotateFlippedImageRequest(inputImageStream, method, format, outPath, storage); using (var updatedImage = api.CreateRotateFlippedImage(request)) { // Save the image file to output folder var updatedImageName = Path.ChangeExtension(ImageFileName, "tiff") var path = Path.GetFullPath(Path.Combine(OutputFolder, updatedImageName)); using (var fileStream = File.Create(path)) { updatedImage.Seek(0, SeekOrigin.Begin); updatedImage.CopyTo(fileStream); } } } }