Cloudinary Blog

Re-creating the Color Pop Effect on Google Photos With Cloudinary

Creating Color Pop Effect on Google Photos With Cloudinary

One photo can morph into a thousand photos through a simple application of bits and pieces of transformation effects. A few examples of the common effects are Black and White, Duotone, Blurs and Fades, Cartoonification, and Color Pop.

Given the wide use of the Color Pop effect on Google Photos, you can show off your photos on social media after applying that effect. No kidding: I’ve seen that several times and absolutely love those photos every time they pop on my timeline on Facebook, Twitter, or Instagram.

Webinar
5 Visual Engagement Tactics That Convert Online Buyers

In this article, I’ll show you how we can re-create the Color Pop effect on Google photos.

Cloudinary’s many transformation capabilities can turn out stupendous effects. For example, these two steps generate the image below:

  1. Upload a photo to Cloudinary twice, once with the original and then again with the background removed from the photo. Both versions have separate public IDs.
  2. Reference the original photo with the grayscale effect and overlay it with the background-removed version.

Ruby:
Copy to clipboard
cl_image_tag("mac-frog-original.jpg", :transformation=>[
  {:effect=>"grayscale"},
  {:overlay=>"mac-frog-cloudinary-bg-ai"}
  ])
PHP v1:
Copy to clipboard
cl_image_tag("mac-frog-original.jpg", array("transformation"=>array(
  array("effect"=>"grayscale"),
  array("overlay"=>"mac-frog-cloudinary-bg-ai")
  )))
PHP v2:
Copy to clipboard
(new ImageTag('mac-frog-original.jpg'))
  ->effect(Effect::grayscale())
  ->overlay(Overlay::source(Source::image('mac-frog-cloudinary-bg-ai')));
Python:
Copy to clipboard
CloudinaryImage("mac-frog-original.jpg").image(transformation=[
  {'effect': "grayscale"},
  {'overlay': "mac-frog-cloudinary-bg-ai"}
  ])
Node.js:
Copy to clipboard
cloudinary.image("mac-frog-original.jpg", {transformation: [
  {effect: "grayscale"},
  {overlay: "mac-frog-cloudinary-bg-ai"}
  ]})
Java:
Copy to clipboard
cloudinary.url().transformation(new Transformation()
  .effect("grayscale").chain()
  .overlay(new Layer().publicId("mac-frog-cloudinary-bg-ai"))).imageTag("mac-frog-original.jpg");
JS:
Copy to clipboard
cloudinary.imageTag('mac-frog-original.jpg', {transformation: [
  {effect: "grayscale"},
  {overlay: new cloudinary.Layer().publicId("mac-frog-cloudinary-bg-ai")}
  ]}).toHtml();
jQuery:
Copy to clipboard
$.cloudinary.image("mac-frog-original.jpg", {transformation: [
  {effect: "grayscale"},
  {overlay: new cloudinary.Layer().publicId("mac-frog-cloudinary-bg-ai")}
  ]})
React:
Copy to clipboard
<Image publicId="mac-frog-original.jpg" >
  <Transformation effect="grayscale" />
  <Transformation overlay="mac-frog-cloudinary-bg-ai" />
</Image>
Vue.js:
Copy to clipboard
<cld-image publicId="mac-frog-original.jpg" >
  <cld-transformation effect="grayscale" />
  <cld-transformation :overlay="mac-frog-cloudinary-bg-ai" />
</cld-image>
Angular:
Copy to clipboard
<cl-image public-id="mac-frog-original.jpg" >
  <cl-transformation effect="grayscale">
  </cl-transformation>
  <cl-transformation overlay="mac-frog-cloudinary-bg-ai">
  </cl-transformation>
</cl-image>
.NET:
Copy to clipboard
cloudinary.Api.UrlImgUp.Transform(new Transformation()
  .Effect("grayscale").Chain()
  .Overlay(new Layer().PublicId("mac-frog-cloudinary-bg-ai"))).BuildImageTag("mac-frog-original.jpg")
Android:
Copy to clipboard
MediaManager.get().url().transformation(new Transformation()
  .effect("grayscale").chain()
  .overlay(new Layer().publicId("mac-frog-cloudinary-bg-ai"))).generate("mac-frog-original.jpg");
