How to Do a Black and White Partial Color Effect With the GIMP Photo Editor

Create black and white photos with a splash of color

cab in front of the Guggenheim Museum

Comstock Images / Getty Images

One of the more dynamic photo effects involves converting a photo to black and white except for one object that stands out in color. You can achieve this in many ways. Here's a non-destructive method using a layer mask in the free photo editor GIMP (GNU Image Manipulation Program)

Create the Layers to Work With

  1. Open the image that you want to work with in GIMP. This works best with a color of higher contrast to the other colors in the image.

    GIMP image open to work on
  2. Make the layers palette visible by pressing Ctrl + L.

  3. Right-click on the background layer, and choose Duplicate Layer from the menu. You'll have a new layer called the same thing as the original with copy at the end.

    GIMP duplicate layer
  4. Double-click on the layer name and replace "copy" with "grayscale." Then. press Enter to rename the layer.

    GIMP grayscale layer renamed
  5. Go to the Colors menu and choose Desaturate > Colors to Gray with the grayscale layer selected.

    GIMP desaturate layer
  6. A new floating dialog will open up and give you a preview of what the grayscale image will look like. If it appears too light, select Enhance Shadows. When you're happy with the results, press Ok.

    GIMP desaturation controls
  7. Right click on the grayscale layer in the layers palette and choose Add Layer Mask from the menu.

    GIMP add layer mask
  8. Set the options as shown here in the dialog that appears, with White (full opacity) selected. The, select Add to apply the mask. The layers palette will now show a white box next to the image thumbnail – this represents the mask.

    GIMP layer mask options

Let the Color Show Through

A layer mask lets you erase parts of a layer by painting on the mask. White reveals the layer, black blocks it completely, and shades of gray partially reveal it. Because the mask is currently all white, the entire grayscale layer is being revealed. You're going to block the grayscale layer, and reveal the color from the background layer by painting on the layer mask with black. 

There are a couple of ways to handle this, then. You can either manually paint your layer mask on the grayscale layer black with the Paintbrush Tool, or you can use one of the color selection tools on the underlying color layer to pick the areas that you want, and either delete or paint them black from the grayscale layer.

The Select by Color Tool is probably the easiest option, since it's easy to mess up with the brush. However, if your image doesn't work well with that, you'll need to use the brush.

  1. Hide the grayscale layer, and select the color one.

  2. Choose the Select by Color tool from your Toolbox.

  3. Select the area that you want to show through.

    GIMP select by color
  4. You may need to adjust the Threshold, and retry a few times to get exactly what you want. You can also try lowering the threshold, and holding the Shift key while selecting multiple areas to grab a wider range of colors.

  5. When you're happy with the selection, choose the grayscale layer with the selection still active.

  6. From there, you can either use the Bucket Fill Tool to fill in the selected area with black, or you can press the Delete key to cut out those areas.

  7. Choose Select > None from the top menu to remove the selection and see the final result.

    GIMP with colors cut out

Using the Paintbrush Tool

When all else fails, the Paintbrush Tool is your best option. It's also a great way to clean up any areas missed by another tool.

  1. Zoom in on the area you want to work in. It should be close enough that it'll be easy to get every detail.

    GIMP zoomed in
  2. Activate the Paintbrush tool, select an appropriately-sized round brush, and set opacity to 100 percent. Set the foreground color to black by pressing D.

  3. Now, select the layer mask thumbnail in the layers palette and begin painting over the color area in the photo. This is a good time to use a graphics tablet if you have one.

    GIMP paintbrush through layer mask

    As you paint, use the bracket keys to increase or decrease the size of your brush:

    • [ makes the brush smaller
    • ] makes the brush larger
    • Shift + [ makes the brush softer
    • Shift + ] makes the brush harder
  4. Feel free to switch visibility of the grayscale layer on and off as you go. You can sill work with the grayscale layer hidden, and it helps you see the color better.

    GIMP paintbrush on hidden layer
  5. You probably painted color onto some areas that you didn't intend to. No worries. Just switch the foreground color to white by pressing X and erase away the color back to gray using a small brush. Zoom in close and clean up any edges using the shortcuts you've learned.

    GIMP touch up paintbrush on layer mask
  6. Set your zoom level back to 100 percent (actual pixels) when you're done. You can do this by pressing 1 on the keyboard. If the colored edges look too harsh, you can soften them slightly by going to Filters > Blur > Gaussian Blur and setting a blur radius of 1 to 2 pixels. The blur is applied to the mask, not the photo, resulting in a softer edge.

    GIMP paintbrush layer mask results

Make Some Noise

Traditional black and white photography would ordinarily have some film grain. This was a digital photo so you won't get that grainy quality, but we can add it with the noise filter.

  1. First, we have to flatten the image that will remove the layer mask, so make sure you're completely happy with the color effect before we start. If you want to keep an editable version of the file before flattening, go to File > Save a Copy and choose GIMP XCF image for the file type. This will create a copy in GIMP's native format but it will keep your working file open.

  2. Now, right-click in the layers palette and choose Flatten Image.

    GIMP flatten image
  3. With the background copy selected, go to Filters > Noise > RGB Noise.

    GIMP RGB noise filter
  4. Uncheck the boxes for both Correlated Noise and Independent RGB.

  5. Set the Red, Green and Blue amount to 0.25. This will vary slightly based on your image resolution, so if that value doesn't work, play around until you like the result.

    GIMP RGB noise
  6. Check the results in the preview window and adjust the image to your liking. You can compare the difference with and without the noise effect by using the undo and redo commands.

Crop and Export the Photo

Depending on the content of your photo, you may want to crop the image to focus the composition on the area you worked on. Use the Crop Tool to cut down your image, and re-frame it to focus. Then, export your image with File > Export As to create your finished, shareable, product.

GIMP selective color results