Here is a flexible and customizable solution usable into a tikzpicture.
Description of keys:
at defines the center of the picture,
graphics options defines the options used by \includegraphics,
rotate defines the global rotation of the polaroid,
caption define the content of the caption,
caption distance defines the distance between the top of caption and the bottom of the picture,
top margin, bottom margin, left margin, right margin, vmargin, hmargin and margin are used to define the margins between the picture and the borders of the polaroid,
caption option defines the options used by the caption node,
frame options defines the options used by the frame node (the whole polaroid).
Each key has a default value. The optional argument of \polaroid macro is used to change these value for a particular polaroid. You may use \polaroidset to change the default values for all subsequent polaroids in the current group.


\documentclass[tikz]{standalone}%
\usetikzlibrary{fit,calc,shadows,backgrounds,positioning}
\tikzset{
polaroid/.cd,
at/.store in=\polaroidat,
at={0,0},
graphics options/.store in=\polaroidgraphicsoptions,
graphics options=,
rotate/.store in=\polaroidrotate,
rotate=0,
caption/.store in=\polaroidcaption,
caption=,
caption distance/.store in=\polaroidcaptiondistance,
caption distance=1mm,
top margin/.store in=\polaroidtopmargin,
bottom margin/.store in=\polaroidbottommargin,
left margin/.store in=\polaroidleftmargin,
right margin/.store in=\polaroidrightmargin,
vmargin/.style={top margin=#1,bottom margin=#1},
hmargin/.style={left margin=#1,right margin=#1},
margin/.style={vmargin=#1,hmargin=#1},
margin=1cm,
caption default/.style={font=\bfseries,node distance=1mm},
caption options/.style={caption default/.append style={#1}},
frame default/.style={draw,inner sep=0},
frame options/.style={frame default/.append style={#1}},
}
\newcommand\polaroidset[1]{\tikzset{polaroid/.cd,#1}}
\newcommand\polaroid[2][]{
\bgroup
\tikzset{polaroid/.cd,#1}
\pgfmathsetmacro\polaroidrotate{\polaroidrotate}
\begin{scope}[shift={(\polaroidat)},rotate=\polaroidrotate]
\node[rotate=\polaroidrotate,inner sep=0]
(shoot) {\expandafter\includegraphics\expandafter[\polaroidgraphicsoptions]{#2}};
\path (shoot.north) ++(0,\polaroidtopmargin) coordinate (polaroid top);
\path (shoot.south) ++(0,{-1*(\polaroidbottommargin)}) coordinate (polaroid bottom);
\path (shoot.west) ++({-1*(\polaroidleftmargin)},0) coordinate (polaroid left);
\path (shoot.east) ++(\polaroidrightmargin,0) coordinate (polaroid right);
\node[rotate fit=\polaroidrotate,fit=(polaroid top)(polaroid bottom)(polaroid left)(polaroid right),polaroid/frame default]{};
\node[rotate=\polaroidrotate,inner sep=0]
(shoot) {\expandafter\includegraphics\expandafter[\polaroidgraphicsoptions]{#2}};
\coordinate (caption center) at ($(shoot.south)!-1 * \polaroidcaptiondistance!(shoot.north)$);
\node[anchor=north,rotate=\polaroidrotate,polaroid/caption default]
(caption) at (caption center) {\polaroidcaption};
\end{scope}
\egroup
}
\begin{document}%
\begin{tikzpicture}
\polaroid[rotate=-10,
frame options={line width=1pt,draw,rounded corners=.5mm,fill=white,drop shadow},
graphics options={width=4cm}]
{face}
\end{tikzpicture}
\begin{tikzpicture}
\polaroidset{
rotate=20,
frame options={line width=1pt,draw=cyan,rounded corners=.5mm,fill=cyan!10,drop shadow},
graphics options={width=2.5cm},
caption options={font=\footnotesize,align=center},
caption distance=.5mm,
vmargin=5mm,hmargin=5mm,
bottom margin=5mm+1em,
}
\foreach \i in {0,...,6}{
\polaroid[rotate={90-\i*30},at={{90-\i*30+90}:5cm},caption=Hello\\World]{face}
}
\end{tikzpicture}
\end{document}