iOS:
Copy to clipboard
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()
  .setEffect("grayscale").chain()
  .setOverlay("mac-frog-cloudinary-bg-ai")).generate("mac-frog-original.jpg")!, cloudinary: cloudinary)
Cloudinary re-creating Color Pop

That’s similar to this photo, which resulted from an application of Google Photo's Color Pop effect:

Ruby:
Copy to clipboard
cl_image_tag("mac-frog-color-pop.jpg")
PHP v1:
Copy to clipboard
cl_image_tag("mac-frog-color-pop.jpg")
PHP v2:
Copy to clipboard
(new ImageTag('mac-frog-color-pop.jpg'));
Python:
Copy to clipboard
CloudinaryImage("mac-frog-color-pop.jpg").image()
Node.js:
Copy to clipboard
cloudinary.image("mac-frog-color-pop.jpg")
Java:
Copy to clipboard
cloudinary.url().imageTag("mac-frog-color-pop.jpg");
JS:
Copy to clipboard
cloudinary.imageTag('mac-frog-color-pop.jpg').toHtml();
jQuery:
Copy to clipboard
$.cloudinary.image("mac-frog-color-pop.jpg")
React:
Copy to clipboard
<Image publicId="mac-frog-color-pop.jpg" >

</Image>
Vue.js:
Copy to clipboard
<cld-image publicId="mac-frog-color-pop.jpg" >

</cld-image>
Angular:
Copy to clipboard
<cl-image public-id="mac-frog-color-pop.jpg" >

</cl-image>
.NET:
Copy to clipboard
cloudinary.Api.UrlImgUp.BuildImageTag("mac-frog-color-pop.jpg")
Android:
Copy to clipboard
MediaManager.get().url().generate("mac-frog-color-pop.jpg");
iOS:
Copy to clipboard
imageView.cldSetImage(cloudinary.createUrl().generate("mac-frog-color-pop.jpg")!, cloudinary: cloudinary)
Color Pop Example

