Update 4
I'm not an emoticon expert, so I draw some basic emoticons. Finally I changed the names now I define emoticon happy, emoticon sad , emoticon straight face and emoticon wink. I would put the final library on my site now. The shapes are not perfect because, there is a problem when I add some text inside.
First I created the file: tikzlibraryshapes.emoticon.code.tex
% tikzlibraryshapes.emoticon.code.tex
% Basic emoticons
%
\pgfdeclareshape{emoticon happy}
{
\inheritsavedanchors[from=circle]
\inheritanchorborder[from=circle]
\inheritanchor[from=circle]{north}
\inheritanchor[from=circle]{north west}
\inheritanchor[from=circle]{north east}
\inheritanchor[from=circle]{center}
\inheritanchor[from=circle]{west}
\inheritanchor[from=circle]{east}
\inheritanchor[from=circle]{mid}
\inheritanchor[from=circle]{mid west}
\inheritanchor[from=circle]{mid east}
\inheritanchor[from=circle]{base}
\inheritanchor[from=circle]{base west}
\inheritanchor[from=circle]{base east}
\inheritanchor[from=circle]{south}
\inheritanchor[from=circle]{south west}
\inheritanchor[from=circle]{south east}
\inheritbackgroundpath[from=circle]
%
% Background path
%
\inheritbackgroundpath[from=circle]
\beforebackgroundpath{
\pgfutil@tempdima=\radius%
\pgfmathsetlength{\pgf@xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength{\pgf@yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
\color{black}
\pgfpathellipse{\pgfqpoint{.25\pgfutil@tempdima}{.25\pgfutil@tempdima}}%
{\pgfqpoint{.1\pgfutil@tempdima}{0pt}}%
{\pgfqpoint{0pt}{.15\pgfutil@tempdima}}%
\pgfusepath{fill}%
\pgfpathellipse{\pgfqpoint{-.25\pgfutil@tempdima}{.25\pgfutil@tempdima}}%
{\pgfqpoint{.1\pgfutil@tempdima}{0pt}}%
{\pgfqpoint{0pt}{.15\pgfutil@tempdima}}%
\pgfusepath{fill}%
\pgfusepath{stroke}%
\begingroup
\pgfsetlinewidth{0.4pt}%
\pgflowlevelsynccm
\pgfpathmoveto{\pgfqpoint{-.353\pgfutil@tempdima}{-.353\pgfutil@tempdima}}%
\pgfpatharc{-135}{-45}{.5\pgfutil@tempdima and .5\pgfutil@tempdima}%
\pgfusepath{stroke}%
\endgroup
}}
\pgfdeclareshape{emoticon sad}
{
\inheritsavedanchors[from=circle]
\inheritanchorborder[from=circle]
\inheritanchor[from=circle]{north}
\inheritanchor[from=circle]{north west}
\inheritanchor[from=circle]{north east}
\inheritanchor[from=circle]{center}
\inheritanchor[from=circle]{west}
\inheritanchor[from=circle]{east}
\inheritanchor[from=circle]{mid}
\inheritanchor[from=circle]{mid west}
\inheritanchor[from=circle]{mid east}
\inheritanchor[from=circle]{base}
\inheritanchor[from=circle]{base west}
\inheritanchor[from=circle]{base east}
\inheritanchor[from=circle]{south}
\inheritanchor[from=circle]{south west}
\inheritanchor[from=circle]{south east}
\inheritbackgroundpath[from=circle]
%
% Background path
%
\inheritbackgroundpath[from=circle]
\beforebackgroundpath{
\pgfutil@tempdima=\radius%
\pgfmathsetlength{\pgf@xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength{\pgf@yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
\color{black}
\pgfpathellipse{\pgfqpoint{.25\pgfutil@tempdima}{.25\pgfutil@tempdima}}%
{\pgfqpoint{.1\pgfutil@tempdima}{0pt}}%
{\pgfqpoint{0pt}{.15\pgfutil@tempdima}}%
\pgfusepath{fill}%
\pgfpathellipse{\pgfqpoint{-.25\pgfutil@tempdima}{.25\pgfutil@tempdima}}%
{\pgfqpoint{.1\pgfutil@tempdima}{0pt}}%
{\pgfqpoint{0pt}{.15\pgfutil@tempdima}}%
\pgfusepath{fill}%
\pgfusepath{stroke}%
\begingroup
\pgfsetlinewidth{0.4pt}%
\pgflowlevelsynccm
\pgfpathmoveto{\pgfqpoint{-.353\pgfutil@tempdima}{-.353\pgfutil@tempdima}}%
\pgfpathcurveto{\pgfqpoint{-.353\pgfutil@tempdima}{-.353\pgfutil@tempdima}}
{\pgfpoint{0pt}{-.153\pgfutil@tempdima}}
{\pgfqpoint{.353\pgfutil@tempdima}{-.353\pgfutil@tempdima}}
\pgfusepath{stroke}%
\endgroup
}}
\pgfdeclareshape{emoticon straight face}
{
\inheritsavedanchors[from=circle]
\inheritanchorborder[from=circle]
\inheritanchor[from=circle]{north}
\inheritanchor[from=circle]{north west}
\inheritanchor[from=circle]{north east}
\inheritanchor[from=circle]{center}
\inheritanchor[from=circle]{west}
\inheritanchor[from=circle]{east}
\inheritanchor[from=circle]{mid}
\inheritanchor[from=circle]{mid west}
\inheritanchor[from=circle]{mid east}
\inheritanchor[from=circle]{base}
\inheritanchor[from=circle]{base west}
\inheritanchor[from=circle]{base east}
\inheritanchor[from=circle]{south}
\inheritanchor[from=circle]{south west}
\inheritanchor[from=circle]{south east}
\inheritbackgroundpath[from=circle]
%
% Background path
%
\inheritbackgroundpath[from=circle]
\beforebackgroundpath{
\pgfutil@tempdima=\radius%
\pgfmathsetlength{\pgf@xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength{\pgf@yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
\color{black}
\pgfpathellipse{\pgfqpoint{.25\pgfutil@tempdima}{.25\pgfutil@tempdima}}%
{\pgfqpoint{.1\pgfutil@tempdima}{0pt}}%
{\pgfqpoint{0pt}{.15\pgfutil@tempdima}}%
\pgfusepath{fill}%
\pgfpathellipse{\pgfqpoint{-.25\pgfutil@tempdima}{.25\pgfutil@tempdima}}%
{\pgfqpoint{.1\pgfutil@tempdima}{0pt}}%
{\pgfqpoint{0pt}{.15\pgfutil@tempdima}}%
\pgfusepath{fill}%
\pgfusepath{stroke}%
\begingroup
\pgfsetlinewidth{0.4pt}%
\pgflowlevelsynccm
\pgfpathmoveto{\pgfqpoint{-.353\pgfutil@tempdima}{-.353\pgfutil@tempdima}}%
\pgfpathlineto{\pgfqpoint{.353\pgfutil@tempdima}{-.353\pgfutil@tempdima}}
\pgfusepath{stroke}%
\endgroup
}}
\pgfdeclareshape{emoticon wink}
{
\inheritsavedanchors[from=circle]
\inheritanchorborder[from=circle]
\inheritanchor[from=circle]{north}
\inheritanchor[from=circle]{north west}
\inheritanchor[from=circle]{north east}
\inheritanchor[from=circle]{center}
\inheritanchor[from=circle]{west}
\inheritanchor[from=circle]{east}
\inheritanchor[from=circle]{mid}
\inheritanchor[from=circle]{mid west}
\inheritanchor[from=circle]{mid east}
\inheritanchor[from=circle]{base}
\inheritanchor[from=circle]{base west}
\inheritanchor[from=circle]{base east}
\inheritanchor[from=circle]{south}
\inheritanchor[from=circle]{south west}
\inheritanchor[from=circle]{south east}
\inheritbackgroundpath[from=circle]
%
% Background path
%
\inheritbackgroundpath[from=circle]
\beforebackgroundpath{
\pgfutil@tempdima=\radius%
\pgfmathsetlength{\pgf@xb}{\pgfkeysvalueof{/pgf/outer xsep}}%
\pgfmathsetlength{\pgf@yb}{\pgfkeysvalueof{/pgf/outer ysep}}%
\color{black}
\pgfpathmoveto{\pgfqpoint{-.40\pgfutil@tempdima}{.25\pgfutil@tempdima}}%
\pgfpathcurveto{\pgfqpoint{-.40\pgfutil@tempdima}{.25\pgfutil@tempdima}}%
{\pgfqpoint{-.25\pgfutil@tempdima}{.10\pgfutil@tempdima}}%
{\pgfqpoint{-.10\pgfutil@tempdima}{.25\pgfutil@tempdima}}%
\pgfpathellipse{\pgfqpoint{.25\pgfutil@tempdima}{.25\pgfutil@tempdima}}%
{\pgfqpoint{.1\pgfutil@tempdima}{0pt}}%
{\pgfqpoint{0pt}{.15\pgfutil@tempdima}}%
\pgfusepath{fill}%
\pgfusepath{stroke}%
\begingroup
\pgfsetlinewidth{0.4pt}%
\pgflowlevelsynccm
\pgfpathmoveto{\pgfqpoint{-.353\pgfutil@tempdima}{-.353\pgfutil@tempdima}}%
\pgfpatharc{-135}{-45}{.5\pgfutil@tempdima and .5\pgfutil@tempdima}%
\pgfusepath{stroke}%
\endgroup
}}%
\endinput
The name of the first emoticon is emoticon :-). The second is emoticon :-(.
Here an example how to use these new shapes:
\documentclass[11pt]{scrartcl}
\usepackage{tikz}
\usetikzlibrary{shapes.emoticon}
\begin{document}
\vspace{1cm}
\tikz \node [shape=emoticon happy,draw,fill=yellow] {};
\tikz \node [shape=emoticon sad,draw,fill=yellow] {};
\begin{tikzpicture}[ultra thick]
\node [shape=emoticon happy,draw,scale=8,fill=orange] {};
\end{tikzpicture}
\begin{tikzpicture}[ultra thick]
\node [shape=emoticon sad,draw,scale=8,fill=orange] {};
\end{tikzpicture}
\begin{tikzpicture}[ultra thick]
\node [shape=emoticon straight face,draw,scale=8,fill=orange] {};
\end{tikzpicture}
\begin{tikzpicture}[ultra thick]
\node [shape=emoticon wink,draw,scale=8,fill=orange] {};
\end{tikzpicture}
\end{document}
