Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Bild ausgabe

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 <
000
21.08.2007, 14:59 Uhr
sunny



Hallo,
ich möchte eine bmp aus einer Matrix erstellen, bzw. aus 3.
Ich habe die Werte für rot, grün und blau jeweils einzeln abgespeichert und möchte daraus jetzt das Bild erstellen.

Kann mir dabei jemand helfen *hoff*

Ich finde dazu leider nichts passendes.

eingelesen hab ich so:


C++:
Bitmap img=(L"neu.bmp");
int x=img.GetWidth();
int y=img.GetHeight();

for (i=0;i<=x;i++)
{
    for (j=0;j<=y;j++)
    {
    img.GetPixel(i,j, &gdiColor);
    COLORREF color = gdiColor.ToCOLORREF();

    r = GetRValue(color);
    g = GetGValue(color);
    b = GetBValue(color);

    }
}  





ich hoffe es gibt auch so etwas einfaches bei der ausgabe.

Dieser Post wurde am 21.08.2007 um 18:44 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.08.2007, 15:52 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Warum so kompliziert?


C++:
             HDC hDest,hSrc;
    HBITMAP    hBitmap;
    BITMAP    Info;

    hBitmap = LoadBitmap(hInst,MAKEINTRESOURCE(IDB_BITMAP1));
    GetObject(hBitmap,sizeof(Info),&Info);
    
    hDest = GetDC(hMainWindow);    
    hSrc = CreateCompatibleDC(hDest);    
    SelectObject(hSrc,hBitmap);    


    BitBlt(hDest,30,187,Info.bmWidth,Info.bmHeight,hSrc,0,0,SRCCOPY);
    ReleaseDC(hMainWindow,hDest);
    DeleteDC(hSrc);
    DeleteObject(hBitmap);


mal als grobes Beispiel...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
21.08.2007, 16:09 Uhr
Hans
Library Walker
(Operator)


Hi,

wenn Du eine BMP-Datei erstellen willst, dann musst Du Dir Informationen über den Aufbau des BMP-Dateiformats besorgen. Die gibt es online, z.B. bei wotsit, oder auch in Buchform:

Bei Amazon

In dem Buch sind auch Quelltexte angegeben, die zeigen wie man mit den Formaten umgeht. Ob es auch eine CD dabei gibt, weis ich gerade nicht. Bei meiner Version von '92 o.ä. gab es jedenfalls keine, dafür aber ein separates Programmierhandbuch Dateiformate. Das Buch gibt es aber wahrscheinlich auch nur noch in Bibliotheken.
Ansonsten sind Google, Yahoo & Co. Deine Freunde bei der Suche.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 21.08.2007 um 16:11 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
21.08.2007, 17:44 Uhr
sunny



wie ein bitmap aufgebaut ist hab ich mir jetzt leider schon öfter angesehen...bringt mich aber beim programmieren atm nicht wirklich weiter

@Guybrush Threepwood
wie kann ich da meine Daten einbinden

ich hab sie einzeln eingelesen um sie zu verändern. und wollte sie jetzt bei der ausgabe wieder zusammenfügen...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
21.08.2007, 20:48 Uhr
Hans
Library Walker
(Operator)


Hi,

wie eine Bitmap im Speicher des Rechners aufgebaut ist, und wie selbige als Datei abgespeichert wird, sind zwei verschiedene paar Schuhe. Oder was glaubst Du, warum es so viele Grafikdateiformate gibt? Die häufigsten sind BMP, GIF, JPG, dann gibt's da noch PCX, TIFF, TGA, PNG und noch mindestens 2 Dutzend weitere.
Ein wesentlicher Unterschied besteht allein darin, ob man zuerst die Farbinformationen, und dann die Pixeldaten in Form von Graustufen oder Helligkeitswerten ablegt, oder umgekehrt. Dann ist die Farge, ob das Bild komprimiert ist, oder nicht. Wenn es komprimiert ist, ist die Frage zu klären, wie. Und schliesslich braucht das darstellende Programm auch noch Informationen über die Grösse, die Anzahl der verwendeten Farben, und was der Dinge mehr sind, die man noch einbauen kann; (Alphakanäle, Farbkorrektur, Metadaten...).

Eine brauchbare Erklärung für das BMP-Format findet sich auch bei Wikipedia. Aber da steht nicht, wie man das Programmtechnisch handhabt. Wenn Du unter Windows programmierst, d.h. Programme schreibst, die die graphische Oberfläche von Windows nutzen, dann kannst Du auf das Beispiel von Guybrush zurück greifen, denn Windows hat schon fertige Funktionen zum Gebrauch von BMP-Files. Wenn Du aber, was ich vermute, in einer DOS-Konsole arbeitest, dann musst Du entweder alles selber machen, oder Du siehst Dich nach einer fertigen Bibliothek zum Laden, Speichern und Anzeigen von BMP-Dateien um. Z.B. bei Sourcforge.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
22.08.2007, 16:28 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Naja der Aufbau kann ihm schon egal sein denn er hat das Bild ja schon geladen und wohl irgendwas mit den Farbwerten gemacht. Das will er jetzt irgendwie anzeigen.

Ein Möglichkeit wäre SetPixel zu verwenden. Find ich aber nicht besonders schön, hab mich aber noch nicht weiter damit beschäftigt um andere Möglichkeiten anbieten zu können...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
22.08.2007, 23:39 Uhr
Hans
Library Walker
(Operator)


Hi,

also da hab ich wahrscheinlich was falsch verstanden...
Ich hab diesen Text

Zitat von sunny:
ich möchte eine bmp aus einer Matrix erstellen

so verstanden, das er aus den Daten, die sein Programm produziert, eine BMP-Datei erzeugen will, die er dann irgendwo (Festplatte, etc.) abspeichert. Aber anscheinend ist er noch gar nicht so weit, sondern hat bisher eher dass Problem, das er aus seinen Daten, erst noch ein Bild auf der Mattscheibe erzeugen will, aber nicht weis, wie man das anstellt. @sunny: Liege ich mit dieser Vermutung richtig?

(Ansonsten stelle ich fest, das ich mit meiner Ansicht über die DOS-Konsole wohl daneben lag; - das kommt davon, wenn man sich den gegebenen Quelltext nicht richtig ansieht. )

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
27.08.2007, 19:36 Uhr
sunny



hi,
sorry erstmal das ich erst jetzt wieder antworte, ich hatte Internet probs

also eigentlich wollte ich schon eine ganz neue Datei erstellen:
bmp ohne Kompression. (8bit pro farbe, rgb)

Ich hab für mein Programm ein Bild eingelesen
hab dann die Farben getrennt, und für jede Farbe eine matrix erstellt.

Danach hab ich die Werte umgerechnet, und dabei sozusagen die Größe des Bildes verändert.
Jetzt möchte ich eigentlich nur noch das neue Bild ausgeben.

Aber wenns eine gute Möglichkeit gibt die neuen Farbwerte in ein bestehendes Bild zu schreiben,
dann würd ich das gern als Notlösung nutzen. (Nur was ich bisher geschrieben hab, funktioniert überhaupt nicht )

Ansonsten wärs toll wenn mir jemand sagen könnte, wie ich ein komplett neues Bild erstellen und abspeichern kann
(nicht nur darstellen, sondern wirklich als Datei abspeichern)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


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: