Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » formale Sprachen » Programm für Bildbearbeitung » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 4 Beiträge
Karlito

Hallo,

das hast du leider nicht ganz richtig verstanden. Die Befehle, die mit "#" anfangen werden zwar nicht vom Compiler verarbeitet, jedoch vom so genannten Präprozessor. Der Präprozessor ist soetwas wie ein Textersetzer.

In dem Teil
code:
1:
2:
3:
#ifndef PIXEL

wird geprüft, ob der Präprozessor die "Variable" PIXEL kennt. Wenn nicht, dann wird mit

code:
1:
2:
3:
#define PIXEL unsigned char


PIXEL so festgelegt, dass in der Zukunft PIXEL immer durch "unsigned char" ersetz wird.

code:
1:
2:
3:
PIXEL **bild;

wird also zu
code:
1:
2:
3:
unsigned char **bild;


Somit kannst du auch verstehen, was es bedeutet. Es handelt sich um einen Zeiger auf ein Array von chars. Wobei jeder char wohl einem Pixel entspricht.

Alles klar?

VG,

Karlito
Lycaner

#include <stdio.h>

#include "writeGIF.h" /* Deklarationen für die GIF-Routinen */
#include "loadjpeg.h" /* Deklarationen für die JPEG-Routinen */

/* Name für das Testbild */
#define TestBild "MG"
#define Matrikelnummer "543210"
#define JPG_Extension ".jpg"
#define GIF_Extension ".gif"
#define TestBild_In TestBild JPG_Extension
#define TestBild_Out Matrikelnummer GIF_Extension

/* Der Typ PIXEL ist bereits in loadjpeg.h definiert! */
#ifndef PIXEL
#define PIXEL unsigned char
#endif

int main(int argc, char *argv[])
{
PIXEL **bild;

int zeilenanzahl, spaltenanzahl;
int rcode;
float gleitender_offset;
float flt_grauwert;
int i, j;
double mi, mj;




bild = load_jpg_grey_image( TestBild_In, &zeilenanzahl, &spaltenanzahl );
............
Das ist der Anfang des Programms. Mein Problem ist das ich es nicht verstehen.
z.B.
dieser Ausdruck:
#ifndef PIXEL
#define PIXEL unsigned char
#endif

Ich dachte immer, das die Zeichen zwischen #ifndef und #endif immer von Programm überlesen wird. Sowas ähnlichen, wie /*….*/

PIXEL **bild; z.B. kenn ich gar nicht, was das bedeuten soll(

bild = load_jpg_grey_image( TestBild_In, &zeilenanzahl, &spaltenanzahl );
Diese Zeile sieht für mich aus, als ob das Programm hier das Bild einliest. Aber „bild“ wird vorher nicht als eine Funktion differiert(
Karlito

Nicht Visual Studio soll das Bild einlesen, sondern das Programm. Wenn du das Programm verstehen sollst, dann verstehe doch erst einmal, woher das Programm weiß, welches Bild es verarbetien soll...

Wenn es ein Parameter ist, welcher beim Programmstart übergeben wird, dann kann man das im VS in den Projekteingenschaften einstellen.

VG,

Karlito
Lycaner Programm für Bildbearbeitung

Bis jetzt haben wir immer mit einem eigenem Compiler C programmiert. Jetzt haben wir ein Beispielprogramm bekommen, das wir verstehen sollen. Das Programm sollte ein Bild einlesen und es etwas heller machen. Leider, weiß ich nicht, wie man bei Microsoft Visual C++ 2010Express ein Bild einlesen kann. Kann mir da einer weiter helfen?