linux 读取png图片,linux 下 OpenGL 读取 JPG, PNG, TAG 纹理数据
實際讀取圖片的代碼已經上傳到我的資源里面; 下面貼出使用例子(代碼不嚴謹,湊合看):
unsigned char*? esLoadJPG(const char *fileName, int *width, int *height, int *size) { ??? FILE *f = fopen(fileName, "rb"); ??? fseek(f, 0, SEEK_END); ??? *size = ftell(f); ??? fseek(f, 0, SEEK_SET); ??? unsigned char *data = (unsigned char*)malloc(*size); ??? fread(data, 1, *size, f); ??? JpegDecoder dec(data, *size); ??? dec.init(); ??? dec.decodeJpeg(); ??? *width = dec.getW(); ??? *height = dec.getH(); ??? *size = dec.getSize(); ??? unsigned char *buffer = (unsigned char*)malloc(*size); ??? memcpy(buffer, dec.getbmpData(), *size); ??? return buffer; } unsigned char*? esLoadTGA (const char *fileName, int *width, int *height, int *size) { ??? unsigned char *buffer = NULL; ??? FILE *f; ??? unsigned char tgaheader[12]; ??? unsigned char attributes[6]; ??? unsigned int imagesize; ??? f = fopen(fileName, "rb"); ??? if(f == NULL) return NULL; ??? if(fread(&tgaheader, sizeof(tgaheader), 1, f) == 0) ??? { ??????? fclose(f); ??????? return NULL; ??? } ??? if(fread(attributes, sizeof(attributes), 1, f) == 0) ??? { ??????? fclose(f); ??????? return 0; ??? } ??? *width = attributes[1] * 256 + attributes[0]; ??? *height = attributes[3] * 256 + attributes[2]; ??? imagesize = attributes[4] / 8 * *width * *height; ??? *size = imagesize; ??? buffer = (unsigned char*)malloc(imagesize); ??? if (buffer == NULL) ??? { ??????? fclose(f); ??????? return 0; ??? } ??? if(fread(buffer, 1, imagesize, f) != imagesize) ??? { ??????? free(buffer); ??????? return NULL; ??? } ??? fclose(f); ??? return buffer; } unsigned char*? esLoadPNG ( const char *fileName, int *width, int *height, int *size) { ??? FILE *f = fopen(fileName, "rb"); ??? fseek(f, 0, SEEK_END); ??? *size = ftell(f); ??? fseek(f, 0, SEEK_SET); ??? unsigned char *data = (unsigned char*)malloc(*size); ??? fread(data, 1, *size, f); ??? PngDecoder dec(data, *size); ??? dec.init(); ??? dec.decoderPng(); ??? *width = dec.getW(); ??? *height = dec.getH(); ??? *size = dec.getSize(); ??? unsigned char *buffer = (unsigned char*)malloc(*size); ??? memcpy(buffer, dec.getbmpData(), *size); ??? return buffer; }
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的linux 读取png图片,linux 下 OpenGL 读取 JPG, PNG, TAG 纹理数据的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: cpu 型号怎么区分(什么是CPU)
- 下一篇: c语言入门程序下载,简单实用——C语言入
