ckTex获取png格式图片的像素颜色值

1. ckTex中的接口误区:getImage()

    歧义:获取纹理的像素(只有像素值)数据区域地址

    实际:获取纹理的所有数据(包含图片信息)首地址。

 

2. ckTex在资源加载、物件渲染时获取png图片的内容不一致。

    a. 资源加载时,获取的ckTex是整个图片信息(图片格式信息、头信息、数据信息以及一些其他描述)。

    b. 物件渲染时,实际能用上的也只有图片的像素信息。

 

3. 通过png.h中提供的接口获取png的像素信息。catcake中所有的png图片info、image信息的获取都是通过ck_low_level_util_lib文件中的readPNG接口获取信息。

    a. ckUtils::readPNGInfo、ckUtils::readPNGImage这两个函数的实现部分都调用了ck_low_level_util_lib::readPNG,只是提供的参数不同,计算的内容也不同。只要有提供buf值,就能够获取到PNG图片的像素值。只是ckTex没有保存像素值。

    b. 解决方案:在ckTex中提供getPixels(),第一次调用getPixels()时获取png像素值,之后就沿用第一次获取到的像素值。也可以添加限制,能够强制重新获取像素值。

    c. 解析png像素值的过程,可从ckTex::expandAndRegisterTexture_png()中抽取出。

    d. 注意事项:切勿直接修改ck_low_level_util_lib::readPNG,虽然能够提供实现,但是尽量避免修改底层。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值