Raster über Bild legen, zum trimmen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Raster über Bild legen, zum trimmen

von Crys » Mo 8. Sep 2014, 13:24

Danke Elke, genau das meinte ich mit Wechselwirkung.
Du hast recht, diesen versteckte Text gibt es öfters.
Gibt es keine Möglichkeit diesen zu entfernen?
(Wechselwirkung oder böse Nebenwirkungen deshalb kann ich aber auch wirklich nicht feststellen.)

Ich habe am WE den GSViewer Daheim getestet, hab aber auch gleich eine Schwachstelle gefunden. Wenn das Bild kein Foto ist oder Rechteckig (mit Rahmen), dann weiß man nicht genau wo man das beschneiden (untere linke Ecke / obere rechte Ecke) ansetzten soll.

von esdd » Do 4. Sep 2014, 17:38

Welche Wechselwirkungen meinst Du? Mir sind keine bekannt.

Auch wenn Du Sachen beim Einfügen mit \includegraphics beschneidest, sind sie versteckt noch vorhanden. Lass mal
\documentclass{scrartcl}
\usepackage{mwe}
\begin{document} 
\includegraphics[trim=0cm 6cm 8cm 0cm,clip]{example-image}
\end{document}
laufen. Da kannst Du in der gleichen Weise die Stelle markieren, an der ohne Beschneiden "Image" stehen würde. Und eine aus diesem pdf mit pdftotext erzeugte Textdatei enthält auch immer noch das Wort Image ...

Gruß
Elke

von Crys » Do 4. Sep 2014, 15:53

Es wird aber trotz \clip auf der ganzen Seite die Nummerierung ausgegeben, nur versteckt dargestellt:Bild
Führt das ev. zu Wechselwirklingen?

Mit der Bespriftung hast du recht. Das lasse ich erst mal so, viel genauer man ich eh nicht das Bild beschneiden.

Und das mit dem gsviewer ist ne geniale Idee. Einfacher geht es nicht. Leider kann ich hier nichts (ohne IT Zustimmtung) installallieren, nicht mal ne exe herunterladen. Aber die Idee ist echt gut!

Noch mals danke!

von esdd » Mi 3. Sep 2014, 14:27

Durch \clip ist die Ausgabe der Zahlen automatisch auf die Breite und Höhe Deines Bildes beschränkt. Du brauchst einfach nur das obere Ende der \foreach Schleifen groß genug zu wählen ;-) Bei einer cm Einteilung dürfte 30 dafür reichen - mehr passt nicht auf eine A4 Seite.

Die Beschriftung ließe sich natürlich anpassen, aber da der Abstand zwischen den Linien dann geringer ist, kann das schnell unübersichtlich werden oder die Zahlen überlappen sich sogar. Du müsstest dann wahrscheinlich gleichzeitig die Schrift deutlich verkleinern ... Besser wäre es, wie in meinem ersten Vorschlag mehrere Gitter mit unterschiedlicher Linienstärke übereinander zu legen, so dass eine Orientierung auch ohne Zahlen leicht möglich ist.

Abgesehen davon: Wenn ich pdf Grafiken erst beim Einbinden beschneiden will, verwende ich die Option viewport statt trim. Dabei muss ich nur die Koordinaten der unteren linken Ecke und der oberen rechten Ecke des Schnittbereiches relativ zur linken unteren Ecke des Ausgangspdfs angeben. Die bekomme ich in Sekunden, wenn ich das pdf mit gsview öffne, da mir dort die aktuelle Cursorposition unten in der Fußleiste angezeigt wird.

Gruß
Elke

von Crys » Mi 3. Sep 2014, 13:27

Danke Elke,

ich hab das wohl viel zu kompliziert angegangen.
Die 'sep=0pt' habe ich einfach beim vereinachen gelöscht, habe da beim weißen Gitter keine Änderung gesehen ;)
\documentclass{scrartcl}
\usepackage{tikz}
\usepackage{mwe}

