VB 4/6- und VBA-Forum - Beitragsübersicht -
Von mbmgc
Datum 14. Mai 2018 um 11:13:52
Frage Hallo Community,
Einige der im Netz angebotenen Digitalisate (z.B. ältere gescannte Dokumente oder Landkarten) werden oftmals in "Kacheln" zerlegt (max. Seitenlänge 256 pix) und dann im Netz wieder zu einem Ganzen zusammengefügt. Nun habe ich - als blutiger VBS-Neuling - mir ein Skript erstellt, mit dem ich die einzelnen "Fragmente" in einem Ruck herunterladen kann. Die Kacheln werden in eine HTML-Datei geladen, die dann der Browser wieder zu einem Bild zusmmenfügt. Ein Beispielskript wäre also das folgende:
Set fso = CreateObject("Scripting.FileSystemObject")
Ausgabedatei=Inputbox("Name der Datei",,"Kachelbilder.html")
Pfad = Inputbox("Geben Sie den Pfad zu den Imagekacheln an!","Pfadangabe")
Startnummer = Inputbox("Geben Sie die niedrigste Zahl vor dem Komma an" ,"geogr. Länge","4281")
Zielnummer = Inputbox("Geben Sie die niedrigste Zahl nach dem Komma an" ,"geogr. Breite","2649")
' Spaltenzahl = Inputbox("Wieviele Spalten ?","Spaltenanzahl",3)
' Zeilenzahl = Inputbox("wieviele Zeilen ?","Zeilenanzahl",3)
' Zellenzahl = Spaltenzahl * Zeilenzahl
' es wird die Dateiendung .jpg vorausgesetzt.

Set objAusgabe = fso.OpenTextFile(Ausgabedatei, 2, True)

Msgbox "Es wird nun ein Kartenbild aus den Einzelkacheln In der Größe 1536 x 758 Pixeln erstellt."

objAusgabe.WriteLine "<HTML><HEAD><TITLE>Tabelle zum Download von gekachelten Bildern:"& Startnummer &"," & Zielnummer&"</TITLE></HEAD>" & vbcrlf
objAusgabe.WriteLine "<BODY>" & vbcrlf & "<TABLE Border=0 Cellpadding=0 Cellspacing=0><TR>"

' Border=1 wenn die Grenzen der Kacheln sichtbar sein sollen...
' 1. Zeile
objAusgabe.WriteLine "<TD><img src=""" & Pfad & Startnummer & "," & Zielnummer & ".jpg""</TD>"
objAusgabe.WriteLine "<TD><img src=""" & Pfad & Startnummer+1 & "," & Zielnummer & ".jpg""</TD>"
objAusgabe.WriteLine "<TD><img src=""" & Pfad & Startnummer+2 & "," & Zielnummer & ".jpg""</TD>"
objAusgabe.WriteLine "<TD><img src=""" & Pfad & Startnummer+3 & "," & Zielnummer & ".jpg""</TD>"
objAusgabe.WriteLine "<TD><img src=""" & Pfad & Startnummer+4 & "," & Zielnummer & ".jpg""</TD>" ' 5. Spalte 5x256 = 1280 Pixel breit
objAusgabe.WriteLine "<TD><img src=""" & Pfad & Startnummer+5 & "," & Zielnummer & ".jpg""</TD>" ' 6. Spalte 6x256 = 1536 Pixel breit
objAusgabe.WriteLine "</TR><TR>"
' 2. Zeile
objAusgabe.WriteLine "<TD><img src=""" & Pfad & Startnummer & "," & Zielnummer+1 & ".jpg""</TD>"
objAusgabe.WriteLine "<TD><img src=""" & Pfad & Startnummer+1 & "," & Zielnummer+1 & ".jpg""</TD>"
objAusgabe.WriteLine "<TD><img src=""" & Pfad & Startnummer+2 & "," & Zielnummer+1 & ".jpg""</TD>"
objAusgabe.WriteLine "<TD><img src=""" & Pfad & Startnummer+3 & "," & Zielnummer+1 & ".jpg""</TD>"
objAusgabe.WriteLine "<TD><img src=""" & Pfad & Startnummer+4 & "," & Zielnummer+1 & ".jpg""</TD>"
objAusgabe.WriteLine "<TD><img src=""" & Pfad & Startnummer+5 & "," & Zielnummer+1& ".jpg""</TD>"
objAusgabe.WriteLine "</TR><TR>"
' 3. Zeile (3x256 = 768 Pixel hoch)
objAusgabe.WriteLine "<TD><img src=""" & Pfad & Startnummer & "," & Zielnummer+2 & ".jpg""</TD>"
objAusgabe.WriteLine "<TD><img src=""" & Pfad & Startnummer+1 & "," & Zielnummer+2 & ".jpg""</TD>"
objAusgabe.WriteLine "<TD><img src=""" & Pfad & Startnummer+2 & "," & Zielnummer+2 & ".jpg""</TD>"
objAusgabe.WriteLine "<TD><img src=""" & Pfad & Startnummer+3 & "," & Zielnummer+2 & ".jpg""</TD>"
objAusgabe.WriteLine "<TD><img src=""" & Pfad & Startnummer+4 & "," & Zielnummer+2 & ".jpg""</TD>"
objAusgabe.WriteLine "<TD><img src=""" & Pfad & Startnummer+5 & "," & Zielnummer+2 & ".jpg""</TD>"

