예제 #1
0
        /// <summary>
        ///     Rotate and/or flip an image.
        ///     Image data is passed in a request stream.
        /// </summary>
        public void CreateRotateFlippedImageFromRequestBody()
        {
            Console.WriteLine("Rotate/flip an image from request body");

            using (var inputImageStream = File.OpenRead(Path.Combine(ExampleImagesFolder, SampleImageFileName)))
            {
                // Please refer to https://docs.aspose.cloud/display/imagingcloud/Supported+File+Formats#SupportedFileFormats-RotateFlip
                // for possible output formats
                var    format  = "gif";
                var    method  = "Rotate90FlipX"; // RotateFlip method
                string outPath = null;            // Path to updated file (if this is empty, response contains streamed image).
                string storage = null;            // We are using default Cloud Storage

                var createRotateFlippedImageRequest =
                    new CreateRotateFlippedImageRequest(inputImageStream, method, format, outPath, storage);

                Console.WriteLine($"Call CreateRotateFlippedImage with params: method:{method}, format:{format}");

                using (var updatedImage = ImagingApi.CreateRotateFlippedImage(createRotateFlippedImageRequest))
                {
                    SaveUpdatedSampleImageToOutput(updatedImage, true, format);
                }

                Console.WriteLine();
            }
        }
예제 #2
0
        public void CreateRotateFlippedImageTest(string formatExtension, bool saveResultToStorage, params string[] additionalExportFormats)
        {
            string name    = null;
            string method  = "Rotate90FlipX";
            string folder  = TempFolder;
            string storage = this.TestStorage;
            string outName = null;

            List <string> formatsToExport = new List <string>(this.BasicExportFormats);

            foreach (string additionalExportFormat in additionalExportFormats)
            {
                if (!formatsToExport.Contains(additionalExportFormat))
                {
                    formatsToExport.Add(additionalExportFormat);
                }
            }

            foreach (StorageFile inputFile in BasicInputTestFiles)
            {
                if (inputFile.Name.EndsWith(formatExtension))
                {
                    name = inputFile.Name;
                }
                else
                {
                    continue;
                }

                foreach (string format in formatsToExport)
                {
                    outName = $"{name}_rotateFlip.{format ?? formatExtension.Substring(1)}";

                    this.TestPostRequest(
                        "CreateRotateFlippedImageTest",
                        saveResultToStorage,
                        $"Input image: {name}; Output format: {format ?? "null"}; Method: {method}",
                        name,
                        outName,
                        delegate(Stream inputStream, string outPath)
                    {
                        var request =
                            new CreateRotateFlippedImageRequest(inputStream, method, format, outPath, storage);
                        return(ImagingApi.CreateRotateFlippedImage(request));
                    },
                        delegate(ImagingResponse originalProperties, ImagingResponse resultProperties, Stream resultStream)
                    {
                        try
                        {
                            Assert.AreEqual(originalProperties.Height, resultProperties.Width);
                        }
                        catch (Exception)
                        {
                            Assert.AreEqual(originalProperties.Height - 1, resultProperties.Width);
                        }

                        try
                        {
                            Assert.AreEqual(originalProperties.Width, resultProperties.Height);
                        }
                        catch (Exception)
                        {
                            Assert.AreEqual(originalProperties.Width - 1, resultProperties.Height);
                        }
                    },
                        folder,
                        storage);
                }
            }
        }