von TBitmap zu CMBitmap konvertieren

Antworten
jus
Beiträge: 50
Registriert: Fr 6. Mai 2011, 13:29

von TBitmap zu CMBitmap konvertieren

Beitrag von jus »

Gibt es eine Möglichkeit ein TBitmap zu Mac API typischen CMBitmap zu konvertieren und vielleicht auch wieder zurückzukonvertieren?

Lg,
jus

noenglish
Beiträge: 36
Registriert: Di 4. Mai 2010, 09:14
OS, Lazarus, FPC: Win10 64Bit, L: 1.8.4 FPC 3.0.4

Re: von TBitmap zu CMBitmap konvertieren

Beitrag von noenglish »

Selber machen geht, vorausgesetzt Du kennst das Dateiformat der von CMBitmap verwendeten Dateien.
Datei Byte für Byte einlesen und im neuen Format zurückschreiben.
Das Format von .bmp - Dateien findest Du hier: http://de.wikipedia.org/wiki/Windows_Bitmap.
Aber vielleicht hast Du Glück und es kennt jemand eine geeignete Funktion.

Kannst Du mal eine Mac API typischen CMBitmap posten?

MfG
noenglish

jus
Beiträge: 50
Registriert: Fr 6. Mai 2011, 13:29

Re: von TBitmap zu CMBitmap konvertieren

Beitrag von jus »

Hallo noenglish,

der Mac API Befehl, der die Struktur von CMBitmap verlangt, heißt CWMatchBitmap. Ich versuche nämlich gerade rauszufinden wie man unter Mac das Farbmanagement anprechen kann. : :cry:
Die Definition von CMBitmap habe ich bereits in den Lazarus Sourcen gefunden:

Code: Alles auswählen

CMBitmap = record
      image: CStringPtr;
      width: size_t;
      height: size_t;
      rowBytes: size_t;
      pixelSize: size_t;
      space: CMBitmapColorSpace;
      user1: UInt32;
      user2: UInt32;
   end;


Die Frage is nun, wie man aber von TBitmap auf ein CMBitmap konvertieren kann, damit die Mac API Funktion "CWMatchBitmap" das klaglos frißt. :?:

Lg,
jus

noenglish
Beiträge: 36
Registriert: Di 4. Mai 2010, 09:14
OS, Lazarus, FPC: Win10 64Bit, L: 1.8.4 FPC 3.0.4

Re: von TBitmap zu CMBitmap konvertieren

Beitrag von noenglish »

Ich verstehe Deine Frage jetzt so, Du möchtest keine Datei umwandeln sondern mit CMBitmap auf eine .bmp Datei zugreifen. Da kann ich Dir leider nicht helfen.

Mit freundlichen Grüßen
noenglish

jus
Beiträge: 50
Registriert: Fr 6. Mai 2011, 13:29

Re: von TBitmap zu CMBitmap konvertieren

Beitrag von jus »

Hallo,
ich wollte mich noch mal melden bzgl. der Lösung für die Konvertierung von TBitmap zu CMBitmap, falls jemand mal vor dem selben Problem stehen sollte. Wenn man die Vampyre Imaging Libary verwendet, ist es nicht so schwer. Ich zitiere den Galfar von der Vampyre Imaging Lib:
Galfar hat geschrieben:Hi, it should be quite easy to convert TImageData to CMBitmap:

CMBitmap.image is TImageData.Bits
Width and Height is easy
CMBitmap.pixelSize is 8 * Fmt.BytesPerPixel (use GetImageFormatInfo function to get this)
CMBitmap.rowBytes is Width * CMBitmap.pixelSize

Then you need to set CmBitmap.space according to TImageData.Format,
mostly cmRGB24Space or cmRGBA32Space is used.


Lg,
jus

Antworten