objAusgabe.writeLine "</TR>" & vbCrLF & "</TABLE></BODY></HTML>"
objAusgabe.Close
Die Namen der Bildkacheln bestehen also aus einem Links-Rechts-Wert (OW) VOR DEM KOMMA, d.h. je höher der Wert, desto weiter östlich.
und einem Hoch-Tief-Wert (NS) NACH DEM KOMMA, d.h. je höher dieser Wert, desto weiter südlich.

Das Bildermosaik wird nun aus diesen Kacheln zusammengesetzt. Mit verschiedenen Programmen (z.B. XnView) lassen sich diese Teile dann wieder zu einem großen Bild zusammenfügen (stitchen).

Mein Wunsch wäre nun ein Skript, bei dem man den Startwert (vor dem Komma) und den Zielwert (hinter dem Komma) sowie die Anzahl der Spalten (geogerafische Länge) bzw. Zeilen (geografische Breite) eingibt und aus diesen Angaben eine HTML-Datei generiert wird.

Für ein gekürztes Skript wäre ich sehr dankbar.

Hans


[ Antwort schreiben | Zurück zum VB 4/6- und VBA-Forum | Forum-Hilfe ]
Antworten
VBS: HTML-Tabelle zum Download von Kachel-Bildern - mbmgc 14. Mai 2018 um 11:13:52

Ihre Antwort
(Nick-)Name   Wichtige Informationen zur Namensangabe
E-Mail (opt.)  Wichtige Informationen zur Angabe einer eMail-Adresse
Thema   Wichtige Informationen zur Angabe eines Themas
Betrifft (IDE)  VB Script (*.vbs)
Ihre Antwort
Smilies
Mehr...
FettKursivUnterstrichen   Übersicht der Tipp-KürzelÜbersicht der Projekt-KürzelÜbersicht der Bücher-Kürzel 
Homepage
Titel
Root-Smilies              
             
             
[ Zurück zum VB 4/6- und VBA-Forum | Forum-Archiv | Forum-Hilfe | Chat ]

Zum Seitenanfang

Startseite | VB-/VBA-Tipps | Projekte | Tutorials | API-Referenz | Komponenten | Bücherecke | Gewinnspiele | VB.Net | .Net-Forum | DirectX | DirectX-Forum | Chat | Ausschreibungen | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 13. Dezember 2015