Here’s a detailed rundown on how to re-create the Color Pop effect:

  1. Start with the original and a version with the background removed.

    To remove the background, leverage Cloudinary’s AI feature or, manually, with an image-editing tool, such as Pixelz or Adobe Photoshop.

    Ruby:
    Copy to clipboard
    cl_image_tag("mac-frog-original.jpg")
    PHP v1:
    Copy to clipboard
    cl_image_tag("mac-frog-original.jpg")
    PHP v2:
    Copy to clipboard
    (new ImageTag('mac-frog-original.jpg'));
    Python:
    Copy to clipboard
    CloudinaryImage("mac-frog-original.jpg").image()
    Node.js:
    Copy to clipboard
    cloudinary.image("mac-frog-original.jpg")
    Java:
    Copy to clipboard
    cloudinary.url().imageTag("mac-frog-original.jpg");
    JS:
    Copy to clipboard
    cloudinary.imageTag('mac-frog-original.jpg').toHtml();
    jQuery:
    Copy to clipboard
    $.cloudinary.image("mac-frog-original.jpg")
    React:
    Copy to clipboard
    <Image publicId="mac-frog-original.jpg" >
    
    </Image>
    Vue.js:
    Copy to clipboard
    <cld-image publicId="mac-frog-original.jpg" >
    
    </cld-image>
    Angular:
    Copy to clipboard
    <cl-image public-id="mac-frog-original.jpg" >
    
    </cl-image>
    .NET:
    Copy to clipboard
    cloudinary.Api.UrlImgUp.BuildImageTag("mac-frog-original.jpg")
    Android:
    Copy to clipboard
    MediaManager.get().url().generate("mac-frog-original.jpg");
    iOS:
    Copy to clipboard
    imageView.cldSetImage(cloudinary.createUrl().generate("mac-frog-original.jpg")!, cloudinary: cloudinary)
    Original

    Ruby:
    Copy to clipboard
    cl_image_tag("mac-frog-cloudinary-bg-ai.jpg")
    PHP v1:
    Copy to clipboard
    cl_image_tag("mac-frog-cloudinary-bg-ai.jpg")
    PHP v2:
    Copy to clipboard
    (new ImageTag('mac-frog-cloudinary-bg-ai.jpg'));
    Python:
    Copy to clipboard
    CloudinaryImage("mac-frog-cloudinary-bg-ai.jpg").image()
    Node.js:
    Copy to clipboard
    cloudinary.image("mac-frog-cloudinary-bg-ai.jpg")
    Java:
    Copy to clipboard
    cloudinary.url().imageTag("mac-frog-cloudinary-bg-ai.jpg");
    JS:
    Copy to clipboard
    cloudinary.imageTag('mac-frog-cloudinary-bg-ai.jpg').toHtml();
    jQuery:
    Copy to clipboard
    $.cloudinary.image("mac-frog-cloudinary-bg-ai.jpg")
    React:
    Copy to clipboard
    <Image publicId="mac-frog-cloudinary-bg-ai.jpg" >
    
    </Image>
    Vue.js:
    Copy to clipboard
    <cld-image publicId="mac-frog-cloudinary-bg-ai.jpg" >
    
    </cld-image>
    Angular:
    Copy to clipboard
    <cl-image public-id="mac-frog-cloudinary-bg-ai.jpg" >
    
    </cl-image>
    .NET:
    Copy to clipboard
    cloudinary.Api.UrlImgUp.BuildImageTag("mac-frog-cloudinary-bg-ai.jpg")
    Android:
    Copy to clipboard
    MediaManager.get().url().generate("mac-frog-cloudinary-bg-ai.jpg");
    iOS:
    Copy to clipboard
    imageView.cldSetImage(cloudinary.createUrl().generate("mac-frog-cloudinary-bg-ai.jpg")!, cloudinary: cloudinary)
    Background Removed

  2. Overlay the background-removed version on top of the original.

    If the new version looks different from the original, ensure that the image dimensions match and that no other cropping occurred.

    Ruby:
    Copy to clipboard
    cl_image_tag("mac-frog-original.jpg", :overlay=>"mac-frog-cloudinary-bg-ai")
    PHP v1:
    Copy to clipboard
    cl_image_tag("mac-frog-original.jpg", array("overlay"=>"mac-frog-cloudinary-bg-ai"))
    PHP v2:
    Copy to clipboard
    (new ImageTag('mac-frog-original.jpg'))
      ->overlay(Overlay::source(Source::image('mac-frog-cloudinary-bg-ai')));
    Python:
    Copy to clipboard
    CloudinaryImage("mac-frog-original.jpg").image(overlay="mac-frog-cloudinary-bg-ai")
    Node.js:
    Copy to clipboard
    cloudinary.image("mac-frog-original.jpg", {overlay: "mac-frog-cloudinary-bg-ai"})
    Java:
    Copy to clipboard
    cloudinary.url().transformation(new Transformation().overlay(new Layer().publicId("mac-frog-cloudinary-bg-ai"))).imageTag("mac-frog-original.jpg");
    JS:
    Copy to clipboard
    cloudinary.imageTag('mac-frog-original.jpg', {overlay: new cloudinary.Layer().publicId("mac-frog-cloudinary-bg-ai")}).toHtml();
    jQuery:
    Copy to clipboard
    $.cloudinary.image("mac-frog-original.jpg", {overlay: new cloudinary.Layer().publicId("mac-frog-cloudinary-bg-ai")})
    React:
    Copy to clipboard
    <Image publicId="mac-frog-original.jpg" >
      <Transformation overlay="mac-frog-cloudinary-bg-ai" />
    </Image>
    Vue.js:
    Copy to clipboard
    <cld-image publicId="mac-frog-original.jpg" >
      <cld-transformation :overlay="mac-frog-cloudinary-bg-ai" />
    </cld-image>
    Angular:
    Copy to clipboard
    <cl-image public-id="mac-frog-original.jpg" >
      <cl-transformation overlay="mac-frog-cloudinary-bg-ai">
      </cl-transformation>
    </cl-image>
    .NET:
    Copy to clipboard
    cloudinary.Api.UrlImgUp.Transform(new Transformation().Overlay(new Layer().PublicId("mac-frog-cloudinary-bg-ai"))).BuildImageTag("mac-frog-original.jpg")
    Android:
    Copy to clipboard
    MediaManager.get().url().transformation(new Transformation().overlay(new Layer().publicId("mac-frog-cloudinary-bg-ai"))).generate("mac-frog-original.jpg");
    iOS:
    Copy to clipboard
    imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setOverlay("mac-frog-cloudinary-bg-ai")).generate("mac-frog-original.jpg")!, cloudinary: cloudinary)
    Overlayed

  3. Apply effects, such as grayscale as in this example, to the original layer.

    Ruby:
    Copy to clipboard
    cl_image_tag("mac-frog-original.jpg", :transformation=>[
      {:effect=>"grayscale"},
      {:overlay=>"mac-frog-cloudinary-bg-ai"}
      ])
    PHP v1:
    Copy to clipboard
    cl_image_tag("mac-frog-original.jpg", array("transformation"=>array(
      array("effect"=>"grayscale"),
      array("overlay"=>"mac-frog-cloudinary-bg-ai")
      )))
    PHP v2:
    Copy to clipboard
    (new ImageTag('mac-frog-original.jpg'))
      ->effect(Effect::grayscale())
      ->overlay(Overlay::source(Source::image('mac-frog-cloudinary-bg-ai')));
    Python:
    Copy to clipboard
    CloudinaryImage("mac-frog-original.jpg").image(transformation=[
      {'effect': "grayscale"},
      {'overlay': "mac-frog-cloudinary-bg-ai"}
      ])
    Node.js:
    Copy to clipboard
    cloudinary.image("mac-frog-original.jpg", {transformation: [
      {effect: "grayscale"},
      {overlay: "mac-frog-cloudinary-bg-ai"}
      ]})
    Java:
    Copy to clipboard
    cloudinary.url().transformation(new Transformation()
      .effect("grayscale").chain()
      .overlay(new Layer().publicId("mac-frog-cloudinary-bg-ai"))).imageTag("mac-frog-original.jpg");
    JS:
    Copy to clipboard
    cloudinary.imageTag('mac-frog-original.jpg', {transformation: [
      {effect: "grayscale"},
      {overlay: new cloudinary.Layer().publicId("mac-frog-cloudinary-bg-ai")}
      ]}).toHtml();
    jQuery:
    Copy to clipboard
    $.cloudinary.image("mac-frog-original.jpg", {transformation: [
      {effect: "grayscale"},
      {overlay: new cloudinary.Layer().publicId("mac-frog-cloudinary-bg-ai")}
      ]})
    React:
    Copy to clipboard
    <Image publicId="mac-frog-original.jpg" >
      <Transformation effect="grayscale" />
      <Transformation overlay="mac-frog-cloudinary-bg-ai" />
    </Image>
    Vue.js:
    Copy to clipboard
    <cld-image publicId="mac-frog-original.jpg" >
      <cld-transformation effect="grayscale" />
      <cld-transformation :overlay="mac-frog-cloudinary-bg-ai" />
    </cld-image>
    Angular:
    Copy to clipboard
    <cl-image public-id="mac-frog-original.jpg" >
      <cl-transformation effect="grayscale">
      </cl-transformation>
      <cl-transformation overlay="mac-frog-cloudinary-bg-ai">
      </cl-transformation>
    </cl-image>
    .NET:
    Copy to clipboard
    cloudinary.Api.UrlImgUp.Transform(new Transformation()
      .Effect("grayscale").Chain()
      .Overlay(new Layer().PublicId("mac-frog-cloudinary-bg-ai"))).BuildImageTag("mac-frog-original.jpg")
    Android:
    Copy to clipboard
    MediaManager.get().url().transformation(new Transformation()
      .effect("grayscale").chain()
      .overlay(new Layer().publicId("mac-frog-cloudinary-bg-ai"))).generate("mac-frog-original.jpg");
    iOS:
    Copy to clipboard
    imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()
      .setEffect("grayscale").chain()
      .setOverlay("mac-frog-cloudinary-bg-ai")).generate("mac-frog-original.jpg")!, cloudinary: cloudinary)
    Cloudinary re-creating Color Pop

