Тема: Less Toolkit
Показать сообщение отдельно
Старый 25.01.2009, 00:17   #6 (Ссылка на пост)
Lester
Гаденыш
 
Аватар для Lester
Пол:
 
Активность Longevity
3/20 16/20
Today Сообщения
0/5 sssss4648
Благодарил(а): 2,442
Благодарили 5,834 раз в 2,093 постах
Галерея: 0
Вес репутации: 78 Lester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторыLester скоро в модераторы
насчет массивов - будем считать, что разобрались( бинарный поиск и SortedArray занесены в TODO и обязательно будут реализованы ), пошли дальше...

Bitmap( класс для работы с изображениями )

PHP код:
/**********************************************************************************************/
class LTAPI Bitmap
{
public:
//////////////////////////////////////////////////////////////////////////
    
    // TODO: AUTO register/unregister in repository

                                
Bitmapvoid );
                                
Bitmap( const Bitmapbmp );
                                
Bitmap( const Bitmapbmp, const Rectrect );
                                
Bitmapsize_t widthsize_t height );
                                
Bitmap( const StringpathBitmapType type AUTO );
                                
Bitmapvoiddatasize_t sizeBitmapType type AUTO );
                                
Bitmap( const char* const* xpm );

virtual                            ~Bitmapvoid );

public:
//////////////////////////////////////////////////////////////////////////

        //////////////////////////////////////////////////////////////////////////
        // Information

        
size_t                    GetWidthvoid ) const;
        
size_t                    GetHeightvoid ) const;

        
bool                    IsOkvoid ) const;

        
//////////////////////////////////////////////////////////////////////////
        // Load and save

        
bool                    LoadDatavoiddatasize_t sizeBitmapType type AUTO );
        
bool                    LoadFile( const StringpathBitmapType type AUTO );

        
bool                    SaveDatavoid*& datasize_tsizeBitmapType type PNG ) const;
        
bool                    SaveFile( const StringpathBitmapType type AUTO ) const;

        
//////////////////////////////////////////////////////////////////////////
        // Filters

        
Bitmap                    Blursize_t radius ) const;
        
Bitmap&                    BlurSelfsize_t radius );

        
Bitmap                    BlurHorizontalsize_t radius ) const;
        
Bitmap&                    BlurHorizontalSelfsize_t radius );

        
Bitmap                    BlurVerticalsize_t radius ) const;
        
Bitmap&                    BlurVerticalSelfsize_t radius );

        
Bitmap                    ColourReductionsize_t colours 236 ) const;
        
Bitmap&                    ColourReductionSelfsize_t colours 236 );

        
Bitmap                    ConvertToGreyscalevoid ) const;
        
Bitmap&                    ConvertToGreyscaleSelfvoid );

        
Bitmap                    ConvertToMonovoid ) const;
        
Bitmap&                    ConvertToMonoSelfvoid );

        
Bitmap                    GetSubBitmap( const Rectrect ) const;

        
Bitmap                    MirrorHorizontalvoid ) const;
        
Bitmap&                    MirrorHorizontalSelfvoid );

        
Bitmap                    MirrorVerticalvoid ) const;
        
Bitmap&                    MirrorVerticalSelfvoid );

        
Bitmap                    Scale
                                    
size_t                width
                                    
size_t                height
                                    
bool                highQuality true ) const;

        
Bitmap&                    ScaleSelf
                                    
size_t                width
                                    
size_t                height
                                    
bool                highQuality true );

        
Bitmap                    Resize(
                                    
size_t                width,
                                    
size_t                height,
                                    
Colour                cl BLACK ) const;

        
Bitmap&                    ResizeSelf(
                                    
size_t                width,
                                    
size_t                height,
                                    
Colour                cl BLACK );

        
Bitmap                    Rotate
                                    
size_t                angle
                                    
size_t                x
                                    
size_t                y
                                    
bool                highQuality true ) const;

        
Bitmap&                    RotateSelf
                                    
size_t                angle
                                    
size_t                x
                                    
size_t                y
                                    
bool                highQuality true );

        
Bitmap                    RotateHuesize_t angle ) const;
        
Bitmap&                    RotateHueSelfsize_t angle );

        
Bitmap                    Rotate90bool clockwise true ) const;
        
Bitmap&                    Rotate90Selfbool clockwise true );

        
//////////////////////////////////////////////////////////////////////////
        // Transparency and mask

        
void                    CreateMaskFromBitmap( const BitmapmaskColour maskColour );
        
void                    CreateMaskFromColourColour mask );
        
void                    DeleteMaskvoid );

        
bool                    HasAlphavoid ) const;
        
bool                    HasMaskvoid ) const;
        
bool                    IsTransparent(
                                    
size_t                x
                                    
size_t                y
                                    
uchar                threshold 128 ) const;

        
void                    ConvertAlphaToMaskuchar threshold 128 );
        
void                    InitAlphavoid );

        
Colour                    GetMaskColourvoid ) const;
        
uchar                    GetMaskRedvoid ) const;
        
uchar                    GetMaskGreenvoid ) const;
        
uchar                    GetMaskBluevoid ) const;

        
//////////////////////////////////////////////////////////////////////////
        // Pixels

        
uchar                    GetAlphasize_t xsize_t y ) const;
        
Colour                    GetColoursize_t xsize_t y ) const;
        
uchar                    GetRedsize_t xsize_t y ) const;
        
uchar                    GetGreensize_t xsize_t y ) const;
        
uchar                    GetBluesize_t xsize_t y ) const;

        
void                    ReplaceColour c1Colour c2 );
        
void                    Replace
                                    
uchar r1uchar g1uchar b1,
                                    
uchar r2uchar g2uchar b2 );

        
void                    SetAlpha
                                    
size_t                x
                                    
size_t                y,
                                    
uchar                value );

        
void                    SetColour
                                    
size_t                x
                                    
size_t                y,
                                    
Colour                value );

        const 
uchar*            GetDatavoid ) const;

public:
//////////////////////////////////////////////////////////////////////////

        //////////////////////////////////////////////////////////////////////////
        // Operators

        
Bitmap&                    operator=( const Bitmapvalue );
        
bool                    operator==( const Bitmapvalue ) const;
  
protected:
//////////////////////////////////////////////////////////////////////////

        
BitmapData*                mpData;
}; 
как всегда форматирование побилось

поддерживаются GIF, PNG, BMP, XPM, TGA, JPEG, PCX, TIFF, загрузка и сохранение в файл/буффер, базовые фильтры - все остальные будут реализованы отдельно, работа с альфа-каналом и маской, данный класс используется везде где надо хранить и передавать изображения( например иконки для gui )

может у кого-то есть предложения по данному классу( например чего-то не хватает )
__________________
- Слава Україні! - закричали они, вместо приветствия.
- Что это за фашизм?! - возмутился журналист Гундырев. - Откуда у них столько ненависти к русским?

Последний раз редактировалось Lester, 25.01.2009 в 00:21.
Lester вне форума  
Ответить с цитированием