require 'fileutils' require 'aspose-imaging-cloud' IMAGE_FILE_NAME= 'example_image.dng'; IMAGES_FOLDER = 'ExampleImages'; CLOUD_FOLDER = 'CloudImages'; OUTPUT_FOLDER = '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/) imaging_api = AsposeImagingCloud::ImagingApi.new(client_secret, client_id, 'https://api.aspose.cloud') # Grayscale an image from cloud storage def grayscale_image_from_storage input_image = File.join(IMAGES_FOLDER, IMAGE_FILE_NAME) upload_file_request = AsposeImagingCloud::UploadFileRequest.new(File.join(CLOUD_FOLDER, IMAGE_FILE_NAME), input_image) result = self.imaging_api.upload_file(upload_file_request) if result.errors.any? puts('Uploading errors count: ' + result.errors.size.to_s) folder = CLOUD_FOLDER # Input file is saved at the desired folder in the storage storage = nil # We are using default Cloud Storage request = AsposeImagingCloud::GrayscaleImageRequest.new( IMAGE_FILE_NAME, folder, storage) updated_image = imaging_api.grayscale_image(request) # Save the image file to output folder image_name = 'updated_' + IMAGE_FILE_NAME path = File.absolute_path(File.join(OUTPUT_FOLDER, image_name)) File.write(path, updated_image) end # Grayscale an image. Image data is passed in a request stream def create_grayscaled_image_from_request storage = nil # We are using default Cloud Storage out_path = nil # Path to updated file (if this is empty, response contains streamed image) input_stream = File.open(File.join(IMAGES_FOLDER, IMAGE_FILE_NAME), 'r') request = AsposeImagingCloud::CreateGrayscaledImageRequest.new( input_stream, out_path, storage) updated_image = imaging_api.create_grayscaled_image(request) # Save the image file to output folder image_name = 'updated_' + IMAGE_FILE_NAME path = File.absolute_path(File.join(OUTPUT_FOLDER, image_name)) File.write(path, updated_image) end