ImageMagick Bash-Script Hilfe


Joined
Aug 25, 2006
Messages
302
Hallo, ich habe ein altes Buch mit Schaltplänen zu privaten Zwecken gescannt.

Da ich Qualitätsfetischist bin, mit 400 dpi Auflösung, dementsprechend ergibt eine Doppelseite (ca. A4) eine ungefähre Dateigröße von 40 Megabytes. Bei 185 Doppelseiten möchte ich die Nacharbeit natürlich automatisieren:
  • Zuschneiden
  • in monochrom wandeln
  • Komprimieren
  • um 270° rotieren
  • In pdf überführen

Dazu möchte ich sagen, dass ich absolut keine Programmierkenntnisse hab ;), habe mir dennoch ein Script zurechtgefrickelt, dass auch größtenteils funktioniert.
Code:
mkdir filter
for f in *.tif
do convert $f -gravity center -crop 3200x4250+0+0 -monochrome -compress Group4 -monitor filter/$f;
mogrify -rotate 270 filter/$f;
done;
tiffcp filter/*.tif filter/out.tif;
tiff2pdf -o Jakubaschk-Schaltkreis-Bastelbuch.pdf filter/out.tif

convert übernimmt das Zuschneiden, umwandeln in die entsprechende Farbskala sowie die Kompression. mogrify kann dasselbe wie convert nur ersetzt es die Datei direkt. Dieses dreht das Bild (Wenn ich das in convert integriere schneidet der mir den Ausschnitt falsch aus).
tiffcp fasst einzelne tiff-Dateien in einer zusammen (ja sowas geht ;)).
tiff2pdf soll mir das Ganze dann als pdf ausgeben.

Bei mogrify tritt das erste Problem auf:
mogrify: "YPosition": Information lost writing value (-0.25) as (unsigned) RATIONAL. `01.tif'.
Ich habe keine Ahnung was mogrify mir dabei sagen will, scheinbar gehen Daten aus irgendeinem Grund verloren <_<. Möchte, besonders bei dem Aufwand, aber sicherstellen dass nix abhanden kommt.
Das nächste ist die pdf-Datei, die in Evince sehr grob erscheint, ganz anders noch als das zusammengefasste tif, fast wie ungerendert?

P.S.: Die List=-Funktion zur geordneten Aufzählung funktioniert im Forum nicht, obwohl als Button vorgegeben.
Außerdem, hat jemand gute Links für Bash-Scripting (Syntax...) :D.
 
Guybrush Threepwood said:
(Wenn ich das in convert integriere schneidet der mir den Ausschnitt falsch aus).

das liegt vermutlich am gravity center, hat das einen grund warum du den nimmst?
mogrify: "YPosition": Information lost writing value (-0.25) as (unsigned) RATIONAL. `01.tif'.

hast du mal versucht mit dem convert die files in png umzuwandeln, und dann ggf. nach dem mogrify wieder zurueck in tif. also die fehlermeldung heisst wohl, dass er versucht, einen pixel an die position -0.25 zu setzen, was natuerlich nicht geht. und -0.25 als unsigned geht schonmal garnicht, hoert sich nach einem boesen ueberlauf eines wertes an. ich an deiner stelle wuerd den stecker ziehen und ganz weit vom geraet weglaufen, wer weiss was da alles passieren kann ;)
 
Oh danke für den Tipp, ich hatte das mit der gravity irgendwo gelesen und mit integriert. Wenn ich diese Option rausnehme, und das Bild direkt mit convert drehe stimmt es.

Und dieser seltsame Fehler tritt auch nicht mehr auf :)


Merkwürdig ist dennoch das Rendering der pdf-Datei. Wie ich festgestellt habe hängt das mit Evince zusammen. Mit xpdf geöffnet sieht das Dokument aus wie auch die tiff-Dateien. Öffnet man tiff-Dateien mit Evince sehen die ebenso merkwürdig aus.
Naja damit ließe sich ja noch leben, ich wandele jetzt mal den ganzen Spaß ;).
 
Was sind das denn fuer schaltplaene ??? :D

Ich wuerde das ganze auch nicht unbedingt in eine pdf stecken.. Ich find es praktischer das ganze mit einem Bildbetrachter anzuschauen. Pdf-Reader werden immer recht langsam wenn man Bilder einfuegt.
 
Jakubaschk Schaltkreis-Bastelbuch, 1978; Militärverlag der DDR

Hauptsächlich Schaltungen mit MOS und TTL-Schaltkreisen.
Alles wird fast ausschließlich mit Grundgattern aufgebaut. Höchste Integrationsstufe sind Zähler (v.a. 7490 aus der ČSSR; sowie D192 und D193 aus DDR-Produktion).

Ein paar Beispiele:
  • Quarzgeneratoren
  • Lichtschranken
  • Brandmelder, Feuchtemelder
  • Sekundentaktgeber
  • Quarzuhren
  • Sinus-/ Dreiecksgeneratoren
  • Kapazitätsmesser
  • Logiktester
  • ...

Baue gerade ein Lauflicht auf, der Schaltkreisaufwand ist vergleichsweise hoch (6 IS).
D200 zur Takterzeugung, 2 DL295 Schieberegister; zur Verknüpfung ein NAND-Gatter mit 8 Eingängen (D130, ich hab einen 74LS30 genommen). Da mir der Ausgangslastfaktor nicht ausreicht hab ich das Ganze mit 2 DS8216 Bustreiber erweitert.
 
Back
Top