The center column is defined by \picwidth. All the other columns should have the same or another size. Why is the third column shifted to the right?
\parindent=0pt
Dies ist ein Beispiel. \vskip\baselineskip
\hrule
\vskip\baselineskip
\def\text {ein Beispiel. Dies ist ein Beispiel. Ein Text, wie ihn jeder schreiben kann, aber kein Blindtext, und auch kein Text, der immer wieder herein kopiert wird. }
\raggedright
\input miniltx.tex
\input graphicx.tex
\newdimen\picheight
\newdimen\picwidth
\newdimen\beforepicwidth
\newdimen\afterpicwidth
\newdimen\columnsep
\columnsep=14pt
\def\centerpic[#1,#2,#3,#4,#5]{
\def\overpic{\vtop{\hsize\picwidth #1\vfill}}
\def\beforepic{\vtop{\hsize\beforepicwidth #2 \vfill}\hskip\columnsep}
\def\pic{\vtop{\overpic \vskip\baselineskip \includegraphics[width=\picwidth,keepaspectratio,]{#3}\vskip\baselineskip\underpic}\hskip\columnsep}
\def\afterpic{\hskip-2\picwidth\vtop{\hsize\afterpicwidth #4}}
\def\underpic{\vtop{\hsize\picwidth #5\vfill}\hskip\columnsep}
\vtop{%
\picheight=16pt %height of picture not needed with aspectratio%
\picwidth=120pt %width of picture
\beforepicwidth=\picwidth%
\afterpicwidth=\picwidth%
\vskip0.1\baselineskip%
\hbox{%
\beforepic%
\pic%
\afterpic%
}}\vskip\baselineskip}%
\centerpic[\text,\text,example-image,\text,\text]%
\vskip\baselineskip
\hrule
\vskip\baselineskip
Dies ist ein Beispiel.
\bye

