Cloudinary Blog

Display Instagram and Google+ profile pictures in your website and mobile app

Embed Instagram, Google+ profile pictures in your site
Many modern web and mobile applications include integral social aspects as parts of their online solution. 
 
Users can sign-in to these services and be identified by their chosen social identity. This is made quite straightforward by leveraging single sign-on services such as Facebook Connect, Twitter, Google+ and others. After signing in, activities in the service and user generated content can be accompanied with the real name of the users as well as their profile pictures.
 
In order to display a user's social profile picture in your web site, you'll need to support all the different APIs provided by the relevant social network, each with its own quirks. You'll then probably want to fetch the profile picture to your local server. After that, you'll want to modify the picture to match your graphic design's dimensions and aspect ratio requirements, apply the relevant transformations (applying circular crops, sharpening, etc.), and remember to update the images on your side when users update their profile pictures on the social network.
 
Overall, a lot of small things to take care of.
 
Fortunately, Cloudinary already does all that for you. Simply specify the social profile name or ID using Cloudinary's dynamic image URLs and you're done. Cloudinary contacts the social network and automatically fetches the profile picture that best matches your display requirements. It then transforms the image on-the-fly to match your graphic design, delivers the image optimized and cached through a fast CDN and refreshes the image periodically in case it was changes on the social network.
 
This blog post details how you can embed social pictures from Google+ and Instagram, our latest additions to Cloudinary's list of supported social networks (adding to Facebook, Twitter and Gravatar).
 

Instagram profile pictures

Every Instagram user has a unique public user name and a main profile picture. If you know that a piece of content on your site was contributed by a certain Instagram user, you can use Cloudinary's delivery URLs to fetch and display their main profile picture side-by-side with their added content.
 
The following example fetches the profile picture of 'angelinajolieofficial' while transforming it to fill a 120x120 rectangle, optimizes it and delivers it through a CDN.
 
 
120x120 Instagram profile picture
 
If you use one of our client libraries, all you need to do is to set the image type to 'instagram_name'. Here's a Ruby on Rails example:
<%= cl_image_tag('angelinajolieofficial.jpg',
                 :type => :instagram_name, :width => 120, :height => 120, 
                 :crop => :fill) %>
In the example above, the original Instagram profile picture was displayed while reducing its original dimensions. You can apply any Cloudinary transformation on-the-fly to match the look & feel of your application on any desktop, mobile or retina display. The following example generates a 90x90 circular crop thumbnail of the same photo. Automatic face detection was used to correctly crop the original image. In addition, an automatic image improvement filter was applied on the generated thumbnail.
 
 
Manipulated Instagram profile picture by name
 
 
The following PHP code creates the same URL:
<?php echo cl_image_tag("angelinajolieofficial.jpg",
             array("type": "instagram_name",
                   "width" => 90, "height" => 90, "crop" => "thumb", 
                   "gravity" => "face", "radius" => "max", "effect" => "improve")); ?>
Google+ profile pictures
The Google+ social network strives to be the ultimate Facebook alternative. Using Cloudinary, you can easily embed Google+ profile pictures in your website and mobile app. 
 
Do that by simply setting the image type to 'gplus' while building Cloudinary URLs. The images are identified by Google+ unique numeric ID.
 
The following URL delivers a 150x150 version of the Google+ profile of Larry Page that has the numeric ID of 106189723444098348646:
 
 
Google+ profile picture 
The following .Net code generates the same image:
cloudinary.Api.UrlImgUp.Action("gplus").Transform(
  new Transformation().Width(150).Height(150).Crop("scale")).
    BuildImageTag("106189723444098348646.jpg");
You can apply any Cloudinary image manipulation on the image. The following example generate a 150x150 face-detection based circular thumbnail while increasing the fill light of the resulting image and changing its colors to be more blueish.  
 
When generating rounded corners or circular images, you might want the background of the image to be transparent. This will allow you to place the image over a background image or pattern. To do that, just tell Cloudinary to convert the image format on-the-fly to the PNG format that supports transparent background (alpha channel).
 
 
Google+ manipulated profile picture as PNG         
 
