CAImage、CAImageView(顯示一張圖片)

2018-09-08 15:51 更新

類(lèi)說(shuō)明

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


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

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


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

方法說(shuō)明
create創(chuàng)建,默認(rèn)Frame為(0,0,0,0)
createWithImageDataNoCache創(chuàng)建,默認(rèn)沒(méi)有緩存
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)沒(méi)有緩存
createWithRawData創(chuàng)建,并指定Raw Data,默認(rèn)沒(méi)有緩存
initWithImageFile初始化,并指定其圖像文件
initWithImageFileThreadSafe初始化,并指定其圖像文件(支持子線程)
initWithImageData初始化,并指定其圖像緩存
initWithRawData初始化,并指定其原數(shù)據(jù)
description添加圖像描述
releaseData釋放所有數(shù)據(jù)
releaseData釋放指定數(shù)據(jù)
drawAtPoint基于某個(gè)點(diǎn)顯示(大小為圖像大?。?/span>
drawInRect基于某個(gè)矩形區(qū)域顯示
initWithETCFile初始化,并指定其ETC文件
stringForFormat格式字符串
saveToFile保存到文件
getImageFileType獲取圖像文件類(lèi)型
getAspectRatio得到長(zhǎng)寬比
detectFormat檢測(cè)格式
premultipliedImageData進(jìn)行圖像數(shù)據(jù)
repremultipliedImageData再進(jìn)行圖像數(shù)據(jù)
updateGifImageWithIndex通過(guò)index更新GIF圖像
getGifImageIndex獲取GIF圖像的index
getGifImageCounts獲取GIF圖像的參數(shù)
reloadAllImages重新加載所有圖像


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

屬性說(shuō)明
ImageViewScaleType圖像縮放類(lèi)型
AnimationImages動(dòng)畫(huà)圖像
AnimationDuration動(dòng)畫(huà)間隔的時(shí)間
AnimationRepeatCount動(dòng)畫(huà)重復(fù)次數(shù)


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

方法說(shuō)明
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開(kāi)始動(dòng)畫(huà)
stopAnimating結(jié)束動(dòng)畫(huà)
isAnimating查看圖像動(dòng)畫(huà)


使用方法


//創(chuàng)建一個(gè)CAImage
    CAImage* image = CAImage::create("HelloWorld.png");
 
//CAImage函數(shù)
//打印貼圖描述
    CCLog("Description:%s", image->description());
 
//打印像素格式
    CCLog("StringForFormat:%s", image->stringForFormat());
     
//打印像素位深
    CCLog("bitsPerPixelForFormat:%d", image->bitsPerPixelForFormat());
     
//方法一:通過(guò)CAImage創(chuàng)建一個(gè)CAImageView
    CAImageView* imageView = CAImageView::createWithImage(image);
     
//設(shè)置顯示的范圍(如果不設(shè)置,默認(rèn)不會(huì)被顯示出來(lái))
    imageView->setFrame(winRect);
     
//添加到繪制
     this->getView()->addSubview(imageView);
      
//方法二:通過(guò)設(shè)置Center創(chuàng)建一個(gè)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 屬性說(shuō)明

PixelFormat

類(lèi)型:CAImage::PixelFormat

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


PixelsWide

類(lèi)型:unsigned int

解釋:像素寬。get{}。


PixelsHigh

類(lèi)型:unsigned int

解釋:像素高。get{}。


ContentSize

類(lèi)型:DSize

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


ShaderProgram

類(lèi)型:CAGLProgram*

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


Monochrome

類(lèi)型:bool

解釋:單色。is{}。


Data

類(lèi)型:unsigned char*

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


DataLenght

類(lèi)型:unsigned long

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


CAImage 方法說(shuō)明

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

返回值:static CAImage*

參數(shù):

類(lèi)型參數(shù)名說(shuō)明
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ù):

類(lèi)型參數(shù)名說(shuō)明
const unsigned char *data數(shù)據(jù)
 unsigned longlenght長(zhǎng)度

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


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

返回值:static CAImage*

參數(shù):

類(lèi)型參數(shù)名說(shuō)明
const unsigned char *data數(shù)據(jù)
unsigned longlenght長(zhǎng)度
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ù):

類(lèi)型參數(shù)名說(shuō)明
const char*text文字
const char*fontName字體名稱
floatfontSize字體大小
const DSize&dimensions圖像大小
CATextAlignmenthAlignment文本對(duì)齊
CAVerticalTextAlignmentvAlignment垂直文本對(duì)齊
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ù):

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

解釋:獲得字體高度


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

返回值:static int

參數(shù):

類(lèi)型參數(shù)名說(shuō)明
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ù):

