Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

pdfimageresolution -- downsamplen aller Grafiken in einem Dokument

506 views
Skip to first unread message

Holger Miara

unread,
Jul 2, 2003, 11:54:02 AM7/2/03
to
Moin. Ich möchte ein mit pdflatex erstelltes file ins Netz stellen,
das viele Grafiken enthält. Da die Datei durch die vielen Abbildungen
sehr groß ist, würde ich in der web-Version des Dokuments gerne
sämtliche eingefügten Bilder auf 72dpi 'downsamplen'. Ist das mit
Bordmitteln machbar?

Ich habe in der pdftex.def einen Hinweis auf eine globale Einstellung
für graphics gefunden, aber ein \setkeys{Gin}{resolution=72} in der
Dokumentenpräambel zeigt keine Wirkung.

Graphics beschwert sich auch nicht, wenn ich die Auflösung direkt
angeben
\includegraphics[resolution=72]{fig/150dpi-bild}
aber funktionieren tut das leider auch nicht...

Gibt es eine pfiffige Möglichkeit? Muß ich etwa die Auflösung aller
Abbildungen von Hand verändern?

Dankbar für Ratschläge,

Holga.

Meike Schmedt

unread,
Jul 2, 2003, 12:15:37 PM7/2/03
to
Hallo,

holm...@hotmail.com (Holger Miara) writes:
> Moin. Ich möchte ein mit pdflatex erstelltes file ins Netz stellen,
> das viele Grafiken enthält.

was fuer Grafiken sind es denn? Falls es jpg sind...

> Gibt es eine pfiffige Möglichkeit? Muß ich etwa die Auflösung aller
> Abbildungen von Hand verändern?

... koenntest Du evtl. das Paket degrade von CTAN verwenden,
das jpegs on-the-fly zu einer angegebenen Aufloesung herunter-
skaliert.

> Dankbar für Ratschläge,
>
> Holga.

Gruss, Meike

--
Diese Nachricht wurde mit einer Taschenlampe
ins offene Ende eines Glasfaserkabels gemorst.

Heiko Oberdiek

unread,
Jul 2, 2003, 1:18:39 PM7/2/03
to
holm...@hotmail.com (Holger Miara) wrote:

> Moin. Ich möchte ein mit pdflatex erstelltes file ins Netz stellen,
> das viele Grafiken enthält. Da die Datei durch die vielen Abbildungen
> sehr groß ist, würde ich in der web-Version des Dokuments gerne
> sämtliche eingefügten Bilder auf 72dpi 'downsamplen'. Ist das mit
> Bordmitteln machbar?
>
> Ich habe in der pdftex.def einen Hinweis auf eine globale Einstellung
> für graphics gefunden, aber ein \setkeys{Gin}{resolution=72} in der
> Dokumentenpräambel zeigt keine Wirkung.

pdfTeX veraendert die eingebundenen Grafiken nicht, es "downsampelt"
somit auch nicht. Mit \pdfimageresolution kann man nur eine
Default-Aufloesung angeben, mit denen die Bilder vermutlich erzeugt
wurden. Die Information wird benoetigt, wenn die Angabe in der
Grafik-Datei fehlt, und dient dazu die Groesse der Grafik zu
ermitteln.

> Gibt es eine pfiffige Möglichkeit? Muß ich etwa die Auflösung aller
> Abbildungen von Hand verändern?

Moeglichkeiten:
* Adobe Acrobat/Distiller
* Die Grafiken mit einem entsprechenden Grafikverarbeitungsprogramm
vor der Einbettung durch pdflatex "downsamplen".

Viele Gruesse
Heiko <ober...@uni-freiburg.de>

Herbert Voss

unread,
Jul 2, 2003, 2:54:10 PM7/2/03
to
Heiko Oberdiek schrieb:

> pdfTeX veraendert die eingebundenen Grafiken nicht, es "downsampelt"
> somit auch nicht. Mit \pdfimageresolution kann man nur eine

vlatex (http://www.micropress-inc.com/linux/) kann das, wenn
ich mich recht erinnere.

Herbert

Hartmut Henkel

unread,
Jul 2, 2003, 3:55:57 PM7/2/03
to
In article <96409636.03070...@posting.google.com>,
Holger Miara <holm...@hotmail.com> wrote:
>...Da die Datei durch die vielen Abbildungen

>sehr groß ist, würde ich in der web-Version des Dokuments gerne
>sämtliche eingefügten Bilder auf 72dpi 'downsamplen'. Ist das mit
>Bordmitteln machbar?
>
>... Muß ich etwa die Auflösung aller Abbildungen von Hand verändern?

Nein :-), unter Unix/Linux geht's z. B. mit dem convert-Tool aus der
ImageMagick Familie, und make. Erstelle hierzu ein Makefile, z. B.

all: $(patsubst %.jpg,%-down.jpg, \
<TAB> $(patsubst %-down.jpg,%.jpg,$(wildcard *.jpg)))

%-down.jpg: %.jpg
<TAB> convert -geometry 25% $< $@

Das verwandelt mittels convert alle *.jpg-Dateien im Verzeichnis in
kleinere Dateien mit Namen *-down.jpg, die Du dann anstelle der Originale
einbinden kannst. <TAB> muss ein TAB-Zeichen sein. Kommt ein neues Bild
hinzu, wird dank make nur dieses eine konvertiert. Reduktion bei
-geometry 25 % z. B.:

187554 Image001.jpg
10914 Image001-down.jpg

Uberhaupt laesst sich so das gesamte Dokument mit make organisieren.

Gruß Hartmut
--
Hartmut Henkel, Oftersheim, Germany

Holger Miara

unread,
Jul 2, 2003, 6:09:34 PM7/2/03
to
Heiko Oberdiek <ober...@uni-freiburg.de> wrote in message news:<bdv3sl$ls$2...@n.ruf.uni-freiburg.de>...

>
> pdfTeX veraendert die eingebundenen Grafiken nicht, es "downsampelt"
> somit auch nicht. Mit \pdfimageresolution kann man nur eine
> Default-Aufloesung angeben, mit denen die Bilder vermutlich erzeugt
> wurden. Die Information wird benoetigt, wenn die Angabe in der
> Grafik-Datei fehlt, und dient dazu die Groesse der Grafik zu
> ermitteln.
>

Aaaaah... Danke.

>
> Moeglichkeiten:
> * Adobe Acrobat/Distiller

Kann der Distiller etwa eine vorhandene pdf-Datei bearbeiten? Da müßte
man wahrscheinlich über Postscript gehen... Und vom Acrobat wüßte ich
auch nicht, daß er das kann...

> * Die Grafiken mit einem entsprechenden Grafikverarbeitungsprogramm
> vor der Einbettung durch pdflatex "downsamplen".
>

Meine Befürchtung. Aber die anderen Tipps, es mit VTex oder mit resize
zu probieren, werde ich mir gleich mal anschauen.


mit Dank,
Holger.

Heiko Oberdiek

unread,
Jul 2, 2003, 5:12:35 PM7/2/03
to
hartmut...@gmx.de (Hartmut Henkel) wrote:

Ich bevorzuge auch make, insbesondere auch zur Umwandlung von
.eps nach .pdf-Dateien fuer pdfTeX. Das hat den Vorteil, dass
Aenderungen an den .eps-Dateien automatisch erkannt werden und
die dazugehoerenden .pdf-Dateien aktualisiert werden.

Zurueck zu den "Down"-Bildern, ich wuerde eher ein Verzeichnis
"images" und ein Verzeichnis "images-down" verwenden. Dann koennen
die Namen der Bilder gleich bleiben, sowie die Namen in den
TeX-Dateien. Dann kann man zwischen den verschiedenen Versionen
(Web/Nicht-Web) einfach umschalten:
* Etwa ueber die Umgebungsvariable TEXINPUTS:
TEXINPUTS=images-web:
* Oder auf Makro-Ebene ueber \graphicspath.

Viele Gruesse
Heiko <ober...@uni-freiburg.de>

Markus Kohm

unread,
Jul 2, 2003, 12:14:20 PM7/2/03
to
Holger Miara wrote:

> Ich habe in der pdftex.def einen Hinweis auf eine globale Einstellung
> für graphics gefunden, aber ein \setkeys{Gin}{resolution=72} in der
> Dokumentenpräambel zeigt keine Wirkung.

Die Angabe ist eine Information für den Fall, dass in der Bitmap-Abbildung
keine Auflösung angegeben ist. Für Vektorgrafiken ist die Angabe ohnehin
unerheblich.

> Muß ich etwa die Auflösung aller Abbildungen von Hand verändern?

Soetwas macht man mit einem Skript (unter Windows auch mal mit einem Batch),
das in einer Schleife für alle relevanten Bitmap-Dateien einen
entsprechenden Konverter aufruft (beispielsweise convert von ImageMagic).

Gruß
Markus
--
Fragen zu LaTeX? --> http://www.dante.de/faq/de-tex-faq/
Fragen zu KOMA-Script? --> scrguide
Lust zur Mitarbeit? --> http://koma-script.net.tf
Fragen zur Person? --> http://kohm.de.tf

Holger Miara

unread,
Jul 3, 2003, 8:17:36 AM7/3/03
to
Hartmut Henkel wrote:
>
> In article <96409636.03070...@posting.google.com>,
> Holger Miara <holm...@hotmail.com> wrote:
> >...Da die Datei durch die vielen Abbildungen
> >sehr groß ist, würde ich in der web-Version des Dokuments gerne
> >sämtliche eingefügten Bilder auf 72dpi 'downsamplen'. Ist das mit
> >Bordmitteln machbar?
> >
> >... Muß ich etwa die Auflösung aller Abbildungen von Hand verändern?
>
> Nein :-), unter Unix/Linux geht's z. B. mit dem convert-Tool aus der
> ImageMagick Familie, und make. Erstelle hierzu ein Makefile, z. B.
>

Danke, das Verfahren mit dem makefile ist wirklich pfiffig und wird beim
nächsten Mal bestimmt auch angewendet. Ich kann nur leider nicht alle
meine Abbildungen per shell script auf einmal bearbeiten, da sie aus
unterschiedlichen Quellen kommen, unterschiedliche Größen haben und sie
beim Einfügen ins Dokument auch unterschiedlich skaliert wurden.

Bleibt also trotzdem eine ganze Menge Handarbeit. Selbst schuld, könnte
man sagen, aber der Ansatz des Paktes "degrade" gefällt mir wirklich
gut, und wenn ich ich es richtig verstanden habe, macht VTeX es ja auch
so.

Bei Dokumenten, die eh für den Druck bestimmt sind, sollte ein Bild doch
nach dem Skalieren und vor dem Einfügen doch eigentlich neu gerastert
werden können, falls die Ursprungsbilddatei erheblich größer war. Wäre
auf alle Fälle ein Fortschritt auf dem Weg zu kleineren Files... Ich
fänd' es ziemlich schick, wenn man eine solche Funktionalität direkt in
graphics einbauen könnte -- aber mir schwant schon, daß es
wahrscheinlich nicht so einfach sein wird, eine platformunabhängige
Lösung zu basteln...

anyway: Vielen Dank für die Antworten,

Hogler.

Markus Kohm

unread,
Jul 3, 2003, 8:49:27 AM7/3/03
to
Holger Miara wrote:

> Ich kann nur leider nicht alle meine Abbildungen per shell script auf
> einmal bearbeiten, da sie aus unterschiedlichen Quellen kommen,
> unterschiedliche Größen haben und sie beim Einfügen ins Dokument auch
> unterschiedlich skaliert wurden.

Die Quelle, aus der die Grafiken kommen, ist doch völlig egal. Es kommt nur
auf darauf an, in welchem Format sie vorliegen. Im Primitivfall lässt man
das Ganze eben einmal für jpg und einmal für png laufen. Auch die
unterschiedliche Größe und Skalierung beim Einfügen ist unerheblich. So
lange die Grafik beim Konvertieren nicht in der Größe, sondern nur in ihrer
Auflösung verändert wird, muss man an der \includegraphics-Anweisung nicht
das Geringste ändern.

Rolf Niepraschk

unread,
Jul 3, 2003, 8:54:30 AM7/3/03
to
Holger Miara wrote:
> Moin. Ich möchte ein mit pdflatex erstelltes file ins Netz stellen,
> das viele Grafiken enthält. Da die Datei durch die vielen Abbildungen
> sehr groß ist, würde ich in der web-Version des Dokuments gerne
> sämtliche eingefügten Bilder auf 72dpi 'downsamplen'. Ist das mit
> Bordmitteln machbar?
>

Vielleicht nützt Dir dieser Artikel:

"Digitalfotos perfekt fürs Web verkleinern"
==> http://www.digitalkamera.de/Tip/18/32.htm

...Rolf
--
|| Rolf Niepraschk c/o Physikalisch-Technische Bundesanstalt ||
|| Abbestr. 2-12; D-10587 Berlin, Germany ||
|| Tel/Fax: ++49-30-3481-316/490, email: Rolf.Ni...@ptb.de ||

Hartmut Henkel

unread,
Jul 3, 2003, 6:38:53 PM7/3/03
to
In article <2574705.B...@ID-107054.user.dfncis.de>,
Markus Kohm <marku...@gmx.de> wrote:
> ...Auch die unterschiedliche Größe und Skalierung beim Einfügen

> ist unerheblich. So lange die Grafik beim Konvertieren nicht in der
> Größe, sondern nur in ihrer Auflösung verändert wird, muss man an
> der \includegraphics-Anweisung nicht das Geringste ändern.

So sollte es sein. Aber durch ein einfaches "convert -geometry 25%" werden
die Bilder gleichzeitig kleiner im Format, da hatte ich was übersehen.
Also neuer Versuch: Wenn man bei Bildern von einer original Pixeldichte
von 72/inch ausgeht, erhält man gleich große Bilder mit geringerer
Auflösung z. B. durch "convert -geometry 25% -density 18x18", weil die
Pixel über den -density Parameter um den Faktor 72/18 also 4 vergrößert
werden.