That technique can produce a wealth of fun effects, such as bokeh. Simply blur the original:

Ruby:
Copy to clipboard
cl_image_tag("mac-frog-original.jpg", :transformation=>[
  {:effect=>"blur:400"},
  {:overlay=>"mac-frog-cloudinary-bg-ai"}
  ])
PHP v1:
Copy to clipboard
cl_image_tag("mac-frog-original.jpg", array("transformation"=>array(
  array("effect"=>"blur:400"),
  array("overlay"=>"mac-frog-cloudinary-bg-ai")
  )))
PHP v2:
Copy to clipboard
(new ImageTag('mac-frog-original.jpg'))
  ->effect(Effect::blur()->strength(400))
  ->overlay(Overlay::source(Source::image('mac-frog-cloudinary-bg-ai')));
Python:
Copy to clipboard
CloudinaryImage("mac-frog-original.jpg").image(transformation=[
  {'effect': "blur:400"},
  {'overlay': "mac-frog-cloudinary-bg-ai"}
  ])
Node.js:
Copy to clipboard
cloudinary.image("mac-frog-original.jpg", {transformation: [
  {effect: "blur:400"},
  {overlay: "mac-frog-cloudinary-bg-ai"}
  ]})
Java:
Copy to clipboard
cloudinary.url().transformation(new Transformation()
  .effect("blur:400").chain()
  .overlay(new Layer().publicId("mac-frog-cloudinary-bg-ai"))).imageTag("mac-frog-original.jpg");
