35

In Photoshop, I've put together some panorama photos using the Photomerge tool, and the resulting image contains a lot of transparent pixels. Also, because it's assembled from multiple photos, the alignment can be off. What I'd like to do is cut the image down to the largest box which contains no transparent pixels at all. It's similar to the Trim tool, but this would remove a number of non-transparent pixels. Is there anything like this?

Basically something that would automatically crop the above image to the selection box there: a rectangle with no transparent pixels.

nickf
  • 2,328

9 Answers9

40

Image > Trim then select Based On: Transparent Pixels

Caleb
  • 425
3

Using CS6, the following does exactly what is required for me:

  1. select crop tool
  2. select 'straighten'
  3. draw along a known straight line
  4. the rotation is performed immediately and a suggested crop appears cutting out all the transparent pixels resulting from the rotation.

result: beautiful!

Pete C
  • 41
2

There are several different approaches I would take to this, but I can't think of a way to do it automatically.

First create a fill layer below with a bright colour. This shows you any semi-transparent pixels left from merging images.

Secondly, duplicate the top layer with your image. keep duplicating your original picture layer until any colour from the fill layer below has vanished. This has the effect of making any semi-transparent pixels completely opaque, and doesn't affect the rest of the image as it already is.

Last, merge all these layers and crop to the desired size. You could crop at the beginning if you wanted to, it makes no difference.

If a given pixel area has no fill, rather than crop it, why not clone over it with the clone tool?

nemof
  • 153
2

Just in case photoshop does offer you no solution for this:

I use Microsoft ICE or Autopano Pro for photo stitching, and they both have very simple to use crop features to achieve just this.

Maybe you should try to use a different tool for stitching - ICE is free of charge, might be worth a try.

Sam
  • 2,154
1

Make a new layer and Edit - Fill... it with black.

Now, with both layers visible and the picture layer selected, use Magic Wand, and with "Sample All Layers" and "Contiguous" checked, select the transparent area now turned black.

Hit delete. All contiguous transparent pixels should be deleted.

0

You need to Select All, then tap right and then left on your keyboard to just select the opaque pixels without ultimately moving any of them, then hit Crop. This will bound just the opaque pixels.

0

This can be done with a script like the one below:

  1. Download the script here: https://developer71240.github.io/crop-to-opaque/
  2. Extract the donwloaded zip file
  3. With the image to be trimmed open in Photoshop, choose File > Open
  4. Browse to the extracted script files, select crop-to-opaque.jsx and choose Open

Note: the image will be trimmed according to the current layer which must have an alpha channel.

0

What I can think of is:

a) Photoshop scripting [1 2]

b) Matlab [3]

Have a look. Meanwhile, I'll look for links that explain better how this can be done or probably write some Matlab code for this and then edit this post.

Lazer
  • 18,407
0

If you can't find an automatic tool and have to end up doing it by hand, this tutorial will show how to do it with the single-row marquee tool which is a lot easier than the regular one when trying to get right at the top.

Deverill
  • 216