X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=common%2Fimage.hpp;h=7dd18c1225e821a0286ea11e0a73989be57acc51;hb=bd4937e47675d600b13174773dc05ab1129c266b;hp=6316791bba210763dd79d10ed52afd6a20bfef9c;hpb=48412ffde3dd4710c96d5e8d9cfdf1789e4d703a;p=apitrace diff --git a/common/image.hpp b/common/image.hpp index 6316791..7dd18c1 100644 --- a/common/image.hpp +++ b/common/image.hpp @@ -78,7 +78,7 @@ public: } inline signed stride(void) const { - return flipped ? -width*channels : width*channels; + return flipped ? -(signed)(width*channels) : width*channels; } bool writeBMP(const char *filename) const; @@ -94,20 +94,28 @@ public: return true; } - bool writePNG(const char *filename) const; + bool + writePNG(std::ostream &os) const; + + inline bool + writePNG(const char *filename) const { + std::ofstream os(filename, std::ofstream::binary); + if (!os) { + return false; + } + return writePNG(os); + } double compare(Image &ref); }; -bool writePixelsToBuffer(unsigned char *pixels, - unsigned w, unsigned h, unsigned numChannels, - bool flipped, - char **buffer, - int *size); Image * readPNG(const char *filename); +const char * +readPNMHeader(const char *buffer, size_t size, unsigned *channels, unsigned *width, unsigned *height); + } /* namespace image */