Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

Bilderdateien in Turbo Pascal





Frage

Hallo, Ich schriebe seit einiger Zeit ein Program in Turbo Pascal und möchte eine Hintergrund haben. Das Bild, das ich einfügen will im jpeg Format. Gibt es einen Befehl, mit dem ich das einfügen kann? Oder ´brauch ich da ein eigenes Program? Bitte schreibt mir auch, wenn es nicht gehen sollte oder wenn ihr eine Idee habt, wie ich es anders machen könnte. DANKE! lg Clirde

Antwort 1 von Grenzgänger

Hallo clirde,

Vorweg: Pascal kann Pixel setzen. Mehr nicht. Aus den Pixeln musst du selber ein Bild zusammensetzen.

Es gibt bestimmt im Internet eine unit, die dir viel Arbeit abnimmt.

Mein Tip: Du willst gerade einen Formel-1-Boliden konstruieren. Dabei hat sich dein Trabbi noch nicht einen Millimeter bewegt.

Nicht böse sein, aber bleib auf dem Teppich. Das ist nichts für Anfänger :-) Wie willst du die verschiedenen Auflösungen und Grafikformate erkennen...

Wenn du dein erstes Projekt fertig hast, spendier dir ne Flasche Sekt :-)

Grenzgänger

Antwort 2 von Grenzgänger

Hallo Clirde,

Darf ich vermuten, das dies hier auch von dir ist?

Wenn es sich nur um einen Startbildschirm handelt, wandel dein JPEG-Bild mit z.B. Graphic Workshop in eine *.exe um.

Und dann ruf deine *.exe wie hier in Beispiel 3 auf.

Jeder Tastendruck würde deinen Startbildschirm beenden und zu deinem Programm zurückkehren.

Grenzgänger

Antwort 3 von clirde

Hallo,
Entschuldigung, das ich erst jetzt schreibe, hatte viel zu tun!
Das war wohl Zufall, weil der andere Thread war nicht von mir!
Mein Program, von dem oben die Rede ist ist eine Benutzeroberfläche für Dos. Deswegen sitz ich auch schon so lange dran.
Findest auch das das für einen Anfänger ziemlich mutig ist?
Mir irgendwas muss ich ja die Leute zu meiner Homepage locken ;-)))
Hab das mit dem Hintergrund jetzt anders gelöst.
Ich habe Windows (nicht das Betriebssystem sondern Fenster) erstellt, so kann ich das ganze auch halbwegs gut aussehen lassen.
Die Idee mit den Windows kam mir daher, da ich eine Mouseunit habe, mit der ich immer nur eine Funktion ausführen kann. Das ist schwer zu erklären, habs selber noch immer nicht ganz verstanden.
Aber Graphic Workshop wäre da auch nicht fehl am Platz. Könnte ja ein Window statt dem Desktop machen und da sie Exe Datei einfügen.

Die Programmbeispiele, die du mir empfohlen hast, find ich wirklich gut und helfen mir auch sehr! - Danke
lg Clirde

Antwort 4 von clirde

Ich hab mir jetzt dieses Graphic Workshop heruntergeladen,...
aber ich kann keine Exe dateien erstellen. Muss ich das kaufen, damit ich das machen kannn?
Ich kann die Bilder in jedes Format umwandeln,... außer exe.
Clirde

Antwort 5 von Grenzgänger

Hallo Clirde,

Schande über mein Haupt. Ich hab in der Firma eine Vollversion.

In der GWS-Hilfe habe ich folgenden Satz gefunden, der das Prog für dich unbrauchbar macht:
Zitat:
EXE pictures created with an unregistered copy of Graphic Workshop Professional will say so when they´re run. This message will not appear in EXE pictures created with a registered copy.

Ein Freeware-Programm, das bild.exe für DOS erzeugen kann, fällt mir momentan nicht ein. Aber ich such mal.

Zitat:
Mein Program, von dem oben die Rede ist ist eine Benutzeroberfläche für Dos. Deswegen sitz ich auch schon so lange dran.
Findest auch das das für einen Anfänger ziemlich mutig ist?
Nö, eine Benutzeroberfläche für DOS ist in Ordnung. Man lernt selber unheimlich viel dabei. Ich dachte, du wolltest gleich auf Grafik los.

Grenzgänger

Antwort 6 von Windoof81

Muss es gleich JPG sein ? Versuch doch zuerst
BMP. Grafik-Mode starten, Datei oeffen, Header
lesen und auswerten, Bild einlesen.

JPG: musst du dekomprimieren, massiver
Mehraufwand.

Vergiss das EXE-Prog, versuch es mit BMP.

Zudem: TurboPascal ist uralt und kann nicht mehr
als 256 Farben. Es gibt auch FreePascal 1.0.10
fuer DOS.

Antwort 7 von Grenzgänger