The following Django code generates the same result:
cloudinary.CloudinaryImage("106189723444098348646.png").image(
             transformation = [
               { "width": 150, "height": 150, "crop": "fill", 
                  "gravity": "face", "radius": "max", "effect": "fill_light:30" },
               { "effect": "blue:50" }
             ]
            )
In addition to user profile pictures, Google+ (as well as Facebook) also maintains profile pictures of companies, products and figures. You can use the same 'gplus' image type to transform and deliver pictures of these additional Google+ pages as well. The following example delivers the picture of Google's Google+ page while scaling it to 100 pixels width, rotating by 30 degrees and applying a grayscale effect. This time, using the name of this page '+google'.
 
 
Google+ profile picture based on page name
 
 
While all code samples above rendered an HTML image tag on the server-side, you can use Cloudinary's jQuery plugin to dynamically embed social profile pictures from your client-side code on the browser side. Here's a jQuery example:
$.cloudinary.image("+google.jpg", 
  { transformation: { width: 100, crop: 'scale', effect: 'grayscale' }, angle: 30 })

Summary

Many of Cloudinary's customers already use Cloudinary to fetch, manipulate and deliver Facebook and Twitter profile pictures in their web and mobile sites and apps. Now you have the same simple integration available for both Google+ and Instagram. We hope you enjoy using these new features as well.
 
Profile picture delivery of all supported social networks is included in any of our plans. Try it out now.

Recent Blog Posts

Hipcamp Optimizes Images and Improves Page Load Times With Cloudinary

When creating a website that allows campers to discover great destinations, Hipcamp put a strong emphasis on featuring high-quality images that showcased the list of beautiful locations, regardless of whether users accessed the site on a desktop, tablet, or phone. Since 2015, Hipcamp has relied on Cloudinary’s image management solution to automate cropping and image optimization, enabling instant public delivery of photos, automatic tagging based on content recognition, and faster loading of webpages. In addition, Hipcamp was able to maintain the high standards it holds for the look and feel of its website.

Read more
New Image File Format: FUIF: Why Do We Need a New Image Format

In my last post, I introduced FUIF, a new, free, and universal image format I’ve created. In this post and other follow-up pieces, I will explain the why, what, and how of FUIF.

Even though JPEG is still the most widely-used image file format on the web, it has limitations, especially the subset of the format that has been implemented in browsers and that has, therefore, become the de facto standard. Because JPEG has a relatively verbose header, it cannot be used (at least not as is) for low-quality image placeholders (LQIP), for which you need a budget of a few hundred bytes. JPEG cannot encode alpha channels (transparency); it is restricted to 8 bits per channel; and its entropy coding is no longer state of the art. Also, JPEG is not fully “responsive by design.” There is no easy way to find a file’s truncation offsets and it is limited to a 1:8 downscale (the DC coefficients). If you want to use the same file for an 8K UHD display (7,680 pixels wide) and for a smart watch (320 pixels wide), 1:8 is not enough. And finally, JPEG does not work well with nonphotographic images and cannot do fully lossless compression.

Read more
 New Image File Format: FUIF:Lossy, Lossless, and Free

I've been working to create a new image format, which I'm calling FUIF, or Free Universal Image Format. That’s a rather pretentious name, I know. But I couldn’t call it the Free Lossy Image Format (FLIF) because that acronym is not available any more (see below) and FUIF can do lossless, too, so it wouldn’t be accurate either.

Read more
Optimizing Video Streaming and Delivery: Q&A with Doug Sillars

Doug Sillars, a digital nomad and a freelance mobile-performance expert, answers questions about video streaming and delivery, website optimization, and more.

Doug Sillars, a freelance mobile-performance expert and developer advocate, is a Google Developer Expert and the author of O’Reilly’s High Performance Android Apps. Given his extensive travels across the globe—from the UK to Siberia—with his wife, kids, and 11-year-old dog, Max, he has been referred to as a “digital nomad.” So far in 2018, Doug has spoken at more than 75 meetups and conferences!

Read more