| 11 | inline void fwrite_ushort(unsigned short v, std::fstream& file) { file.write((const char*)&v,sizeof(v)); } |
| 12 | |
| 13 | void storeTga(const Ref<Image>& img, const FileName& fileName) |
| 14 | { |
| 15 | /* open file for reading */ |
| 16 | std::fstream file; |
| 17 | file.exceptions (std::fstream::failbit | std::fstream::badbit); |
| 18 | file.open (fileName.c_str(), std::fstream::out | std::fstream::binary); |
| 19 | |
| 20 | fwrite_uchar(0x00, file); |
| 21 | fwrite_uchar(0x00, file); |
| 22 | fwrite_uchar(0x02, file); |
| 23 | fwrite_ushort(0x0000, file); |
| 24 | fwrite_ushort(0x0000, file); |
| 25 | fwrite_uchar(0x00, file); |
| 26 | fwrite_ushort(0x0000, file); |
| 27 | fwrite_ushort(0x0000, file); |
| 28 | fwrite_ushort((unsigned short)img->width , file); |
| 29 | fwrite_ushort((unsigned short)img->height, file); |
| 30 | fwrite_uchar(0x18, file); |
| 31 | fwrite_uchar(0x20, file); |
| 32 | |
| 33 | for (size_t y=0; y<img->height; y++) { |
| 34 | for (size_t x=0; x<img->width; x++) { |
| 35 | Color c = img->get(x,y); |
| 36 | fwrite_uchar((unsigned char)(clamp(c.b)*255.0f), file); |
| 37 | fwrite_uchar((unsigned char)(clamp(c.g)*255.0f), file); |
| 38 | fwrite_uchar((unsigned char)(clamp(c.r)*255.0f), file); |
| 39 | } |
| 40 | } |
| 41 | } |
| 42 | |
| 43 | inline unsigned char fread_uchar (std::fstream& file) { unsigned char v; file.read((char*)&v,sizeof(v)); return v; } |
| 44 | inline unsigned short fread_ushort(std::fstream& file) { unsigned short v; file.read((char*)&v,sizeof(v)); return v; } |
no test coverage detected