Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Allgemeines (OffTopic) » Bmp-datei Programm

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
28.11.2003, 16:19 Uhr
Anfänger00



Hallo,
ich möchte ein c++ Programm schreiben,mit dem zunächst im Eingabemodus
(da ich ich das in Windows noch nicht machen kann)ein Farbwert eingeben wird,(so wie bei html : z.B.: FF00FF) der dann z.B. das ganze Bild mit dieser Farbe ausfüllt.

Dazu müsste ich folgendes wissen:

1)Wie kann ich einzelne bytes aus einer Datei lesen?
(sodass die Hexzahlen auch stimmen)

2)sie dann auch richtig wieder reinschreiben(evtl. im hexformat)

2)Wie ist das bmp Format konkret aufgebaut? (Größeneinstellung,Farben,Farbtiefe,keine Kompression)

Für Antworten,bzw für Links,die mir weiterhelfen könnten wäre ich sehr dankbar!


--
Edit: Ich hab schon etwas mit nem hex-editor rumprobiert,aber nicht viel herausfinden können.

Dieser Post wurde am 28.11.2003 um 17:05 Uhr von Anfänger00 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.11.2003, 19:31 Uhr
Pablo
Supertux
(Operator)


Vielleicht hilft dir das.

www.fun-soft.de/showtopic.php?threadid=3874&time=1070044274
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 28.11.2003 um 19:32 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.11.2003, 20:18 Uhr
Anfänger00



Ich bin nur leider nicht so STL gewand!
Bei folgenden Funktionen weiß ich nicht,was sie machen:

C++:
fseek(fp,10,SEEK_CUR);
fgetc(fp);
fputc(0,fp);
memset(buffer, 0, 3*bytes_per_line);
memcpy(buffer+1, data, sizeof(int)*x);

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
28.11.2003, 20:37 Uhr
Pablo
Supertux
(Operator)


das ist nicht STL, da ist ANSI C. fseek weiß ich wirklich nicht, was das tut, ich glaube, es ist um sich innerhalb einer Datei zu bewegen.

fgetc und fputc sind selbeserklärend, wie getc und putc, aber auf eine Dateie.
memcpy kopiert sizeof(int) bites von data in buffer, in diesem Fall ab buffer[1]

memset speichert das zweite Argument (in diesem Fall 0) 3*bytes_per_line in buffer.


Bearbeitung von Pablo:

Da ich nicht richtig erklären kann, mache ich ich ein Copy&Paste von den Man pages:

Zitat:

SYNOPSIS
#include <stdio.h>

int fseek(FILE *stream, long offset, int whence);
long ftell(FILE *stream);
void rewind(FILE *stream);
int fgetpos(FILE *stream, fpos_t *pos);
int fsetpos(FILE *stream, fpos_t *pos);

DESCRIPTION
The fseek function sets the file position indicator for the stream pointed to by stream. The new
position, measured in bytes, is obtained by adding offset bytes to the position specified by whence.
If whence is set to SEEK_SET, SEEK_CUR, or SEEK_END, the offset is relative to the start of the file,
the current position indicator, or end-of-file, respectively. A successful call to the fseek function
clears the end-of-file indicator for the stream and undoes any effects of the ungetc(3) function on
the same stream.

The ftell function obtains the current value of the file position indicator for the stream pointed to
by stream.

The rewind function sets the file position indicator for the stream pointed to by stream to the begin­
ning of the file. It is equivalent to:

(void)fseek(stream, 0L, SEEK_SET)

except that the error indicator for the stream is also cleared (see clearerr(3)).




--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 28.11.2003 um 20:39 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
28.11.2003, 21:48 Uhr
Anfänger00



Ok,dann eben ansi C,aber ich kann halt nur c++
--
Edit:Gibt es da auch passende c++ Funktionen?
(wenn es nicht die selben sind)

Dieser Post wurde am 28.11.2003 um 21:49 Uhr von Anfänger00 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
28.11.2003, 21:50 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Anmerkung:
mit der funktion kann man nur schwarz-weiss-bitmaps erstellen
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 28.11.2003 um 21:51 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
28.11.2003, 21:52 Uhr
Pablo
Supertux
(Operator)



Zitat:
Anfänger00 postete
Ok,dann eben ansi C,aber ich kann halt nur c++
--
Edit:Gibt es da auch passende c++ Funktionen?
(wenn es nicht die selben sind)

Dann solltest du die STL kennen
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
28.11.2003, 22:03 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@Anfänger00
Du musst dir mal angucken wie ein header von einem bitmap file aussieht.
den musst du dann selber basteln und dann halt breite mal länge deinen farbwert in die datei schreiben. Problem ist es sich den richtigen header selbst zu basteln. Musst du mal bei google suchen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
28.11.2003, 22:27 Uhr
Anfänger00



Ich weiß nur nicht genau was du mit header meinst ich denke mal,dass das
der Kopf(wie der Name schon sagt) der Datei ist,also wo alles drinsteht,was für den Pictureviewer wichtig ist: Dateigröße,Bildgröße,Farbtiefe,Kompression.
Ich hab da mit nem hex editor herausgefunden,wo die eigentliche Bildinformation anfängt,aber ich weiß noch nicht genau,wie ich Größe,Farbtiefe und Kompression einstellen kann.
Naja,das find ich schon noch raus

--
Edit: Ich weiß auch noch nicht wie sich da die Farbwerte und die genauen Positionen der Pixel ergeben.Es schein mehere Möglichkeiten für weiß und Schwarz zu geben....(hex 88 = Schwarz;hex FF = weiß)

Dieser Post wurde am 28.11.2003 um 22:30 Uhr von Anfänger00 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
28.11.2003, 22:37 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Jo das sind genau diese informationen und ein paar mehr noch
guck mal in dem reätselthread den pablo dir gezeigt hat. Da habe ich in der funktion die das bitmap erstellt immer als kommentar mit rangeschrieben was die zu schreibenden bytes bedeuten. Was du ändern musst ist quasi "nur" die farbpalette damit du auch buntes benutzen kannst. Damit hab ich mich allerdings noch nicht beschäftigt. Was bestimmt hilft ist wenn du einfach mit paintbrush nen bild erstellst abspeicherst und dir das mal in nem hexeditor anzeigen lässt.
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ Allgemeines (OffTopic) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: