interleave_channelsinterleave_channelsInterleaveChannelsInterleaveChannelsinterleave_channels (Operator)
Name
interleave_channelsinterleave_channelsInterleaveChannelsInterleaveChannelsinterleave_channels
— Create an interleaved image from a multichannel image.
Signature
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
(
Windows only)
Description
The operator interleave_channelsinterleave_channelsInterleaveChannelsInterleaveChannelsinterleave_channels
creates an InterleavedImageInterleavedImageInterleavedImageinterleavedImageinterleaved_image
from the input MultichannelImageMultichannelImageMultichannelImagemultichannelImagemultichannel_image
containing three or four
channels. This is useful to prepare a color image for visualization, e.g., by
converting it to a .NET Bitmap.
Pixel format
The format of the pixels in InterleavedImageInterleavedImageInterleavedImageinterleavedImageinterleaved_image
is specified with
PixelFormatPixelFormatPixelFormatpixelFormatpixel_format
. Possible formats are '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", and 'abgr'"abgr""abgr""abgr""abgr" for
byte images and '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" and 'abgr64'"abgr64""abgr64""abgr64""abgr64" for uint2
images, where 'a' denotes the 4th ('alpha') channel.
Be aware that, in contrast to gen_image_interleavedgen_image_interleavedGenImageInterleavedGenImageInterleavedgen_image_interleaved
, LittleEndian
byte ordering is used in PixelFormatPixelFormatPixelFormatpixelFormatpixel_format
.
Alpha channel
The alpha channel can be defined in the following ways:
Row alignment
The number of bytes between the beginning of two rows in the output
image can be set in RowBytesRowBytesRowBytesrowBytesrow_bytes
, e.g., to fulfill specific
alignment criteria.
Set RowBytesRowBytesRowBytesrowBytesrow_bytes
to 'match'"match""match""match""match" if no additional padding is
required. RowBytesRowBytesRowBytesrowBytesrow_bytes
must be at least the number of bytes in
PixelFormatPixelFormatPixelFormatpixelFormatpixel_format
times the width of MultichannelImageMultichannelImageMultichannelImagemultichannelImagemultichannel_image
.
Execution Information
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Automatically parallelized on internal data level.
Parameters
MultichannelImageMultichannelImageMultichannelImagemultichannelImagemultichannel_image
(input_object) multichannel-image →
objectHImageHObjectHObjectHobject (byte)
Input multichannel image.
InterleavedImageInterleavedImageInterleavedImageinterleavedImageinterleaved_image
(output_object) singlechannelimage →
objectHImageHObjectHObjectHobject * (byte)
Output interleaved image.
PixelFormatPixelFormatPixelFormatpixelFormatpixel_format
(input_control) string →
HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Target format for InterleavedImage.
Default:
'rgba'
"rgba"
"rgba"
"rgba"
"rgba"
List of values:
'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)
Number of bytes in a row of the output image.
Default:
'match'
"match"
"match"
"match"
"match"
Suggested values:
'match'"match""match""match""match"
AlphaAlphaAlphaalphaalpha
(input_control) integer →
HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Alpha value for three channel input images.
Default:
255
Suggested values:
255, 0
Example (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;
See also
gen_image_interleavedgen_image_interleavedGenImageInterleavedGenImageInterleavedgen_image_interleaved
Module
Foundation