www.mikrocontroller.net

Forum: Compiler & IDEs Bilddatei Bsp: jpg, png,bmp lesen und schreiben.


Autor: Bend Guet (frankyfarell0)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin noch anfänger mit C++ und habe ein problemm.

ich möchte ein kleines Programm mit Visual C++ schreiben, dass ein Bild 
ZB(bmp oder jpg)vom ein (quelledatei) öffnet,
aus diesem einen bestimmten Bereich "herausschneidet" und in ein zweite 
Datei(zieldatei) speichert - also z.B. aus einem Bild
mit 768 x 576 Pixeln einen Streifen mit 40 x 30 Pixeln

Ihre hilfe wäre mir sehr dankbar.

danke für ihre Hilfe

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Cyrille Guetsop wrote:
> Hallo,
>
> ich bin noch anfänger mit C++ und habe ein problemm.
>
> ich möchte ein kleines Programm mit Visual C++ schreiben, dass ein Bild
> ZB(bmp oder jpg)vom ein (quelledatei) öffnet,
> aus diesem einen bestimmten Bereich "herausschneidet" und in ein zweite
> Datei(zieldatei) speichert - also z.B. aus einem Bild
> mit 768 x 576 Pixeln einen Streifen mit 40 x 30 Pixeln

Da hast du dir aber ganz schön was vorgenommen, für den
Anfang.

Mein Tip: Such im Web nach Bibliotheken, die dir die Knochenarbeit
abnehmen: das Einlesen/Schreiben von Bildern bzw. die Speicherung
und Bearbeitung von Bildern.

Deine Stichworte für google wären "C++ image library"

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du ohne die Einbindung zusätzlicher Libs auskommen willst/musst, 
hast du nur bei BMP eine (schnelle) Chance. Dort wird eine (relativ) 
simple RLL-Kompression verwendet, man kann auch beim Speichern 
einstellen, dass unkomprimiert geschrieben werden soll.
JPEG setzt auf einen gewaltigen Sack Mathematik. Ich will jetzt nicht 
sagen, das sei unlösbar, ist aber ein dicker Brocken.
Das nützt dir aber alles Nichts, wenn du die Erstellung der Bilder aus 
fremder Herkunft nicht beeinflussen kannst.

Ansonsten musst du dich mit der API entsprechender Bibliotheken befassen 
...

Frank

Autor: Bend Guet (frankyfarell0)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger wrote:
> Cyrille Guetsop wrote:
>> Hallo,
>>
>> ich bin noch anfänger mit C++ und habe ein problemm.
>>
>> ich möchte ein kleines Programm mit Visual C++ schreiben, dass ein Bild
>> ZB(bmp oder jpg)vom ein (quelledatei) öffnet,
>> aus diesem einen bestimmten Bereich "herausschneidet" und in ein zweite
>> Datei(zieldatei) speichert - also z.B. aus einem Bild
>> mit 768 x 576 Pixeln einen Streifen mit 40 x 30 Pixeln
>
> Da hast du dir aber ganz schön was vorgenommen, für den
> Anfang.
>
> Mein Tip: Such im Web nach Bibliotheken, die dir die Knochenarbeit
> abnehmen: das Einlesen/Schreiben von Bildern bzw. die Speicherung
> und Bearbeitung von Bildern.
>
> Deine Stichworte für google wären "C++ image library"


danke karl, versuche ich mal das biblothek mir C++ image library  zu 
lesen vieleich klappt es.

Autor: Fred S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

wenn Du die JPEG-Mathematik einer Bibliothek überlassen möchtest, bietet 
sich auch die Software der Independent JPEG Group an: 
http://www.ijg.org/

Für die Einbindung der Bibliothek in VC++ Programme ist etwas Arbeit 
erforderlich (Bibliothek kompilieren, Fehlermeldungen analysieren, 
Bibliotheks-Quellcode ändern, alles wieder von vorne), aber es ist 
machbar. Been there, done that.

Gruß

Fred

Die meisten BMPs sind übrigens unkomprimiert und leicht in DIBs zu 
überführen. Wenn BMPs komprimiert sind, dann mit RLE.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Cyrille Guetsop wrote:

> ich möchte ein kleines Programm mit Visual C++ schreiben, ...

Nur nebenbei: das hier ist das Forum für den GCC.  Die Experten für
Visual XXX wirst du hier wohl eher nicht finden...

Autor: G. L. (sprintersb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Cyrille Guetsop wrote:
> ich möchte ein kleines Programm mit Visual C++ schreiben, dass ein Bild
> ZB(bmp oder jpg)vom ein (quelledatei) öffnet,
> aus diesem einen bestimmten Bereich "herausschneidet" ...

Liegt die Betonung auf "möchte C++ schreiben" oder auf "Bild 
bearbeiten"?

In letzterem Falls ist möglicherweise ImageMagick o.ö. Dein Freund. Es 
bietet mannigfaltige Möglichkeiten zur Bildmanipulation

-- per Kommandozeile
-- Schnittstellen für verschiedene Sprachen (C, C++, Perl, Java, Ruby, 
PHP, Ada, ...)
-- Unix, MS-Windows, Mac OS X
-- Steht unter GPL und ist kostenlos
-- Unterstützt zig Formate
-- Snip, Konvertierung, Erstellung (auch Animationen), Maskierung, 
Gamma-Anpassung, ...

http://www.imagemagick.org

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Georg-johann L. wrote:

> In letzterem Falls ist möglicherweise ImageMagick o.ö. Dein Freund.

Meinst du, jemand der freiwillig Visual XXX benutzt, würde seine
Bildbearbeitung mit Kommandozeilentools vornehmen wollen? ;-)

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ImageMagick enthält auch ImageMagick++, ein C++ interface für die 
Libraries.
Damit ist das schnell gemacht.

Ansonsten kann er den "einfachen" Weg gehen, und aus VC++ einfach die 
Commandline-Tools mit den richtigen Parametern ausführen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.