| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- #include "ExtendedImage.h"
- #include <cstring>
- ExtendedImage::ExtendedImage()
- : m_resX( 1.0 ),
- m_resY( 1.0 ),
- m_width( 0 ),
- m_height( 0 ),
- m_bpp( 0 ),
- m_buffer( NULL )
- {
- }
- ExtendedImage::~ExtendedImage()
- {
- Destroy();
- }
- bool ExtendedImage::Create( int width, int height, int bpp )
- {
- unsigned long n = width * height * bpp / 8;
- m_width = width;
- m_height = height;
- m_bpp = bpp;
- m_buffer = new char[ n ];
-
- if ( !m_buffer )
- {
- return false;
- }
- return true;
- }
- void ExtendedImage::Destroy()
- {
- delete[] m_buffer;
-
- m_buffer = NULL;
- m_width = 0;
- m_height = 0;
- m_bpp = 0;
- m_resX = 1.0;
- m_resY = 1.0;
- }
- bool ExtendedImage::IsNull()
- {
- return m_buffer ? false : true;
- }
- bool ExtendedImage::SetRaw( char* buffer, unsigned long n )
- {
- if ( buffer )
- {
-
- int bpp = m_bpp / 8;
- unsigned long deltaH = ( n / bpp ) % m_height;
- unsigned long scanline = m_width * bpp;
-
- int i = m_height;
- char* bptr = m_buffer;
- char* iptr = buffer;
-
- while ( i-- )
- {
-
- std::memcpy( bptr, iptr, scanline );
- bptr += scanline;
- iptr += scanline + deltaH;
-
- }
-
- return true;
-
- }
-
- return false;
- }
- char* ExtendedImage::GetBuffer()
- {
- return m_buffer;
- }
- char* ExtendedImage::GetPixel( int x, int y )
- {
- int n = m_bpp / 8;
-
- return m_buffer + n * ( m_width * y + x );
- }
- bool ExtendedImage::HasCalibration()
- {
- return ( ( m_resX > 0.0 ) && ( m_resY > 0.0 ) );
- }
- void ExtendedImage::SetResolution( double resX, double resY )
- {
- m_resX = resX;
- m_resY = resY;
- }
-
|