Hallo Windoof81,

Clirde ist ein Newbie, der lernen will.

Für DOS ist Pascal dazu mehr als geeignet und wird im Internet hervorragend unterstützt. Es gibt jede Menge Beispiele.

Unterstütz ihn doch, z.B. mit einer unit zum Darstellen einer *.bmp Datei.

Grenzgänger

Antwort 8 von clirde

Hallo,
Also erstmal DANKE, Grenzgänger, dass du mir immer hilfst. Das weiß ich echt zu schätzen!!!
Und,... danke auch Windoof81 obwohl das für mich wirklich ein bisschen weit hergeholt ist.

Mit Bmb hab ich mich eigentlich nie so richtig angefreundet, da das ziemlich groß ist. Ich hab die Bilder, als ich sie eingescannt hab mehrmals immer in einem anderen Format gescannt.
Bmb hatte fast 120 kb und jpg nur 24kb und immerhin sollte das ganze auf eine Diskette passen und da sind nur noch knapp 300kb frei.
Nach dem Freeware Program für exe files hab ich gestern auch schon gesucht aber nichts gefunden.

Ich hab mir auch schon überlegt ob ich nicht vielleicht
auf eine andere Sprache z.b. Vb oder Java umsteige bzw. ob ich free pascal oder so nehmen soll aber eigentlich find ich Turbo Pascal sehr gut, auch wenns alt ist. Es gibt sehr viele Beispiele und auf der Uni Bibliothek hab ich auch sehr viele Bücher gefunden, auch wenn die schon so alt sind, das sie halb zerfallen. ;-)
lg Clirde

Antwort 9 von Grenzgänger

Hallo Clirde,

Geht doch:-)

Hier findest du eine alte DOS-Version von Graphic Workshop ohne Ein...

Das Setup-Programm scheint nicht zu funktionieren, kann aber auch an Windows oder an grossen Festplatten liegen. Für so etwas habe ich immer eine 2G-Partition mit Fat32 in Reserve.
Das Archiv GWSDOS.ZIP in ein eigenes Verzeichnis entpacken und GWS aufrufen. Läuft sofort! Vor 1995 gab es eben keine Registry und sowas:-)

Wenn du deine Bilder umwandelst, denk an die VGA-Grenzen von 640x480. Und an die Farbtiefe, damals war 256 das Maximum???

Leg los.

Grenzgänger

Antwort 10 von clirde

Das mach ich am besten auf meinem alten Laptop, das dauert aber ein bisschen bis ich den wieder in schuss gebracht habe.
Melde mich wieder, wenn ich´s geschafft habe.
Clirde

Antwort 11 von drago

Hallo Clirde !


Mir Turbo Pascal und Bildbearbeitung kommst du nicht weit.
Nicht als Anfänger.
Pascal beherrscht nur VGA 640x480 Pixel und 16 Farben max.
Alles was darüber ist, muss per BIOS (z.B. Video-Modus setzen)
oder per Interruptaufrufe aus Pascal heraus geschehen.

Ab einer Auflösung von 800x600 musst auch du die Pixel per BIOS
setzen, oder direkt in den Bildschirmspeicher schreiben.
Bei mehr als 16 Farben musst du auch die 4 Ebenen von VGA
programieren, da es mit normalen BIOS-Interrupts nicht mehr geht.
Der Videospeicher ist auf 64 KB begrenzt, tlws. auf 128 KB,
nicht der auf der Grafikkarte, sondern der im Video-Speicher unterhalb vom 1 MB,
also zwischen den DOS-640 KB und dem 1 MB.

Du musst also die VGA-Hardware kennen, ziemlich genau,
um zu wissen, wie du z.B. bei einer Auflösung von 1024x768 die Pixel setzt.
In diesem Fall musst du die Ports und die Register der VGA
DIREKT programmieren, und in diesem Bereich ist die VGA in 4 und mehr Ebenen unterteilt.

Es sei denn, du hast eine VESA-Kompatible Karte, dann kannst du
die VESA-Modi benutzen, brauchst aber auch wieder detaillierte
Angaben, wie man mit VESA umgeht.


Im DOS ist auch die Grafikprogrammierung nicht einfach.
Nicht dann, wenn man mit Boardmitteln programmiert.

Standardmäßig hat die VGA im REAL (DOS)-Modus 16 Farben
fest definiert. Und NUR 16.
Du musst also auch die Farbpalette belegen, und zwar richtig.

Windows unterscheidet sich von DOS auch in der Farbbelegung.
Um z.B. ein BMP-Bild (z.B. unter Windows erstellt) unter DOS
anzuzeigen musst du die Windows-Farbpalette genau kennen,
deine VGA dementsprechend umprogrammieren.
Ganz zu schweigen vom Aufbau eines BMP-Formats.
(BMP ist nicht BMP, z.B. SW, also 2 bit tief, 16 Farben, also 4 bit tief,
oder 256 Farben, also 8 bit tief)
True Color also millionen von Farben, 24 oder 32 bit tief
kannst du unter DOS im Prinzip vergessen.
Es ist nur mit VESA-Treibern möglich, oder du programmierst
deine Treiber selbst.

