Socket
Book a DemoInstallSign in
Socket

imagizer_engine

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

imagizer_engine

0.0.8
bundlerRubygems
Version published
Maintainers
1
Created
Source

ImagizerEngine

This gem adds a thin wrapper around the Imagizer Media Engine service by Nventify.

Installation

Add this line to your application's Gemfile:

gem 'imagizer_engine'

And then execute:

$ bundle

Or install it yourself as:

$ gem install imagizer_engine

Configure

Rails

  • Create a config file like config/imagizer_engine.rb
  • Define the host (either IP or URL) found in your EC2 instance.
  • Define all of the different versions available to use.
  • Use the Imagizer API to configure each of the different versions. All of the Image API parameters are supported. http://demo.imagizercdn.com/doc/
ImagizerEngine.host = "141.123.12.9"
ImagizerEngine.configure do
  version :thumb, 
    :processes => {
      width: 250,
      height: 100,
      scale: 1
    }
  
  version :cover, 
    :parent => :thumb,
    :processes => {
      scale: 2,
      crop: [1,2,3,4]
    }

  version :preview,
    :processes => {
      quality: 80
    }
end

Usage

In the class that has the original image url, invoke `mount_imagizer_engine' method. This method takes two parameters: the image name and the method to be called to get the original url of the image.

class User
  extend ImagizerEngine::Mount #this line is not necessary if you're using Rails with ActiveRecord 
  mount_imagizer_engine :profile_image, :original_url_method_name
  
end

Since we passed :original_url_method_name as the method which contains the full image url, we should define it somehow. It can be a column if using on Rails/ActiveRecord for instance, or simply define:

class User

  def original_url_method_name
    "http://s3aws.address/my_original_image.png"
  end
end

To use the Imagizer Engine use the profile_image_url() method. This also takes an optional parameter that could be one of the versions defined in the config file

user = User.new
user.profile_image_url() => "http://143.123.12.9/path/to/file"
user.profile_image_url(:cover) => "http://143.123.12.9/path/to/file?scale=2&crop1,2,3,4"

Also, there's a method that will return the image metadata parsed JSON:

user.profile_image_metadata => {
fileSize: 4428575,
width: 4032,
height: 3024,
fileType: "jpeg",
mimeType: "image/jpeg",
hasAlpha: false,
colorSpace: "srgb",
exif: {
ApertureValue: "2159/1273",
BrightnessValue: "3497/314",
ComponentsConfiguration: "1, 2, 3, 0",
DateTime: "2017:04:02 16:08:21",
DateTimeDigitized: "2017:04:02 16:08:21",
DateTimeOriginal: "2017:04:02 16:08:21",
ExifImageLength: 3024,
ExifImageWidth: 4032,
ExifOffset: 180,
ExifVersion: "48, 50, 50, 49",
ExposureBiasValue: "0/1",
ExposureMode: 0,
ExposureProgram: 2,
ExposureTime: "1/3690",
Flash: 24,
FlashPixVersion: "48, 49, 48, 48",
FNumber: "9/5",
FocalLength: "399/100",
FocalLengthIn35mmFilm: 28,
ISOSpeedRatings: 20,
Make: "Apple",
MeteringMode: 5,
Model: "iPhone 7",
Orientation: 1,
ResolutionUnit: 2,
SceneCaptureType: 0,
SceneType: 1,
SensingMethod: 2,
ShutterSpeedValue: "29588/2497",
Software: 10.3,
SubjectArea: "2015, 1511, 2217, 1330",
SubSecTimeDigitized: 245,
SubSecTimeOriginal: 245,
WhiteBalance: 0,
XResolution: "72/1",
YResolution: "72/1"
},
faces: [ ],
server: {
host: "ip-10-0-1-213",
ip: "10.0.1.213"
},
icc: {
copyright: "Copyright Apple Inc., 2016",
description: "Apple Wide Color Sharing Profile",
manufacturer: "Apple Wide Color Sharing Profile",
model: "Apple Wide Color Sharing Profile"
},
jpeg: {
colorspace: 2,
sampling-factor: "2x2,1x1,1x1"
}
}

Contributing

FAQs

Package last updated on 22 Sep 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.