interleave_channelsinterleave_channelsInterleaveChannelsInterleaveChannels (Operator)
Name
interleave_channelsinterleave_channelsInterleaveChannelsInterleaveChannels
— 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_channelsInterleaveChannelsInterleaveChannelsInterleaveChannels
erzeugt das verschachtelte Bild
InterleavedImageInterleavedImageInterleavedImageInterleavedImageinterleavedImage
aus dem drei- oder vierkanaligen
MultichannelImageMultichannelImageMultichannelImageMultichannelImagemultichannelImage
. 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 InterleavedImageInterleavedImageInterleavedImageInterleavedImageinterleavedImage
wird mit
PixelFormatPixelFormatPixelFormatPixelFormatpixelFormat
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",
wobei 'a' für den vierten ('Alpha') Kanal steht.
Im Gegensatz zu gen_image_interleavedgen_image_interleavedGenImageInterleavedGenImageInterleavedGenImageInterleaved
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 RowBytesRowBytesRowBytesRowBytesrowBytes
bestimmt werden. So können zum Beispiel
Ausrichtungskriterien erfüllt werden.
Werden keine Füllbytes benötigt, kann RowBytesRowBytesRowBytesRowBytesrowBytes
auf 'match'"match""match""match""match"
gesetzt werden. RowBytesRowBytesRowBytesRowBytesrowBytes
muss mindestens so groß sein wie die
Anzahl der Bytes in PixelFormatPixelFormatPixelFormatPixelFormatpixelFormat
mal der Breite von
MultichannelImageMultichannelImageMultichannelImageMultichannelImagemultichannelImage
.
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
MultichannelImageMultichannelImageMultichannelImageMultichannelImagemultichannelImage
(input_object) multichannel-image →
objectHImageHImageHobject (byte)
Mehrkanaliges Eingabebild.
InterleavedImageInterleavedImageInterleavedImageInterleavedImageinterleavedImage
(output_object) singlechannelimage →
objectHImageHImageHobject * (byte)
Verschränktes Ausgabebild.
PixelFormatPixelFormatPixelFormatPixelFormatpixelFormat
(input_control) string →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Zielformat für InterleavedImage.
Defaultwert:
'rgba'
"rgba"
"rgba"
"rgba"
"rgba"
Werteliste: 'abgr'"abgr""abgr""abgr""abgr", 'argb'"argb""argb""argb""argb", 'bgr'"bgr""bgr""bgr""bgr", 'bgra'"bgra""bgra""bgra""bgra", 'rgb'"rgb""rgb""rgb""rgb", 'rgba'"rgba""rgba""rgba""rgba"
RowBytesRowBytesRowBytesRowBytesrowBytes
(input_control) integer →
HTupleHTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)
Anzahl der Bytes in einer Zeile von InterleavedImage.
Defaultwert:
'match'
"match"
"match"
"match"
"match"
Wertevorschläge: 'match'"match""match""match""match"
AlphaAlphaAlphaAlphaalpha
(input_control) integer →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Alphawert für dreikanalige Eingabebilder.
Defaultwert: 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_interleavedGenImageInterleavedGenImageInterleavedGenImageInterleaved
Modul
Foundation