[Tex/LaTex] Best figure size adjustment when dealing with different image sizes

beamergraphicsscaling

I have a script which automatically creates a beamer presentation with several .ps images, each one inserted in a distinct frame. Those images consist on graphs built using GraphViz. The script is basically iterating on this code snippet:

\begin{frame}{Image 1}

    \begin{figure}
        \includegraphics[width=1\textwidth]{image-1.ps}
    \end{figure}

\end{frame}

I have some images with large widths, like this one (reduced the size and quality for best viewing):

An image with large width

So the above code works like a charm. But I do have small images as well, like this one:

A small image

If I leave the \includegraphics command with no adjustments, my images will become way bigger than the frame itself. If I put width=1\textwidth, it will work fine with large width images, but not with small ones.

Is there a way to find the best figure size adjustment when using \includegraphics, so my images will be displayed correctly? I usually do that manually, but in this case it's a script which simply adds the image to the .tex body and compile it. I'm pretty sure I'm missing something obvious here, but couldn't figure out what it is.

Best Answer

graphicx provides the boolean value keepaspectratio. It's explained in the documentation as follow:

If set to true then specifying both width and height (or totalheight) does not distort the figure but scales such that neither of the specified dimensions is exceeded.

\includegraphics[width=\linewidth,height=\textheight,keepaspectratio]{picture}