User Passwort
 Passwort speichern Passwort vergessen?
 
 
 
 Alle Foren
 PDA-Dev :: Windows Mobile
 Windows Mobile - Allgemeines
 24 Bit Bitmap in 1-Bit Bitmap konvert./speichern
Autor Vorheriges Thema Thema Nächstes Thema  

UweK

PDA-Programmierer


37 Beiträge

Erstellt am: 20.01.2012 :  11:48:24 Uhr  Profil anzeigen  Autor eine Email senden  Besuche UweK's Homepage  Antwort mit Zitat
Hallo Leute,
in dem guten alten PDA-Dev-Forum ist zwar nicht mehr viel los aber ich versuche trotzdem mal mein Glück und hoffe, dass mir jemand helfen kann.
Vorgeschichte:
In meiner alten, in eVB entwickelten Software hatte ich dieses Problem erfolgreich mit der S309PictureBox gelöst. Dieses Steuerelement löst aber unter .NET eine "interop comexception 0x8000ffff" aus.
Die eigentliche Problemstellung:
Der Anwender leistet eine Unterschrift auf dem PDA, diese wird aus Datenschutz- bzw. Sicherheitsgründen nicht als Bitmap-Datei sondern als Bytearray in einer Datenbank abgespeichert. Die Unterschrift muss aber auch auf einem Beleg über einen Bluetooth-Bon-/Etikettendrucker ausgedruckt werden. Der Drucker kann allerdings nur monochrome 1Bit-Bitmaps drucken. .NET Compact Framework speichert die Grafik aber als 24-Bit Bitmap. Also muss die Grafik erstmal konvertiert werden.
Dies habe ich mittels folgendem Codebeispiel gelöst:
http://stackoverflow.com/questions/1836632/convert-image-to-1-bpp-bitmap-in-net-compact-framework/8925782#8925782
Ich übergebe also die 24-Bit Bitmap und bekomme die 1-Bit Bitmap als Bytearray zurück, welches ich in der Datenbank speichere. Muss nun der Beleg gedruckt werden wandele ich das Bytearray wieder zu einer Bitmap und speichere diese dann temporär für den Druckvorgang als .bmp-Datei, da der Drucker nur eine als Datei gespeicherte Bitmap drucken kann und übergebe diesem dann den Pfad und Dateinamen. Das Problem ist nun, dass die Bitmap beim speichern (System.Drawing.Bitamp.Save) als Datei wieder 24-Bit anstatt 1-Bit Farbtiefe hat und der Drucker die Datei nicht drucken kann. :-/
Wie bereits oben erwähnt hatte ich dies unter eVB mit der S309PictureBox gelöst. In dieses Control hatte ich vor dem Druckvorgang das als Bitmap umgewandelte Byte-Array, für den Anwender unsichtbar, geladen. Das Control hatte eine Eigenschaft "BitsPerPixel" (die ich bisher im CompactFramework bei keiner anderen PictureBox gefunden habe) die ich auf "1" gesetzt habe und über eine Metode dieses Controls konnte ich die Bitmap als 1-Bit Bitmap-Datei speichern, welche ich dann an den Drucker gesendet habe.
Ich habe mich schon wundgegoogelt und auch in verschiedenen Foren erfolglos nach Lösungen gesucht. Kann mir vielleicht hier jemand mit einem Beispiel oder Tipp weiter helfen?
Bin am verzweifeln.
Vielen Dank im Voraus!!!
Gruß,
Uwe.
   
  Vorheriges Thema Thema Nächstes Thema  
Springe nach:
 
  Bookmark & Share  
 
 
 
  Tags  
 
Keine Tags gefunden
 
 
 



pda-dev.de

Quicklinks: Foren-Übersicht | Developer-News | Suche | Impressum

© just-works! Software

Zum Anfang der Seite

Snitz Forums 2000