/* ========================================================================== * ÀÛ ¼º ÀÚ : À̼ø±Ô * ÀÛ ¼º ÀÏ : 2007.01.11 * ³» ¿ë : Ÿ°¡ ºñÆ®¸Ê À̹ÌÁö * ÁÖÀÇ»çÇ× : *===========================================================================*/ #pragma once class cFileLoader; /// Ÿ°¡ ºñÆ®¸Ê À̹ÌÁö class cTargaImage { public: cTargaImage(); /// Áö¿ò void Clear(); /// ·Îµù bool Load( const cString& pathName ); bool Load( cFileLoader& loader ); /// ÀúÀå bool Save( const cString& pathName ); /// Å©±â ¼³Á¤ void Resize( unsigned int width, unsigned int height, unsigned short bytesPerPixel ); /// »ö»ó ¹ÙÀÌÆ® ¼ø¼­¸¦ ¹Ù²Þ ( RGB <-> BGR ) void ChangeColorByteOrder(); /// Çȼ¿°ªÀ» ¼³Á¤ bool SetPixel( unsigned int x, unsigned int y, unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha = 1.0f ); /// ³Êºñ( Çȼ¿ ¼ö ) ¸®ÅÏ unsigned int GetWidth() const; /// ³ôÀÌ( Çȼ¿ ¼ö ) ¸®ÅÏ unsigned int GetHeight() const; /// Çȼ¿´ç ¹ÙÀÌÆ® ¼ö ¸®ÅÏ unsigned short GetBytesPerPixel() const; /// Å©±â( ¹ÙÀÌÆ® ¼ö ) ¸®ÅÏ unsigned int GetSize() const; /// Çȼ¿°ªÀ» ¸®ÅÏ bool GetPixel( unsigned char* red, unsigned char* green, unsigned char* blue, unsigned int x, unsigned int y ); bool GetPixel( unsigned char* red, unsigned char* green, unsigned char* blue, unsigned char* alpha, unsigned int x, unsigned int y ); /// ÁÖÀÇ: x¿Í y´Â [0, 1]»çÀÌÀÇ °ªÀ» °¡Á®¾ßÇÑ´Ù. bool GetPixel( unsigned char* red, unsigned char* green, unsigned char* blue, float x, float y ); /// ¹öÆÛ ¸®ÅÏ const tArray& GetBuffer() const; /// ¹öÆÛ Æ÷ÀÎÅÍ ¸®ÅÏ const unsigned char* GetBufferPtr() const; protected: /// ³Êºñ unsigned int mWidth; /// ³ôÀÌ unsigned int mHeight; /// Çȼ¿ ´ç ¹ÙÀÌÆ® ¼ö unsigned short mBytesPerPixel; /// À̹ÌÁö Å©±â ( mWidth * mHeight * mBytesPerPixel ) unsigned int mSize; /// ¹öÆÛ typedef tArray cBuffer; cBuffer mBuffer; }; inline unsigned int cTargaImage::GetWidth() const { return mWidth; } inline unsigned int cTargaImage::GetHeight() const { return mHeight; } inline unsigned short cTargaImage::GetBytesPerPixel() const { return mBytesPerPixel; } inline unsigned int cTargaImage::GetSize() const { return mSize; } inline const tArray& cTargaImage::GetBuffer() const { return mBuffer; } inline const unsigned char* cTargaImage::GetBufferPtr() const { return &mBuffer[0]; }