JS:
Copy to clipboard
cloudinary.imageTag('mac-frog-original.jpg', {transformation: [
  {effect: "blur:400"},
  {overlay: new cloudinary.Layer().publicId("mac-frog-cloudinary-bg-ai")}
  ]}).toHtml();
jQuery:
Copy to clipboard
$.cloudinary.image("mac-frog-original.jpg", {transformation: [
  {effect: "blur:400"},
  {overlay: new cloudinary.Layer().publicId("mac-frog-cloudinary-bg-ai")}
  ]})
React:
Copy to clipboard
<Image publicId="mac-frog-original.jpg" >
  <Transformation effect="blur:400" />
  <Transformation overlay="mac-frog-cloudinary-bg-ai" />
</Image>
Vue.js:
Copy to clipboard
<cld-image publicId="mac-frog-original.jpg" >
  <cld-transformation effect="blur:400" />
  <cld-transformation :overlay="mac-frog-cloudinary-bg-ai" />
</cld-image>
Angular:
Copy to clipboard
<cl-image public-id="mac-frog-original.jpg" >
  <cl-transformation effect="blur:400">
  </cl-transformation>
  <cl-transformation overlay="mac-frog-cloudinary-bg-ai">
  </cl-transformation>
</cl-image>
.NET:
Copy to clipboard
cloudinary.Api.UrlImgUp.Transform(new Transformation()
  .Effect("blur:400").Chain()
  .Overlay(new Layer().PublicId("mac-frog-cloudinary-bg-ai"))).BuildImageTag("mac-frog-original.jpg")
Android:
Copy to clipboard
MediaManager.get().url().transformation(new Transformation()
  .effect("blur:400").chain()
  .overlay(new Layer().publicId("mac-frog-cloudinary-bg-ai"))).generate("mac-frog-original.jpg");
iOS:
Copy to clipboard
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()
  .setEffect("blur:400").chain()
  .setOverlay("mac-frog-cloudinary-bg-ai")).generate("mac-frog-original.jpg")!, cloudinary: cloudinary)
Bokeh effect

Talk about fun! Try it for yourself by signing up for FREE today.

About Cloudinary

Cloudinary provides easy-to-use, cloud-based media management solutions for the world’s top brands. With offices in the US, UK and Israel, Cloudinary has quickly become the de facto solution used by developers and marketers at major companies around the world to streamline rich media management and deliver optimal end-user experiences.

For more information, visit www.cloudinary.com or follow us on Twitter.

Recent Blog Posts

Generate Names With faker.js and Convert Them to Graphics With Cloudinary

The year was 1994. South Africa held its first fully representative democratic election, Netscape Navigator became the first commercially successful web browser. Coconuts Japan re-released EA Sports' MLBPA Baseball video game under the perhaps surprising title Fighting Baseball. Unlike MLBPA Baseball, which was licensed by the Major League Baseball (MLB), Fighting Baseball could not infringe on MLB trademarks, reference the National League or American League by name, or adopt actual team or player names.

Read more
Partner news: Cloudinary-Getty Images Integration

Supported by intelligent automation, Cloudinary serves as an effective conduit between media asset management and delivery so you can take maximum advantage of assets, compress workflows, and build and coordinate engaging and inspiring customer experiences. Through Cloudinary’s Digital Asset Management (DAM) solution, which employs the company’s innovative image and video APIs, creative and marketing teams can benefit from them, as well as from many AI-powered and automated capabilities. As a result, you can transform, optimize, and deliver media at scale on an intuitive UI.

Read more