D. h. für einen automatischen Ablauf mit convert muß man wissen, wie viele
Pixel/inch es im Original sind (z. B. 72, meistens wahrscheinlich). Einen
Schalter, der gleichzeitig downsampelt (-plet, -pled?) und die Pixel
entsprechend vergrößert, habe ich bei convert noch nicht gefunden. Also
geht's damit evtl. doch nicht ganz automatisch, schade. Immerhin ist
die Pixelgröße egal, wenn man bei \includegraphics die Dimension(en)
explizit angibt.

Hartmut Henkel

unread,
Jul 3, 2003, 6:44:26 PM7/3/03
to
In article <bdvhjb$5qv$1...@n.ruf.uni-freiburg.de>,

Heiko Oberdiek <ober...@uni-freiburg.de> wrote:
>Zurueck zu den "Down"-Bildern, ich wuerde eher ein Verzeichnis
>"images" und ein Verzeichnis "images-down" verwenden. Dann koennen
>die Namen der Bilder gleich bleiben, sowie die Namen in den
>TeX-Dateien. Dann kann man zwischen den verschiedenen Versionen
>(Web/Nicht-Web) einfach umschalten:
>* Etwa ueber die Umgebungsvariable TEXINPUTS:
> TEXINPUTS=images-web:
>* Oder auf Makro-Ebene ueber \graphicspath.

Ah, so einfach gehts global, danke für den Tip! Dann wird auch das
Makefile simpler, z. B.:

all: $(patsubst %.jpg,down/%.jpg,$(wildcard *.jpg)))

down/%.jpg: %.jpg
convert -geometry 25% -density 18x18 $< $@

Jetzt mit (hoffentlich) durch's Konvertieren unveränderten Bilddimensionen.

Heiko Oberdiek

unread,
Jul 3, 2003, 8:12:47 PM7/3/03
to
hartmut...@gmx.de (Hartmut Henkel) wrote:

> So sollte es sein. Aber durch ein einfaches "convert -geometry 25%" werden
> die Bilder gleichzeitig kleiner im Format, da hatte ich was übersehen.
> Also neuer Versuch: Wenn man bei Bildern von einer original Pixeldichte
> von 72/inch ausgeht, erhält man gleich große Bilder mit geringerer
> Auflösung z. B. durch "convert -geometry 25% -density 18x18", weil die
> Pixel über den -density Parameter um den Faktor 72/18 also 4 vergrößert
> werden.
>
> D. h. für einen automatischen Ablauf mit convert muß man wissen, wie viele
> Pixel/inch es im Original sind (z. B. 72, meistens wahrscheinlich). Einen
> Schalter, der gleichzeitig downsampelt (-plet, -pled?) und die Pixel
> entsprechend vergrößert, habe ich bei convert noch nicht gefunden. Also
> geht's damit evtl. doch nicht ganz automatisch, schade.

* PNG-Dateien:
Ueber die netbpm-Programme koennte man sich etwas basteln:
pngtopnm, pnmscale, pnmtopng -phys x y unit
Man braeuchte dann nur noch ein Programm, das den "pHYS chunk"
ausliest (hier steckt indirekt die "Aufloesungsinformation").
Notfalls koennte man sich auf die Schnelle etwas ueber libpng
basteln.
Bei Dateien ohne "pHYS chunk" ist es einfacher, da hier ja
\pdfimageresolution zum Tragen kommt und man dann entsprechend
der Herunterskalierung mit den dazugehoerenden Defaults arbeitet.
* JPEG-Dateien:
Ist es nicht sinnvoller, diese Dateien erst gar nicht zu skalieren,
sondern stattdessen an der "-quality"-Schraube zu drehen?

Viele Gruesse
Heiko <ober...@uni-freiburg.de>

Markus Kohm

unread,
Jul 4, 2003, 6:17:04 AM7/4/03
to
Hartmut Henkel wrote:

> D. h. für einen automatischen Ablauf mit convert muß man wissen, wie viele
> Pixel/inch es im Original sind (z. B. 72, meistens wahrscheinlich).

Zu ImageMagick gehört neben Convert auch ein Programm namens Identify.
Dieses kann auch die Auflösung ausgeben, wenn eine Auflösung in der Datei
gespreichert ist. Über die Option -format, kann das Format der Ausgabe
beeinflusst werden. Ungünstig ist nur, dass man dabei nicht -units
verwenden kann, um die Ausgabe auf PixelsPerInch einzustellen.

0 new messages