CAImage、CAImageView(顯示一張圖片)

2018-09-08 15:51 更新

類說明

CAImage貼圖類,即內(nèi)存中的紋理,主要用于創(chuàng)建貼圖對象,將圖像加載進(jìn)內(nèi)存,是所有有關(guān)貼圖類的基礎(chǔ)。


CAImage 屬性(點(diǎn)擊方法名可查看方法介紹)

屬性說明
PixelFormat像素格式
PixelsWide像素寬
PixelsHigh像素高
ContentSize內(nèi)容大小
ShaderProgram著色程序
Monochrome單色
Data數(shù)據(jù)
DataLenght數(shù)據(jù)長度


CAImage 方法(點(diǎn)擊方法名可查看方法介紹)

方法說明
create創(chuàng)建,默認(rèn)Frame為(0,0,0,0)
createWithImageDataNoCache創(chuàng)建,默認(rèn)沒有緩存
createWithImageData創(chuàng)建,默認(rèn)有緩存
createWithString創(chuàng)建,并指定文本內(nèi)容
getFontHeight獲得字體高度
getStringWidth獲得字體寬度
cutStringByWidth減少字符串的寬度
getStringHeight減少字符串的高度
scaleToNewImageWithImage縮放當(dāng)前圖像做新圖像
scaleToNewImageWithImage縮放當(dāng)前圖像做新圖像
generateMipmapsWithImage生成mipmap圖像
createWithRawDataNoCache創(chuàng)建,并指定Raw Data,默認(rèn)沒有緩存
createWithRawData創(chuàng)建,并指定Raw Data,默認(rèn)沒有緩存
initWithImageFile初始化,并指定其圖像文件
initWithImageFileThreadSafe初始化,并指定其圖像文件(支持子線程)
initWithImageData初始化,并指定其圖像緩存
initWithRawData初始化,并指定其原數(shù)據(jù)
description添加圖像描述
releaseData釋放所有數(shù)據(jù)
releaseData釋放指定數(shù)據(jù)
drawAtPoint基于某個點(diǎn)顯示(大小為圖像大?。?/span>
drawInRect基于某個矩形區(qū)域顯示
initWithETCFile初始化,并指定其ETC文件
stringForFormat格式字符串
saveToFile保存到文件
getImageFileType獲取圖像文件類型
getAspectRatio得到長寬比
detectFormat檢測格式
premultipliedImageData進(jìn)行圖像數(shù)據(jù)
repremultipliedImageData再進(jìn)行圖像數(shù)據(jù)
updateGifImageWithIndex通過index更新GIF圖像
getGifImageIndex獲取GIF圖像的index
getGifImageCounts獲取GIF圖像的參數(shù)
reloadAllImages重新加載所有圖像


CAImageView 屬性(點(diǎn)擊方法名可查看方法介紹)

屬性說明
ImageViewScaleType圖像縮放類型
AnimationImages動畫圖像
AnimationDuration動畫間隔的時間
AnimationRepeatCount動畫重復(fù)次數(shù)


CAImageView 方法(點(diǎn)擊方法名可查看方法介紹)

方法說明
create創(chuàng)建,默認(rèn)Frame為(0,0,0,0)
createWithImage創(chuàng)建,并指定Image
createWithFrame創(chuàng)建,并指定Frame,默認(rèn)Frame為(0,0,0,0)
createWithCenter創(chuàng)建,并指定Center,默認(rèn)Center為(0,0,0,0)
init初始化
initWithImage初始化,并指定其圖像
setImage設(shè)置圖像
getImage獲取圖像
setImageAsyncWithFile異步設(shè)置圖像文件
startAnimating開始動畫
stopAnimating結(jié)束動畫
isAnimating查看圖像動畫


使用方法


//創(chuàng)建一個CAImage
    CAImage* image = CAImage::create("HelloWorld.png");
 
//CAImage函數(shù)
//打印貼圖描述
    CCLog("Description:%s", image->description());
 
//打印像素格式
    CCLog("StringForFormat:%s", image->stringForFormat());
     
//打印像素位深
    CCLog("bitsPerPixelForFormat:%d", image->bitsPerPixelForFormat());
     
//方法一:通過CAImage創(chuàng)建一個CAImageView
    CAImageView* imageView = CAImageView::createWithImage(image);
     
//設(shè)置顯示的范圍(如果不設(shè)置,默認(rèn)不會被顯示出來)
    imageView->setFrame(winRect);
     
//添加到繪制
     this->getView()->addSubview(imageView);
      
//方法二:通過設(shè)置Center創(chuàng)建一個CAImageViewD
     CAImageView* imageView_1 = CAImageView::createWithCenter(DRect(50,50,100,100));
      
//設(shè)置顯示的紋理
     imageView_1->setImage(image);
      
//異步加載
     //imageView_1->setImageAsyncWithFile("source_material/stepper_inc_n.png");
      
//添加到繪制,設(shè)置z軸為1
     this->getView()->insertSubview(imageView_1,1);

        CCLog的打印結(jié)果:

    Description:<CAImage | Name = 3 | Dimensions = 640 x 960 | Coordinates = (1.00, 1.00)>
    StringForFormat:RGB888
    bitsPerPixelForFormat:32

CAImage 屬性說明

PixelFormat

類型:CAImage::PixelFormat

解釋:像素格式。get{}。


PixelsWide

類型:unsigned int

解釋:像素寬。get{}。


PixelsHigh

類型:unsigned int

解釋:像素高。get{}。


ContentSize

類型:DSize

解釋:內(nèi)容大小。get{}。


ShaderProgram

類型:CAGLProgram*

解釋:著色程序。set/get{}。


Monochrome

類型:bool

解釋:單色。is{}。


Data

類型:unsigned char*

解釋:數(shù)據(jù)。get{}。


DataLenght

類型:unsigned long

解釋:數(shù)據(jù)長度。get{}。


CAImage 方法說明

static CAImage* create(const std::string& file);

返回值:static CAImage*

參數(shù):

類型參數(shù)名說明
const std::string&file圖像名

解釋:創(chuàng)建,默認(rèn)Frame為(0,0,0,0)


static CAImage* createWithImageDataNoCache(const unsigned char * data, unsigned long lenght);

返回值:static CAImage*

參數(shù):

類型參數(shù)名說明
const unsigned char *data數(shù)據(jù)
 unsigned longlenght長度

解釋:創(chuàng)建,默認(rèn)沒有緩存


static CAImage* createWithImageData(const unsigned char * data, unsigned long lenght, const std::string& key);

返回值:static CAImage*

參數(shù):

類型參數(shù)名說明
const unsigned char *data數(shù)據(jù)
unsigned longlenght長度
const std::string&key屬性

解釋:創(chuàng)建,默認(rèn)有緩存


static CAImage* createWithString(const char *text, const char *fontName, float fontSize, const DSize& dimensions, CATextAlignment hAlignment, CAVerticalTextAlignment vAlignment, bool isForTextField = false, int iLineSpacing = 0, bool bBold = false, bool bItalics = false, bool bUnderLine = false);

返回值:static CAImage*

參數(shù):

類型參數(shù)名說明
const char*text文字
const char*fontName字體名稱
floatfontSize字體大小
const DSize&dimensions圖像大小
CATextAlignmenthAlignment文本對齊
CAVerticalTextAlignmentvAlignment垂直文本對齊
boolisForTextField = false是否顯示文本框(默認(rèn)不顯示)
intiLineSpacing = 0文本間距(默認(rèn)0)
boolbBold = false是否顯示加粗(默認(rèn)不加粗)
boolbItalics = false是否顯示斜體(默認(rèn)不斜體)
boolbUnderLine = false是否顯示下劃線(默認(rèn)不顯示)

解釋:創(chuàng)建,并指定文本內(nèi)容


static int getFontHeight(const char* pFontName, unsigned long nSize);

返回值:static int

參數(shù):

類型參數(shù)名說明
const char*pFontName字體名字
unsigned longnSize字體大小

解釋:獲得字體高度


static int getStringWidth(const char* pFontName, unsigned long nSize, const std::string& pText); 

返回值:static int

參數(shù):

類型參數(shù)名說明
const char*pFontName字體名字
unsigned longnSize字體大小
const std::string&pText文本內(nèi)容

解釋:獲得字體寬度


static int cutStringByWidth(const char* pFontName, unsigned long nSize, const std::string& text, int iLimitWidth, int& cutWidth);

返回值:static int

參數(shù):

類型參數(shù)名說明
const char*pFontName字體名字
unsigned longnSize字體大小
const std::string&pText文本內(nèi)容
intiLimitWidth最大寬度
int&cutWidth減少的寬度

解釋:減少字符串的寬度


static int getStringHeight(const char* pFontName, unsigned long nSize, const std::string& pText, int iLimitWidth, int iLineSpace = 0, bool bWordWrap = true);

返回值:static int 

參數(shù):

類型參數(shù)名說明
const char*pFontName字體名字
unsigned longnSize字體大小
const std::string&pText文本內(nèi)容
intiLimitWidth最大寬度
intiLineSpace = 0間距
boolbWordWrap = true自動換行

解釋:減少字符串的高度


static CAImage* scaleToNewImageWithImage(CAImage* image, const DSize& size);

返回值:static CAImage*

參數(shù):

類型參數(shù)名說明
CAImage*image圖像
const DSize&
size大小

解釋:縮放當(dāng)前圖像做新圖像


static CAImage* scaleToNewImageWithImage(CAImage* image, float scaleX, float scaleY);

返回值:static CAImage*

參數(shù):

類型參數(shù)名說明
CAImage*image圖像
floatscaleX縮放X軸
floatscaleY縮放Y軸

解釋:縮放當(dāng)前圖像做新圖像


static CAImage* generateMipmapsWithImage(CAImage* image);

返回值:static CAImage*

參數(shù):

類型參數(shù)名說明
CAImage*image圖像

解釋:生成mipmap圖像


static CAImage* createWithRawDataNoCache(const unsigned char * data, const CAImage::PixelFormat& pixelFormat, unsigned int pixelsWide, unsigned int pixelsHigh);

返回值:static CAImage* 

參數(shù):

類型參數(shù)名說明
const unsigned char *data數(shù)據(jù)
const CAImage::PixelFormat&pixelFormat像素格式
unsigned intpixelsWide像素寬
unsigned intpixelsHigh像素高

解釋:創(chuàng)建,并指定Raw Data,默認(rèn)沒有緩存


static CAImage* createWithRawData(const unsigned char * data, const CAImage::PixelFormat& pixelFormat, nsigned int pixelsWide, unsigned int pixelsHigh, const std::string& key);

返回值:static CAImage*

參數(shù):

類型參數(shù)名說明
const unsigned char *data數(shù)據(jù)
const CAImage::PixelFormat&pixelFormat像素格式
unsigned intpixelsWide像素寬
unsigned intpixelsHigh像素高
const std::string&key屬性

解釋:創(chuàng)建,并指定Raw Data,默認(rèn)有緩存


bool initWithImageFile(const std::string& file);

返回值:bool

參數(shù):

類型參數(shù)名說明
const std::string&file圖像名

解釋:初始化,并指定其圖像文件


bool initWithImageFileThreadSafe(const std::string& fullPath);

返回值:bool

參數(shù):

類型參數(shù)名說明
const std::string&fullPath完整路徑

解釋:初始化,并指定其圖像文件(支持子線程)


bool initWithImageData(const unsigned char * data, unsigned long dataLen);

返回值:bool

參數(shù):

類型參數(shù)名說明
const unsigned char *data數(shù)據(jù)
unsigned longdataLen數(shù)據(jù)長度

解釋:初始化,并指定其圖像緩存


bool initWithRawData(const unsigned char * data, const CAImage::PixelFormat& pixelFormat, unsigned int pixelsWide, unsigned int pixelsHigh);

返回值:bool

參數(shù):

類型參數(shù)名說明
const unsigned char *data數(shù)據(jù)
const CAImage::PixelFormat&pixelFormat像素格式
unsigned intpixelsWide像素寬
unsigned int pixelsHigh像素高

解釋:初始化,并指定其原數(shù)據(jù)


const char* description(void);

返回值:const char*

參數(shù):

解釋:獲取圖像描述


void releaseData();

返回值:void

參數(shù):

解釋:釋放所有數(shù)據(jù)


void releaseData(unsigned char ** data);

返回值:void

參數(shù):

類型參數(shù)名說明
unsigned char **data數(shù)據(jù)

解釋:釋放指定數(shù)據(jù)


void drawAtPoint(const DPoint& point);

返回值:void

參數(shù):

類型參數(shù)名說明
const DPoint&point點(diǎn)的位置

解釋:基于某個點(diǎn)顯示(大小為圖像大?。?/span>


void drawInRect(const DPoint& rect);

返回值:void

參數(shù):

類型參數(shù)名說明
const DPoint&rect矩形大小

解釋:基于某個矩形區(qū)域顯示


bool initWithETCFile(const char* file);

返回值:bool

參數(shù):

類型參數(shù)名說明
const char*file文件名

解釋:初始化,并指定其ETC文件


const char* stringForFormat();

返回值:const char*

參數(shù):

解釋:格式字符串


bool saveToFile(const std::string& fullPath, bool bIsToRGB = false);

返回值:bool

 參數(shù):

類型參數(shù)名說明
const std::string&fullPath完全路徑
boolbIsToRGB = false是否用RGB格式保存(默認(rèn)否)

解釋:是否保存成RGB格式


const char* getImageFileType();

返回值:const char*

參數(shù):

解釋:獲取圖像文件類型


float getAspectRatio();

返回值:float

參數(shù):

解釋:得到長寬比


CAImage::Format detectFormat(const unsigned char * data, unsigned long dataLen);

返回值: CAImage::Format

參數(shù):

類型參數(shù)名說明
const unsigned char *data數(shù)據(jù)
unsigned longdataLen數(shù)據(jù)長度

解釋:檢測格式


void premultipliedImageData();

返回值:void

參數(shù):

解釋:進(jìn)行圖像數(shù)據(jù)


void repremultipliedImageData();

返回值:void

參數(shù):

解釋:再進(jìn)行圖像數(shù)據(jù)


void updateGifImageWithIndex(unsigned int index);

返回值:void

參數(shù):

類型參數(shù)名說明
unsigned intindexindex

解釋:通過index更新GIF圖像


unsigned int getGifImageIndex();

返回值:unsigned int

參數(shù):

解釋:獲取GIF圖像的index


unsigned int getGifImageCounts();

返回值:unsigned int

參數(shù):

解釋:獲取GIF圖像的參數(shù)


static void reloadAllImages();

返回值:static void

參數(shù):

解釋:重新加載所有圖像


CAImageView 屬性說明

ImageViewScaleType

類型:CAImageViewScaleType

解釋:圖像縮放類型。set/get{}。


AnimationImages

類型:CAVector<CAImage*>

解釋:動畫圖像。set/get{}。


AnimationDuration

類型:float

解釋:動畫間隔的時間。set/get{}。


AnimationRepeatCount

類型:unsigned int

解釋:動畫重復(fù)次數(shù)。set/get{}。


CAImageView 方法說明

static CAImageView* create();

返回值:static CAImageView*

參數(shù):

解釋:創(chuàng)建,默認(rèn)Frame為(0,0,0,0)


static CAImageView* createWithImage(CAImage* image);

返回值:static CAImageView*

參數(shù):

類型參數(shù)名說明
CAImage*image圖像

解釋:創(chuàng)建,并指定其Image


static CAImageView* createWithFrame(const DRect& rect);

返回值:static CAImageView*

參數(shù):

類型參數(shù)名說明
const DRect&rect區(qū)域大小

解釋:創(chuàng)建,并指定其Frame,默認(rèn)Frame為(0,0,0,0)


static CAImageView* createWithCenter(const DRect& rect);

返回值:static CAImageView*

參數(shù):

類型參數(shù)名說明
const DRect&rect中心點(diǎn)的位置及大小

解釋:創(chuàng)建,并指定其Center,默認(rèn)Center為(0,0,0,0)


virtual bool init(void);

返回值:virtual bool

參數(shù):

解釋:初始化


virtual bool initWithImage(CAImage* image);

返回值:virtual bool

參數(shù):

類型參數(shù)名說明
CAImage*image圖像

解釋:初始化圖像


virtual void setImage(CAImage* image);

返回值:virtual void

參數(shù):

類型參數(shù)名說明
CAImage*image圖像

解釋:設(shè)置圖像


virtual CAImage* getImage(void);

返回值:virtual CAImage*

參數(shù):

解釋:獲取圖像


virtual void setImageAsyncWithFile(const std::string& path);

返回值:virtual void

參數(shù):

類型參數(shù)名說明
const std::string&path路徑

解釋:異步設(shè)置圖像文件


void startAnimating();

返回值:void

參數(shù):

解釋:開始動畫


void stopAnimating();

返回值:void

參數(shù):

解釋:結(jié)束動畫


bool isAnimating();

返回值:bool

參數(shù):

解釋:查看圖像動畫

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號