interleave_channelsinterleave_channelsInterleaveChannelsInterleaveChannelsinterleave_channels (Operator)
Name
interleave_channelsinterleave_channelsInterleaveChannelsInterleaveChannelsinterleave_channels — Erzeugen eines verschachtelten Bildes aus einem Mehrkanalbild.
Signatur
void InterleaveChannels(const HObject& MultichannelImage, HObject* InterleavedImage, const HTuple& PixelFormat, const HTuple& RowBytes, const HTuple& Alpha)
HImage HImage::InterleaveChannels(const HString& PixelFormat, const HTuple& RowBytes, Hlong Alpha) const
HImage HImage::InterleaveChannels(const HString& PixelFormat, const HString& RowBytes, Hlong Alpha) const
HImage HImage::InterleaveChannels(const char* PixelFormat, const char* RowBytes, Hlong Alpha) const
HImage HImage::InterleaveChannels(const wchar_t* PixelFormat, const wchar_t* RowBytes, Hlong Alpha) const
(
Nur Windows)
Beschreibung
Der Operator interleave_channelsinterleave_channelsInterleaveChannelsInterleaveChannelsinterleave_channels erzeugt das verschachtelte Bild
InterleavedImageInterleavedImageInterleavedImageinterleavedImageinterleaved_image aus dem drei- oder vierkanaligen
MultichannelImageMultichannelImageMultichannelImagemultichannelImagemultichannel_image. Das ist hilfreich um ein Farbbild für die
Darstellung vorzubereiten, z.B. um es in ein .NET Bitmap zu konvertieren.
Pixelformat
Das Format der Pixel von InterleavedImageInterleavedImageInterleavedImageinterleavedImageinterleaved_image wird mit
PixelFormatPixelFormatPixelFormatpixelFormatpixel_format festgelegt. Mögliche Formate sind 'rgb'"rgb""rgb""rgb""rgb",
'rgba'"rgba""rgba""rgba""rgba", 'argb'"argb""argb""argb""argb", 'bgr'"bgr""bgr""bgr""bgr", 'bgra'"bgra""bgra""bgra""bgra" und
'abgr'"abgr""abgr""abgr""abgr" für byte-Bilder und 'rgb48'"rgb48""rgb48""rgb48""rgb48", 'bgr48'"bgr48""bgr48""bgr48""bgr48",
'rgba64'"rgba64""rgba64""rgba64""rgba64", 'bgra64'"bgra64""bgra64""bgra64""bgra64", 'argb64'"argb64""argb64""argb64""argb64" und
'abgr64'"abgr64""abgr64""abgr64""abgr64" für uint2 Bilder,
wobei 'a' für den vierten ('Alpha') Kanal steht.
Im Gegensatz zu gen_image_interleavedgen_image_interleavedGenImageInterleavedGenImageInterleavedgen_image_interleaved wird dabei LittleEndian als
Byteordnung angenommen.
Alphakanal
Der Alphakanal wird auf folgende Art und Weise bestimmt:
|
Kanäle |
Domäne |
|
|
3 |
nicht vorhanden/voll |
Der Wert von AlphaAlphaAlphaalphaalpha wird für das gesamte Bild verwendet. |
|
3 |
eingeschränkt |
Innerhalb der Domäne: Alpha wird auf AlphaAlphaAlphaalphaalpha gesetzt.
Außerhalb der Domäne: Alpha wird auf Null gesetzt. |
|
4 |
|
Alpha wird auf den entsprechenden Wert des vierten Kanals gesetzt,
Domäne und AlphaAlphaAlphaalphaalpha werden ignoriert.
|
Zeilenausrichtung
Die Anzahl der Bytes zwischen dem Anfang von zwei Zeilen im Ausgabebild
kann mit RowBytesRowBytesRowBytesrowBytesrow_bytes bestimmt werden. So können zum Beispiel
Ausrichtungskriterien erfüllt werden.
Werden keine Füllbytes benötigt, kann RowBytesRowBytesRowBytesrowBytesrow_bytes auf 'match'"match""match""match""match"
gesetzt werden. RowBytesRowBytesRowBytesrowBytesrow_bytes muss mindestens so groß sein wie die
Anzahl der Bytes in PixelFormatPixelFormatPixelFormatpixelFormatpixel_format mal der Breite von
MultichannelImageMultichannelImageMultichannelImagemultichannelImagemultichannel_image.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf interner Datenebene.
Parameter
MultichannelImageMultichannelImageMultichannelImagemultichannelImagemultichannel_image (input_object) multichannel-image → objectHImageHObjectHObjectHobject (byte)
Mehrkanaliges Eingabebild.
InterleavedImageInterleavedImageInterleavedImageinterleavedImageinterleaved_image (output_object) singlechannelimage → objectHImageHObjectHObjectHobject * (byte)
Verschränktes Ausgabebild.
PixelFormatPixelFormatPixelFormatpixelFormatpixel_format (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Zielformat für InterleavedImage.
Default:
'rgba'
"rgba"
"rgba"
"rgba"
"rgba"
Werteliste:
'abgr'"abgr""abgr""abgr""abgr", 'abgr64'"abgr64""abgr64""abgr64""abgr64", 'argb'"argb""argb""argb""argb", 'argb64'"argb64""argb64""argb64""argb64", 'bgr'"bgr""bgr""bgr""bgr", 'bgr48'"bgr48""bgr48""bgr48""bgr48", 'bgra'"bgra""bgra""bgra""bgra", 'bgra64'"bgra64""bgra64""bgra64""bgra64", 'rgb'"rgb""rgb""rgb""rgb", 'rgb48'"rgb48""rgb48""rgb48""rgb48", 'rgba'"rgba""rgba""rgba""rgba", 'rgba64'"rgba64""rgba64""rgba64""rgba64"
RowBytesRowBytesRowBytesrowBytesrow_bytes (input_control) integer → HTupleUnion[str, int]HTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)
Anzahl der Bytes in einer Zeile von InterleavedImage.
Default:
'match'
"match"
"match"
"match"
"match"
Wertevorschläge:
'match'"match""match""match""match"
AlphaAlphaAlphaalphaalpha (input_control) integer → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Alphawert für dreikanalige Eingabebilder.
Default:
255
Wertevorschläge:
255, 0
Beispiel (C#)
HTuple type, width, height;
HImage patras = new HImage("patras");
HImage interleaved = patras.InterleaveChannels("argb", "match", 255);
IntPtr ptr = interleaved.GetImagePointer1(out type, out width, out height);
Image img = new Bitmap(width/4, height, width,
PixelFormat.Format32bppArgb, ptr);
pictureBox.Image = img;
Siehe auch
gen_image_interleavedgen_image_interleavedGenImageInterleavedGenImageInterleavedgen_image_interleaved
Modul
Foundation