類(lèi)型參數(shù)名說(shuō)明
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ù):

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

解釋:減少字符串的高度


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

返回值:static CAImage*

參數(shù):

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

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


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

返回值:static CAImage*

參數(shù):

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

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


static CAImage* generateMipmapsWithImage(CAImage* image);

返回值:static CAImage*

參數(shù):

類(lèi)型參數(shù)名說(shuō)明
CAImage*image圖像

解釋:生成mipmap圖像


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

返回值:static CAImage* 

參數(shù):

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

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


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

返回值:static CAImage*

參數(shù):

類(lèi)型參數(shù)名說(shuō)明
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ù):

類(lèi)型參數(shù)名說(shuō)明
const std::string&file圖像名

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


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

返回值:bool

參數(shù):

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

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


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

返回值:bool

參數(shù):

類(lèi)型參數(shù)名說(shuō)明
const unsigned char *data數(shù)據(jù)
unsigned longdataLen數(shù)據(jù)長(zhǎng)度

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


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

返回值:bool

參數(shù):

類(lèi)型參數(shù)名說(shuō)明
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ù):

類(lèi)型參數(shù)名說(shuō)明
unsigned char **data數(shù)據(jù)

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


void drawAtPoint(const DPoint& point);

返回值:void

參數(shù):

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

解釋:基于某個(gè)點(diǎn)顯示(大小為圖像大小)


void drawInRect(const DPoint& rect);

返回值:void

參數(shù):

類(lèi)型參數(shù)名說(shuō)明
const DPoint&rect矩形大小

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


bool initWithETCFile(const char* file);

返回值:bool

參數(shù):

類(lèi)型參數(shù)名說(shuō)明
const char*file文件名

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


const char* stringForFormat();

返回值:const char*

參數(shù):

解釋:格式字符串


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

返回值:bool

 參數(shù):

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

解釋:是否保存成RGB格式


const char* getImageFileType();

返回值:const char*

參數(shù):

解釋:獲取圖像文件類(lèi)型


float getAspectRatio();

返回值:float

參數(shù):

解釋:得到長(zhǎng)寬比


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

返回值: CAImage::Format

參數(shù):

類(lèi)型參數(shù)名說(shuō)明
const unsigned char *data數(shù)據(jù)
unsigned longdataLen數(shù)據(jù)長(zhǎng)度

解釋:檢測(cè)格式


void premultipliedImageData();

返回值:void

參數(shù):

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


void repremultipliedImageData();

返回值:void

參數(shù):

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


void updateGifImageWithIndex(unsigned int index);

返回值:void

參數(shù):

類(lèi)型參數(shù)名說(shuō)明
unsigned intindexindex

解釋:通過(guò)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 屬性說(shuō)明

ImageViewScaleType

類(lèi)型:CAImageViewScaleType

解釋:圖像縮放類(lèi)型。set/get{}。


AnimationImages

類(lèi)型:CAVector<CAImage*>

解釋:動(dòng)畫(huà)圖像。set/get{}。


AnimationDuration

類(lèi)型:float

解釋:動(dòng)畫(huà)間隔的時(shí)間。set/get{}。


AnimationRepeatCount

類(lèi)型:unsigned int

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


CAImageView 方法說(shuō)明

static CAImageView* create();

返回值:static CAImageView*

參數(shù):

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


static CAImageView* createWithImage(CAImage* image);

返回值:static CAImageView*

參數(shù):

類(lèi)型參數(shù)名說(shuō)明
CAImage*image圖像

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


static CAImageView* createWithFrame(const DRect& rect);

返回值:static CAImageView*

參數(shù):

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

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


static CAImageView* createWithCenter(const DRect& rect);

返回值:static CAImageView*

參數(shù):

類(lèi)型參數(shù)名說(shuō)明
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ù):

類(lèi)型參數(shù)名說(shuō)明
CAImage*image圖像

解釋:初始化圖像


virtual void setImage(CAImage* image);

返回值:virtual void

參數(shù):

類(lèi)型參數(shù)名說(shuō)明
CAImage*image圖像

解釋:設(shè)置圖像


virtual CAImage* getImage(void);

返回值:virtual CAImage*

參數(shù):

解釋:獲取圖像


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

返回值:virtual void

參數(shù):

類(lèi)型參數(shù)名說(shuō)明
const std::string&path路徑

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


void startAnimating();

返回值:void

參數(shù):

解釋:開(kāi)始動(dòng)畫(huà)


void stopAnimating();

返回值:void

參數(shù):

解釋:結(jié)束動(dòng)畫(huà)


bool isAnimating();

返回值:bool

參數(shù):

解釋:查看圖像動(dòng)畫(huà)

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)