Huluma
Infinite creative options

Width, height, weight, luminosity and colour. All the image stats you need to automate beautiful layouts.

Reactively optimizes the delivery of your images to users, and unleashes your team's creative potential.

Inspect, resize, and automatically crop images to suit device and content. Automate page layout as never before.

Try it FREE

Original Image © Chris Moran, 3872px by 2592px.

  • Enables emotive image-led designs that stay fresh
  • Automate mashups, topic pages, and editorial workflows
  • Dynamically publish content to any device or platform
  • Lower bounce rates through faster load times
  • Delivers cropped and sized images into HTML or CSS
  • GET image colour and size in JSON to drive layout
  • Resized images load in parallel from low latency CDN
  • Dedicate server RAM and disk to application needs, not binaries

Inspect and Adapt. Set your editorial staff free

Throw away the editorial rule book, set free creativity, and automatically adapt to whatever the news agenda requires.

Flexibly automate content layout by measuring the aspect ratio and colour of actual content images. Raw pixel sizes are delivered via JSON and we throw in in aggregate pixel transparency and luma values, compensating for the relative brightness of yellow tones and similar perceptual oddities.

Rather than covering images with translucencies, you can maximise impact by choosing CSS styles based on hard empirical data, not the worst case scenario.

User generated content

Users never respect style rules, they will upload any image at any aspect ratio that suits them.

We believe adapation can out-class the lowest-common-denominator approach.

You collect data to decide what to display, Huluma has data about how best to do so.

Never too noir
Simplified Sunny

Detect dark images

This portion is more than half black (zero median), suitable for white text. The sunny spot is median: 79.23, stdDev: 79.18

{
  mimeType: "image/jpeg",
  bytes: 62530,
  width: 640,
  height: 427,
  properties: {
    LUMA: {
      mean: 34.33,
      rows: [
        [
          {
          width: 213,
          height: 142,
          median: 0,
          mean: 4.45,
          stdDev: 9.81
          },
          { ... },
          { ... }
        ],
        [
          { ... },
          { ... },
          { ... }
        ],
        [
          { ... },
          { ... },
          { ... }
        ]
      ]
    }
  }
}

View Full JSON

Bring out bright ones

A mean luma over 200 suggests black text. Higher stdDev forewarns you there are dark specks.

{
  mimeType: "image/jpeg",
  bytes: 139737,
  width: 640,
  height: 359,
  properties: {
    LUMA: {
      mean: 203.86,
      rows: [
        [
          {
          width: 213,
          height: 119,
          median: 220.69,
          mean: 218.32,
          stdDev: 23.8
          },
          { ... },
          { ... }
        ],
        [
          { ... },
          { ... },
          { ... }
        ],
        [
          { ... },
          { ... },
          { ... }
        ]
      ]
    }
  }
}

View Full JSON

Assuming an image hosted at http://example.com/girl.jpg just GET a JSON endpoint as follows:

http://huluma.net/statistics/HOST/PATH

parameters
HOSTthe fully qualified hostname e.g. example.com, www.example.org etc.
PATHthe path on your server e.g. temple.jpg, staff/fred.jpg etc.

So for example

http://huluma.net/statistics/example.com/girl.jpg

Mean and median luma statistics are calculated by first removing any transparent pixel. All measured images are cached for a short time in order to optimise future resize requests.

Luma
In video, luma represents the brightness in an image (the "black-and-white" or achromatic portion of the image). Luma is typically paired with chrominance. Luma represents the achromatic image, while the chroma components represent the color information.

Luma

Automatic Crop and Resize

Web developers need to deal with portrait and landscape image placeholders, fit portraits and landscapes into them, and deal with an amazing proliferation of device sizes, resolutions and device pixel ratios. Gone are the days when image sizes are predictable, stable and few in number.

Likewise editorial staff are producing content for dynamic publication to computers, mobiles, tablets, jumbotrons, and print media. Increasingly, neither journalists nor the image desk know where their content will be consumed and whether their technical team, or a social media platform will be handling layout for them. Asking editorial to adapt content to a layout is asking them to predict a million possible futures.

With Magick, we will accept any image and any target size and resize it to the best of our ability. You do not need to tell us, or even to know, whether the image needs cropping or not. You don't need to predict the future, we'll give you the graphic file you need for right now.

Assuming an image hosted at http://example.com/temple.jpg just change your template to produce an <img src=""> URL as follows:

http://huluma.net/resize/WIDTHxHEIGHT/HOST/PATH

The same URLs can also be used in CSS files to responsively adjust backgrounds for device dimensions and device pixel ratios using appropriate media queries.

parameters
WIDTHwidth in pixels
HEIGHTheight in pixels
HOSTthe fully qualified hostname e.g. example.com, www.example.org etc.
PATHthe path on your server e.g. temple.jpg, staff/fred.jpg etc.

Examples

A The original 4:3 image, resized to fit:

http://huluma.net/resize/400x300/example.com/temple.jpg

B cropped to 16:9:

http://huluma.net/resize/400x225/example.com/temple.jpg
A
B

Original Image © Soham Banerjee, 2592px by 1944px

Resize on demand

Resize any image on your server to suit your layout. You can choose any WIDTH or HEIGHT that pleases you and we'll try to make the most of it.

Examples

A A small thumbnail. We like small thumbnails:

http://huluma.net/resize/80x80/example.com/coffee-mug.jpg

B Maybe we'll make that bigger. We can if we want to:

http://huluma.net/resize/110x110/example.com/coffee-mug.jpg

C Not really a thumbnail but still resized efficiently:

http://huluma.net/resize/150x150/example.com/coffee-mug.jpg
A B C

Original Image © Chris Moran, 3872px by 2592px.

HTML URL Metadata

Make user content generation frictionless by expanding a submitted URL to a full JSON object including title, description and thumnails. We will tell you what metadata is provided for sharing on Facebook and Twitter so that you can build social bookmarks into a compelling content stream.

Build a URL as follows and issue a GET request:

http://huluma.net/metadata/[PROTOCOL://]HOST/PATH[?PARAMS]

parameters
PROTOCOLhttp or https. This whole block is optional, since encoding colons is a pain. Default http.
HOSTthe fully qualified hostname e.g. example.com, www.example.org etc.
PATHthe path on your server e.g. temple.jpg, staff/fred.jpg etc.
PARAMSthe remaining querystring part of your URL. Also optional.

Incidentally, since the parameters run together you can just lump your URL into the end of our bit:

http://huluma.net/metadata/YOUR FULL URL

Fragments (the bit after #) are ignored.

Output

The follow JSON is representative:

{
   "title": {
      "original": "Clandon Park House fire: Salvage operation under way - BBC News",
      "processed": "Clandon Park House fire: Salvage operation under way"
   },
   "sharing": {
      "FACEBOOK": {
         "url": "http://www.bbc.co.uk/news/uk-england-surrey-32527293",
         "title": "Clandon Park House fire: Salvage operation under way - BBC News",
         "image": {
            "uri": "http://ichef.bbci.co.uk/news/1024/media/images/82663000/jpg/_82663069_471540300.jpg",
            "alt": null,
            "width": 0,
            "height": 0
         },
         "summary": "Efforts are under way to save \"irreplaceable\" antiques at an 18th Century stately home after parts of it are gutted in a huge blaze."
      },
      "TWITTER": {
         "url": "http://www.bbc.co.uk/news/uk-england-surrey-32527293",
         "title": "Clandon Park House fire: Salvage operation under way - BBC News",
         "image": {
            "uri": "http://ichef.bbci.co.uk/news/560/media/images/82663000/jpg/_82663069_471540300.jpg",
            "alt": null,
            "width": 0,
            "height": 0
         },
         "summary": "Efforts are under way to save \"irreplaceable\" antiques at an 18th Century stately home after parts of it are gutted in a huge blaze."
      }
   }
}

Monthly billing from £12.50 ex VAT

22 GB
per month
Additional GB
50p/GB
£12.50
ex VAT

You will be billed for all image files downloaded from and by huluma.net that are attributable to your domain. Metadata requests are billed by the GB according the size of the source image or HTML file. Repeated metadata calls are not billed if satisfied from our cache.

Ignore if not relevant. Further information about VAT number types and formats can be obtained from HMRC. Thanks for your patience.
We will deliver images to this domain.
You will be asked for a postal address.

First 2Gb free!

I want us to get to know each other, so try out the API free.

There is no need to register or subscribe now, and if you use more than 2Gb per month without subscribing then we'll drop you a friendly reminder.

Overages will be dealt with manually, by invoice, and you will receive a monthly statement.

Enterprise Requirements?

Please contact Simon Gibbs for high-volume pricing.

Contact Simon 

Want to PAYG?

We are interested in adding this feature.

Discuss this Feature