.. _doxcsid-interface_p1_1_1_image_sdk_1_1_i_bitmap_image:

IBitmapImage Interface
~~~~~~~~~~~~~~~~~~~~~~

Definition
^^^^^^^^^^

*Namespace:* ``P1.ImageSdk``

A RGB bitmap image interface, that can be used af input to image stacking (Windows only) and Tiff writing :ref:`More...<csdetails-interface_p1_1_1_image_sdk_1_1_i_bitmap_image>`

.. ref-code-block:: csharp
	:class: doxyrest-overview-code-block

	public interface IBitmapImage :  IDisposable


.. _csdetails-interface_p1_1_1_image_sdk_1_1_i_bitmap_image:

Remarks
^^^^^^^

A RGB bitmap image interface, that can be used af input to image stacking (Windows only) and Tiff writing

ImageSDK in C# uses two different bitmap classes: :ref:`BitmapImage <doxcsid-class_p1_1_1_image_sdk_1_1_bitmap_image>`, which stores its pixels in a byte array (byte[]). And :ref:`HugeBitmapImage <doxcsid-class_p1_1_1_image_sdk_1_1_huge_bitmap_image>` that stores its pixels in unmanaged (native) memory.

Both classes implements this interface, and this interface is all that is needed as input to ImageSDK methods that handle bitmap images as input.

This interface defines no means of accessing the individual pixels from C#. Use the concreate classes for that.

Since Phase One bitmap images are quite large (between 420 and 850 MB), you should always use the disposing pattern, to allow fast releasing of memory.


Properties
^^^^^^^^^^

.. toctree::
	:hidden:

	ByteSize <property_P1_ImageSdk_IBitmapImage_ByteSize.rst>
	Format <property_P1_ImageSdk_IBitmapImage_Format.rst>
	Width <property_P1_ImageSdk_IBitmapImage_Width.rst>
	Height <property_P1_ImageSdk_IBitmapImage_Height.rst>
	BitsPerSample <property_P1_ImageSdk_IBitmapImage_BitsPerSample.rst>
	SamplesPerPixel <property_P1_ImageSdk_IBitmapImage_SamplesPerPixel.rst>
	Stride <property_P1_ImageSdk_IBitmapImage_Stride.rst>
	SourceCrop <property_P1_ImageSdk_IBitmapImage_SourceCrop.rst>

.. list-table::
	:widths: 30 70

	*
		- :ref:`ByteSize <doxcsid-interface_p1_1_1_image_sdk_1_1_i_bitmap_image_1ae902ad6bfaf489cd479c8d9720758195>`
		- The total size of the image data in bytes
	*
		- :ref:`Format <doxcsid-interface_p1_1_1_image_sdk_1_1_i_bitmap_image_1af0875f7c0e78ab33545c8538482d8f8a>`
		- The pixel format used in the image data
	*
		- :ref:`Width <doxcsid-interface_p1_1_1_image_sdk_1_1_i_bitmap_image_1ab04874aa648f6cc2424dca871adea7a3>`
		- 
	*
		- :ref:`Height <doxcsid-interface_p1_1_1_image_sdk_1_1_i_bitmap_image_1a14cdb8ac0c8e0d2824638d495ae67d8f>`
		- 
	*
		- :ref:`BitsPerSample <doxcsid-interface_p1_1_1_image_sdk_1_1_i_bitmap_image_1a467f866308c45bbe93d8925a4eaac9ce>`
		- 
	*
		- :ref:`SamplesPerPixel <doxcsid-interface_p1_1_1_image_sdk_1_1_i_bitmap_image_1ae91ae27704e890fdfac4c24506cb9be1>`
		- 
	*
		- :ref:`Stride <doxcsid-interface_p1_1_1_image_sdk_1_1_i_bitmap_image_1a26da0e785d589c7a592f8ae76a16c29e>`
		- 
	*
		- :ref:`SourceCrop <doxcsid-interface_p1_1_1_image_sdk_1_1_i_bitmap_image_1a0c33d2b9bffac9acccdf4300c79e0591>`
		- 

Methods
^^^^^^^

.. toctree::
	:hidden:

	GetIntPtr <function_P1_ImageSdk_IBitmapImage_GetIntPtr.rst>

.. list-table::
	:widths: 33 67

	* 
		- :ref:`GetIntPtr() <doxcsid-interface_p1_1_1_image_sdk_1_1_i_bitmap_image_1ac17c2860e49504239c8856bb26d792e0>`
		- Get a IntPtr provider that creates and destroys handles to the underlying data buffer with the image data