Image to Image Ruby Examples
These examples demonstrate common Image to Image API workflows in Ruby.
Basic examples
PNG file to JPEG file
require "pdfcrowd" begin # Create an API client instance. client = Pdfcrowd::ImageToImageClient.new("demo", "demo") # Configure the conversion. client.setOutputFormat("jpg") # Run the conversion and save the result to a file. client.convertFileToFile("/path/to/logo.png", "logo.jpg") rescue Pdfcrowd::Error => why STDERR.puts "PDFCrowd Error: #{why}" raise end
PNG file to in-memory JPEG
require "pdfcrowd" begin # Create an API client instance. client = Pdfcrowd::ImageToImageClient.new("demo", "demo") # Configure the conversion. client.setOutputFormat("jpg") # Run the conversion and store the result in the `image` variable. image = client.convertFile("/path/to/logo.png") # at this point the "image" variable contains JPG raw data and # can be sent in an HTTP response, saved to a file, etc. rescue Pdfcrowd::Error => why STDERR.puts "PDFCrowd Error: #{why}" raise end
PNG file to JPEG stream
require "pdfcrowd" begin # Create an API client instance. client = Pdfcrowd::ImageToImageClient.new("demo", "demo") # Configure the conversion. client.setOutputFormat("jpg") # Create an output stream for the conversion result output_stream = open("logo.jpg", "wb") # run the conversion and write the result to the output stream. client.convertFileToStream("/path/to/logo.png", output_stream) # Close the output stream. output_stream.close() rescue Pdfcrowd::Error => why STDERR.puts "PDFCrowd Error: #{why}" raise end
PNG url to JPEG file
require "pdfcrowd" begin # Create an API client instance. client = Pdfcrowd::ImageToImageClient.new("demo", "demo") # Configure the conversion. client.setOutputFormat("jpg") # Run the conversion and save the result to a file. client.convertUrlToFile("https://pdfcrowd.com/static/images/logo.png", "logo.jpg") rescue Pdfcrowd::Error => why STDERR.puts "PDFCrowd Error: #{why}" raise end
PNG url to in-memory JPEG
require "pdfcrowd" begin # Create an API client instance. client = Pdfcrowd::ImageToImageClient.new("demo", "demo") # Configure the conversion. client.setOutputFormat("jpg") # Run the conversion and store the result in the `image` variable. image = client.convertUrl("https://pdfcrowd.com/static/images/logo.png") # at this point the "image" variable contains JPG raw data and # can be sent in an HTTP response, saved to a file, etc. rescue Pdfcrowd::Error => why STDERR.puts "PDFCrowd Error: #{why}" raise end
PNG url to JPEG stream
require "pdfcrowd" begin # Create an API client instance. client = Pdfcrowd::ImageToImageClient.new("demo", "demo") # Configure the conversion. client.setOutputFormat("jpg") # Create an output stream for the conversion result output_stream = open("logo.jpg", "wb") # run the conversion and write the result to the output stream. client.convertUrlToStream("https://pdfcrowd.com/static/images/logo.png", output_stream) # Close the output stream. output_stream.close() rescue Pdfcrowd::Error => why STDERR.puts "PDFCrowd Error: #{why}" raise end
In-memory PNG to JPEG file
require "pdfcrowd" begin # Create an API client instance. client = Pdfcrowd::ImageToImageClient.new("demo", "demo") # Configure the conversion. client.setOutputFormat("jpg") # Run the conversion and save the result to a file. client.convertRawDataToFile(open('/path/to/logo.png', 'rb').read(), "logo.jpg") rescue Pdfcrowd::Error => why STDERR.puts "PDFCrowd Error: #{why}" raise end
In-memory PNG to in-memory JPEG
require "pdfcrowd" begin # Create an API client instance. client = Pdfcrowd::ImageToImageClient.new("demo", "demo") # Configure the conversion. client.setOutputFormat("jpg") # Run the conversion and store the result in the `image` variable. image = client.convertRawData(open('/path/to/logo.png', 'rb').read()) # at this point the "image" variable contains JPG raw data and # can be sent in an HTTP response, saved to a file, etc. rescue Pdfcrowd::Error => why STDERR.puts "PDFCrowd Error: #{why}" raise end
In-memory PNG to JPEG stream
require "pdfcrowd" begin # Create an API client instance. client = Pdfcrowd::ImageToImageClient.new("demo", "demo") # Configure the conversion. client.setOutputFormat("jpg") # Create an output stream for the conversion result output_stream = open("logo.jpg", "wb") # run the conversion and write the result to the output stream. client.convertRawDataToStream(open('/path/to/logo.png', 'rb').read(), output_stream) # Close the output stream. output_stream.close() rescue Pdfcrowd::Error => why STDERR.puts "PDFCrowd Error: #{why}" raise end
Get info about the current conversion
require "pdfcrowd" begin # Create an API client instance. client = Pdfcrowd::ImageToImageClient.new("demo", "demo") # Configure the conversion. client.setOutputFormat("jpg") client.setDebugLog(true) # Run the conversion and save the result to a file. client.convertFileToFile("/path/to/logo.png", "logo.jpg") # print URL pointing to the debug log for this request. puts "Debug log url: #{client.getDebugLogUrl()}" # print number of conversion credits remaining in your account. puts "Remaining credit count: #{client.getRemainingCreditCount()}" # print number of credits consumed for this conversion. puts "Consumed credit count: #{client.getConsumedCreditCount()}" # print unique identifier assigned to this conversion job. puts "Job id: #{client.getJobId()}" # print size of the output data in bytes. puts "Output size: #{client.getOutputSize()}" rescue Pdfcrowd::Error => why STDERR.puts "PDFCrowd Error: #{why}" raise end
Rails examples
PNG file to JPEG in Rails
require "pdfcrowd" class DemoController < ApplicationController def convert # The recommended method is POST. # may be restricted by ":via => :post" in your routes.rb if ! request.post? return render text: "POST is allowed only", status: 400 end begin # Create an API client instance. client = Pdfcrowd::ImageToImageClient.new("demo", "demo") # Configure the conversion. client.setOutputFormat("jpg") # Run the conversion and store the result in the `image` variable. image = client.convertFile("/path/to/logo.png") # Send the result and set HTTP response headers. send_data image, :type => "image/jpeg", :disposition => "attachment; filename*=UTF-8''#{ERB::Util.url_encode('logo.jpg')}" rescue Pdfcrowd::Error => why # Send the error in the HTTP response. render plain: why, status: why.getCode() end end end
PNG url to JPEG in Rails
require "pdfcrowd" class DemoController < ApplicationController def convert # The recommended method is POST. # may be restricted by ":via => :post" in your routes.rb if ! request.post? return render text: "POST is allowed only", status: 400 end begin # Create an API client instance. client = Pdfcrowd::ImageToImageClient.new("demo", "demo") # Configure the conversion. client.setOutputFormat("jpg") # Run the conversion and store the result in the `image` variable. image = client.convertUrl("https://pdfcrowd.com/static/images/logo.png") # Send the result and set HTTP response headers. send_data image, :type => "image/jpeg", :disposition => "attachment; filename*=UTF-8''#{ERB::Util.url_encode('logo.jpg')}" rescue Pdfcrowd::Error => why # Send the error in the HTTP response. render plain: why, status: why.getCode() end end end
In-memory PNG to JPEG in Rails
require "pdfcrowd" class DemoController < ApplicationController def convert # The recommended method is POST. # may be restricted by ":via => :post" in your routes.rb if ! request.post? return render text: "POST is allowed only", status: 400 end begin # Create an API client instance. client = Pdfcrowd::ImageToImageClient.new("demo", "demo") # Configure the conversion. client.setOutputFormat("jpg") # Run the conversion and store the result in the `image` variable. image = client.convertRawData(open('/path/to/logo.png', 'rb').read()) # Send the result and set HTTP response headers. send_data image, :type => "image/jpeg", :disposition => "attachment; filename*=UTF-8''#{ERB::Util.url_encode('logo.jpg')}" rescue Pdfcrowd::Error => why # Send the error in the HTTP response. render plain: why, status: why.getCode() end end end