Aber:
VGA-Karten sind nur bis 640x480 x 16 Farben gleich.
Alles was darüber ist, da ist jede VGA-Karte ANDERS.


Es ist sehr wohl möglich, das zu erreichen was du vorhast,
alte Programme bezeugen das.
Aber sei nicht enttäuscht wenn es auf Anhieb nicht klappt.

Für DOS-Programmierung brauchst du wesentlich mehr
Informationen über Hardware und Bildformate.

Und vor Allem, du musst sehr viel "zu Fuß" erledigen,
z.B. Hardware direkt ansprechen.

Vom Sound gar nicht zu reden.

Antwort 12 von clirde

Danke für die lange Antwort!
Ich habe jetzt die exe Datei erstellt und,... es geht nicht.
Das was drago mir geschrieben hat, hat mich jetzt etwas geschreckt.. Zumindest dachte ich das es nicht ganz zu schwer ist.
Wie ich etwas per Bios setze usw. weiß ich auch nicht ich habe nur einmal eine mausunit gesehen, die irgendwas in den Biosram lädt. Bis dahin wusste ich garnicht, dass der bios ein Ram hat.
Ich glaube, ich sollte lieber mein Program ohne Bilder weiterschreiben,... zumindest keine mit mehr als 16 Farben.
Und ich glaube auch, das ich eure Hilfe trotzdem noch irgendwann brauchen werde ! ;-)

Noch kurz zu der exe datei:
Kann es sein das ich den Stack oder Heap falsch setzte? Ich weiß eigentlich nicht was das genau ist. Ich weiß nur, je geringer ich den Heap setze desto mehr speicher bleibt für die Programme. Stimmt das?
Bis jetzt hatte ich es immer so {M$2000,0,100}
fragt mich nicht, wie ich darauf gekommen bin, es hat auf einmal funktioniert.
Mach ich da was falsch?

Danke für alles!
Clirde

Antwort 13 von Grenzgänger

Hallo Clirde,

Ich habe es mal selbst getestet, es geht bei mir.
Rechner ist ein 800Duron mit Win98SE im DOS-Modus.
Pascal ist 5.5 aus dem Borland-Museum.

Umwandeln eines Bildes mit GWS:
Vorher GWSINSTL aufrufen und Maximum View Resolution auf 640/480 einstellen.
EXE file compression auf Yes.
Das Bild wird kleiner dadurch.
Mein Testbild hat als GIF 50K, als EXE 180K.

Das Pascal-Beispiel musste nur ein zusätzliches Semikolon nach crt erhalten:
PROGRAM exec_demo;
{ Demonstriert wird der Aufruf von DOS-Komm...


Die ursprüngliche Textformatierung wird durch das SN verändert, funktioniert aber trotzdem.
Probier dies mal als einfaches Testprogramm und pass es dann an deine Bedürfnisse an. Durch den zweiten Kommandointerpreter(??) wirst du wahrscheinlich zu wenig Speicherplatz unter dem Entwicklungssystem haben. Also compilieren, und das Ergebnis unter DOS starten. Bei mir gehts.

Grenzgänger

Antwort 14 von clirde

Hallo,
Ich habs gleich im reinem Dos Modus mit Turbo Pascal 7.0 gemacht. Funktioniert einwandfrei!!!

Das exe file hat auch "nur" 110kb. Aber ich denke das werde ich (und meine Diskette) überleben. ;-)
Ist das Beispiel nicht dasselbe wie das: http://www.lernnetz-sh.de/kmlinux/doc/Pascal-Kurs/pas_bspt.html

Jetzt hab ich doch meinen Desktop in form eines Windows! ;-D

DANKE FÜR DIE HILFE!!!

Melde moch wieder wenns probleme gibt ;-))
lg Clirde

Antwort 15 von Windoof81

"BMP´s sind gross"

Ja, schon. Das waren aber wahrscheinlich true-color
BMP´s. Versuch die auf 256 ober 16 Farben zu
reduzieren - werden um Faktor 3 oder 6 kleiner -
z.B. mit XNVIEW. Kannst auch die Groesse halbieren
- nochmals 4 mal kleiner.

www.myfileformats.com
www.wotsit.org

Wenn dir BMP´s funktionieren, kannst du ein
besseres Format probieren: GIF oder PNG.
JPG ist noch schwiereiger, zudem ist true-color
in DOS noch eine zusaetziche Herausforderung.

Unit habe ich keine, da ich jetzt mehr mit "C"
umgehe.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: