Laden...

.NET CF 2 : BMP zu JPEG, gaanz schwer :/

Erstellt von Fabian.Stern vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.217 Views
F
Fabian.Stern Themenstarter:in
35 Beiträge seit 2008
vor 15 Jahren
.NET CF 2 : BMP zu JPEG, gaanz schwer :/

Hallo,

ich habe ein 2MB großes JPEG File auf dem MDA.
Das Lade ich dank OPENnetCF Smart Device Framework auch
ohne OutOfMemoryException ein. Klappt super!
Jetzt habe ich dann eine Bitmap-Instanz.
Wenn ich jetzt aber bmp.Save(Dateiname/Stream, ImageFormat.JPEG) mache,
erhalte ich NotSupportedException.

Ergo brauche ich irgendwo eine Möglichkeit, dass ich selbst das BMP in JPEG konvertiere. Ich kann auch leider nicht einfach die Paletten austauschen etc.

Hat jemand dazu eine Idee?

Wie gesagt mein Ziel: Das JPEG resizen von 2400x1600px auf 800x600 🙂

Vielen vielen dank für eure Mühe!

Mit freundlichem Gruß

Fabian Stern

info@smart-coding.com
www.smart-coding.com

630 Beiträge seit 2007
vor 15 Jahren

Hallo,

dir wird wohl nichts anderes übrigen bleiben als auf eine Library eines Drittherstellers zurückzugreifen. Diese bietet AFAIK allerdings auch nur einen Wrapper um die native Windows Mobile API an. Könntest ja probieren selber etwas in die Richtung zu entwickeln.

Gruss
tscherno

To understand recursion you must first understand recursion

http://www.ilja-neumann.com
C# Gruppe bei last.fm

F
Fabian.Stern Themenstarter:in
35 Beiträge seit 2008
vor 15 Jahren

Hallo!

Das OpenNetCF Smart Device Framework habe ich tatsächlich gestern schon verwendet.
Und inzwischen kenne ich auch mein Problem 😉

Durch den Aufruf der WINCE API konnte ich alle installierten Encoder ermitteln
(GetInstalledEncoders). Leider ist da nur der MIME Typ für GIF Encoding installiert.

Ich brauche also:

A) Einen Encoder für JPEG (die Camera-Funktion speichert übrigens als JPEG ab)

oder

B) Eine Anleitung, wie man BMP zu JPEG konvertiert 🙂 (und das byte für byte)

Wenn mir wer irgendwie weiterhelfen kann wäre das super!

Vielen lieben Dank

Fabian

Mit freundlichem Gruß

Fabian Stern

info@smart-coding.com
www.smart-coding.com

P
48 Beiträge seit 2008
vor 15 Jahren

Hi Fabian,

bmp zu jpeg geht recht einfach, wenn du mit Image.FromFile das bmp lädst und danach
mit Image.Save als jpeg wieder speicherst (einfach Endung setzen oder ImageFormat).
Dies geht im normalen Framework super. Sollte dies vom "OPENnetCF Smart Device Framework" nicht unterstützt sein, musst du wohl einen komplett anderen Weg gehen.

Resize eines Bilder ist ähnlich einfach.

  • per Image.FromFile das Original laden
  • mit new Bitmap(new Width, new Height) das neue (kleinere) Bild anlegen
  • Graphics auf das neue Bild legen (Graphics.FromImage)
  • mit Graphics das große Bild ins kleine Bild zeichnen (aGraphics.DrawImage)
  • Graphics schließen / verwerfen
  • das kleine Bild speichern (Image.Save)

Grüße,

psy

F
Fabian.Stern Themenstarter:in
35 Beiträge seit 2008
vor 15 Jahren

Hallo,

wie ich leider schon geschrieben habe, ist das Problem schwer 🙂

Ich besitze nämlich keinen Encoder für JPEG auf dem PDA.
Da nützt mir ein Wrapper auch nichts.

Ich muss also Pixel für Pixel transformieren, oder einen gratis Encoder (wie libjpeg für linux) finden.

Grüße
fabi

Mit freundlichem Gruß

Fabian Stern

info@smart-coding.com
www.smart-coding.com

P
48 Beiträge seit 2008
vor 15 Jahren

Ok, jetzt verstehe ich 🙂

vielleicht findest du ja hier eine freie Bibliothek für sowas (ist aber alles Java).

Grüße,

psy

F
Fabian.Stern Themenstarter:in
35 Beiträge seit 2008
vor 15 Jahren

Okay ich blätter mal drin rum,

vielen Dank 🙂

Mit freundlichem Gruß

Fabian Stern

info@smart-coding.com
www.smart-coding.com

630 Beiträge seit 2007
vor 15 Jahren

Hallo,

Ich muss also Pixel für Pixel transformieren, oder einen gratis Encoder (wie libjpeg für linux) finden.

Eine Pixeltransformation sollte möglich sein, allerdings verlierst du dann die Kompressionsfeatures und könntest gleich BMP verwenden. JPEG verwendet das Dateiformat JFIF. Vieleicht hilft es dir irgendwie weiter...

Gruss
tscherno

To understand recursion you must first understand recursion

http://www.ilja-neumann.com
C# Gruppe bei last.fm