\newcommand{\gridgraphics}[3][]{%
	\begin{tikzpicture}
		\node[anchor=north west,inner sep=0pt,outer sep=0pt](p){\includegraphics[#1]{#2}}; 
		\clip([xshift=-1.5em,yshift=1.5em]p.north west)rectangle(p.south east); 
		\draw[#3](0,0) grid (p.south east); 
		\foreach \x in {1,...,15}\node[above] at (\x,0){\x}; 
		\foreach \y in {1,...,15}\node[left] at (0,-\y){\y}; 
	\end{tikzpicture}
}

\begin{document}

\gridgraphics[trim=0cm 0cm 0cm 0cm, clip, scale=1]{example-image}{white,step=5mm}\\[5mm]

\includegraphics[trim=0cm 0cm 0cm 0cm, clip, scale=1]{example-image}

\end{document}
So funktioniert es quasi, ein paar Fragen sind aber immer noch offen:
- Jetzt wird nur bis 15cm die Beschriftung angezeigt. Ich kann das auch auf 99 ergänzen, aber gibt es keine Möglichkeit, dass immer soweit laufen zu lassen, bis auch das Gitter endet?
- die Beschriftung erfolgt jetzt immer in 1cm Schritten, wie lässt sich das auf z.B. 5mm Schritte (analog zum Gitter) ändern?

von esdd » Mi 3. Sep 2014, 11:42

Warum lässt du beim Einfügen des Bildes die Nodeoptionen
inner sep=0pt,outer sep=0pt
weg? Soll der Nullpunkt des Gitters nicht in der linken oberen Ecke des Bildes liegen sondern außerhalb? Ändere mal in Deinem Code die Farbe des Gitters von white zu red, dann kannst Du das Problem sehen.
\documentclass[tikz]{standalone} 
\usepackage{mwe} 
\begin{document} 
\begin{tikzpicture}[gitter/.style={#1}]
    \node[anchor=north west,
        inner sep=0pt,outer sep=0pt% notwendig!!
      ](p){\includegraphics{example-image}};
    \clip([xshift=-1.5em,yshift=1.5em]p.north west)rectangle(p.south east);
    \foreach \x in {step=1cm} 
       \draw[red,gitter/.expanded=\x,line width=2pt,opacity=0.5](0,0) grid (p.south east); 
    \foreach \x in {1,...,30}\node[above] at (\x,0){\x}; 
    \foreach \y in {1,...,30}\node[left] at (0,-\y){\y}; 
\end{tikzpicture} 
\end{document}
oder
\documentclass[tikz]{standalone} 
\usepackage{mwe} 
\begin{document} 
\begin{tikzpicture}
    \node[anchor=north west,
        inner sep=0pt,outer sep=0pt% notwendig!!
      ](p){\includegraphics{example-image}};
    \clip([xshift=-1.5em,yshift=1.5em]p.north west)rectangle(p.south east);
    \draw[white,step=1cm](0,0) grid (p.south east); 
    \foreach \x in {1,...,30}\node[above] at (\x,0){\x}; 
    \foreach \y in {1,...,30}\node[left] at (0,-\y){\y}; 
\end{tikzpicture} 
\end{document}
Gruß
Elke

von Crys » Mi 3. Sep 2014, 11:08

Danke, ich habe mich glaub ich von den nicht dokumentieren und extream komplizierten Beispiel blenden lassen, ich habe das mal neu aufgesetzt:
\documentclass[tikz,margin=1cm]{standalone}
\usepackage{mwe}
\begin{document}

\begin{tikzpicture}[gitter/.style={#1}]

	\node[anchor=north west](p){\includegraphics{example-image}}; 

	\foreach \x in {step=1cm}
		\draw[white,gitter/.expanded=\x](0,0) grid (p.south east);

	\foreach \x in {step=1cm}
		\draw (0,0) (p.north east) node[above]{$\x$};
		
	%\foreach \x in {1,...,10}
		%\draw (\x,0) (\x,0) node[above]{$\x$};
		
	\foreach \y in {-1,...,-10}
		\draw (0,\y) (0,\y) node[left] {$\y$}; 

\end{tikzpicture}

\end{document}
Nur wie bekomme ich die Zahlen an den Achsen hin?
Nach unten soll nicht negativ sein und in beiden Achsen soll die beschriftung bis zur letzten ganzen Zahl gehen. Wie geht das?

Dann würde ich das in ein Makro packen und dann in den ich die Schritte, Linienfarbe und die Datei als Variable setzte.

von esdd » Di 2. Sep 2014, 17:26

Vielleicht verstehe ich Dich ja falsch, aber mit TikZ kannst Du doch einfach ein grid mit der Schrittweite Deiner Wahl darüber legen?
\documentclass[tikz,margin=1cm]{standalone}
\usepackage{mwe}%für das Beispielbild
\begin{document}
\begin{tikzpicture}[gitter/.style={#1}]
  \node[
      anchor=south west,
      inner sep=0pt,outer sep=0pt
    ](p){\includegraphics{example-image}};
  \foreach \g in {%
      {step=1mm,very thin,red!40}%
      ,{step=5mm,thin},{step=1cm,thick}%
      ,{step=5cm,very thick,red!50!black}%
    }\draw[red,gitter/.expanded=\g](0,0)grid(p.north east);
\end{tikzpicture}
\end{document} 
Gruß
Elke

von Crys » Di 2. Sep 2014, 16:19

Keiner ne Idee?
Das Beispiel ist aus dem vom Johannes_B verlinkten Beispiel.

von Crys » Do 28. Aug 2014, 12:51

Nur mit copy'n'paste ist es leider nicht gemacht.

onimage ist gut und sehr kompakt (wenn man es mal installiert hat) und TikZ kann auch das Gitter darstellen.

Nur möchte ich nicht ein x-belibiges Gitter, sondern Einteilungen in mm, cm oder px.
Und ich weiß wirklich nicht wie ich das machen soll.
\documentclass[
	tikz,
	border=15pt,
	%convert={outext=.png,density=300,size=600},
	convert=false,
]{standalone}

\makeatletter
\newif\ifpgf@nodescope@grid
\tikzset{
  nodescope grid/.is if=pgf@nodescope@grid,
  every nodescope grid node/.style={
    shape=rectangle,
    font=\small\ttfamily,
    inner sep=+0pt,
    outer sep=+1pt,
    fill=white,
    overlay},
  every nodescope node/.style={
    shape=rectangle,
    inner sep=+0pt,
    outer sep=+0pt,
    draw=none,
    fill=none}}
\def\tikz@nodescope@env{%
  \pgfutil@ifnextchar[\tikz@@nodescope@env{\tikz@@@nodescope@env{}[]}}
\def\tikz@@nodescope@env[#1]{%
  \pgfutil@ifnextchar[{\tikz@@@nodescope@env{#1}}{\tikz@@@nodescope@env{#1}[]}}
\def\tikz@@@nodescope@env#1[#2]#3{%
  \pgfutil@ifnextchar[{\tikz@@@@nodescope@env{#1}{#2}{#3}}{\tikz@@@@nodescope@env{#1}{#2}{#3}[]}}
\def\tikz@@@@nodescope@env#1#2#3[#4]{%
  \tikz@scope@env[#4]
    \node[every nodescope node/.try, #1, alias=tikz@last@nodescope]{\includegraphics[#2]{#3}};%
    \pgftransformresetnontranslations
    \pgftransformshift{\pgfpointanchor{tikz@last@nodescope}{south west}}%
    \pgfsetxvec{\pgfpointdiff{\pgfpointanchor{tikz@last@nodescope}{south west}}{\pgfpointanchor{tikz@last@nodescope}{south east}}}%
    \pgfsetyvec{\pgfpointdiff{\pgfpointanchor{tikz@last@nodescope}{south west}}{\pgfpointanchor{tikz@last@nodescope}{north west}}}%
    \ifpgf@nodescope@grid
      \draw[help lines,xstep=.1,ystep=.1] (0,0) grid (1,1);
      \foreach \x in {0,1,...,10}{
        \node[every nodescope grid node/.try, left, rotate=90] at (\x/10,0) {\ifnum\x=10\relax1.0\else0.\x\fi};
        \node[every nodescope grid node/.try, left] at (0,\x/10) {\ifnum\x=10\relax1.0\else0.\x\fi};
      }
    \fi
}
\tikzaddtikzonlycommandshortcutlet\tikz@orignodescope\nodescope
\tikzaddtikzonlycommandshortcutlet\tikz@origendnodescope\endnodescope
\tikzaddtikzonlycommandshortcutlet\tikz@origstartnodescope\startnodescope
\tikzaddtikzonlycommandshortcutlet\tikz@origstopnodescope\stopnodescope
\tikzaddtikzonlycommandshortcutlet\nodescope\tikz@nodescope@env
\tikzaddtikzonlycommandshortcutlet\endnodescope\endscope
\tikzaddtikzonlycommandshortcutlet\startnodescope\nodescope
\tikzaddtikzonlycommandshortcutlet\stopnodescope\endnodescope
\pgfutil@g@addto@macro\tikz@uninstallcommands{%
  \let\nodescope\tikz@orignodescope
  \let\endnodescope\tikz@origendnodescope
  \let\startnodescope\tikz@origstartnodescope
  \let\stopnodescope\tikz@origstopnodescope
}
\tikzdeclarecoordinatesystem{nodescope}{%
  \edef\pgf@temp{#1}%
  \expandafter\pgfutil@ifnextchar\expandafter x\expandafter\tikz@nodescope@split\expandafter\tikz@nodescope@split\pgf@temp\pgf@stop
}
\def\tikz@nodescope@split#1:#2\pgf@stop{%
  \begingroup
    \edef\pgf@temp{#1}%
    \pgftransformresetnontranslations
    \pgfsetxvec{\pgfpointdiff{\pgfpointanchor{#1}{south west}}{\pgfpointanchor{#1}{south east}}}%
    \pgfsetyvec{\pgfpointdiff{\pgfpointanchor{#1}{south west}}{\pgfpointanchor{#1}{north west}}}%
    \tikz@scan@one@point\tikz@nodescope@shift(#2)\relax
  \endgroup
}
\def\tikz@nodescope@shift#1{%
  \pgf@process{\pgfpointadd{#1}{\pgfpointanchor{\pgf@temp}{south west}}}%
}
\makeatother

\begin{document}
	\begin{tikzpicture}
		\begin{nodescope}[draw][width=.9\textwidth]{test_bild}[nodescope grid]
		\end{nodescope}
	\end{tikzpicture}
\end{document}

Nach oben