OpenGL 加载透明纹理
一、编译LPNG,ZLIB
依然是以前的老一套,在此不作过多赘述
将编译好的
加到工程中
可以参考https://blog.youkuaiyun.com/liuyez123/article/details/50629906
二、读取PNG
LPNG有示例,我直接拿来用了
image
namespace image{
class png {
public:
png();
~png();
long load(const ::std::string &path);
public:
int width;
int height;
png_byte color_type;
png_byte bit_depth;
std::unique_ptr<unsigned char> data;
};
}
long image::png::load(const ::std::string &path)
{
unsigned char header[8]; // 8 is the maximum size that can be checked
int x, y;
png_structp png_ptr;
png_infop info_ptr;
int number_of_passes;
/* open file and test for it being a png */
FILE *fp;
fopen_s(&fp, path.c_str(), "rb");
if (!fp)
return -1;
fread(header, 1, 8, fp);
if (png_sig_cmp(header, 0<