I want to fill a tikz-picture with a pattern, based on an external picture. Is this possible? If yes, how?
I tried to define a new pattern with \pgfdeclarepatternformonly
, but \pgfuseimage
seems to be no valid command inside \pgfdeclarepatternformonly
.
Remark:
- In my example I used a marble-picture, but my question is independend from this special picture.
- I force the tile to 1cm. Probably it would be better to use the real size of the tile image.
- If I define
\pgfdeclarepatternformonly
after\begin{document}
the LaTeX error disappear, but the pattern does not work.
My MNWE (minimal not working Example):
\documentclass[]{standalone}
\usepackage{tikz}
\usetikzlibrary{patterns}
%Source: http://upload.wikimedia.org/wikipedia/de/thumb/f/f9/LapG.jpg/83px-LapG.jpg
%But could be any other picture
\pgfdeclareimage[width=1cm,height=1cm]{marble}{83px-LapG}%force quadratic tile
\pgfdeclarepatternformonly{marble}{\pgfpoint{0cm}{0cm}}{\pgfpoint{1cm}{1cm}}{\pgfpoint{1cm}{1cm}}{
\pgfuseimage{marble}%! LaTeX Error: Missing \begin{document}.
}
\begin{document}
\begin{tikzpicture}
% This should create a rectangle with 15*15 tiles.
\draw[pattern=marble] (0,0) rectangle (15,15);
\end{tikzpicture}
\end{document}
\pgfuseimage
inside a\pgftext
. Though, this will still not show the image.