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


von Bend G. (frankyfarell0)


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

von Karl H. (kbuchegg)


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"

von Frank (Gast)


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

von Bend G. (frankyfarell0)


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.

von Fred S. (Gast)


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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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...

von G. L. (sprintersb)


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

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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? ;-)

von Εrnst B. (ernst)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.