X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=image%2Fimage.hpp;h=8e6b51fdf6758cfa0eb7fab43d34caa52d6d2412;hb=5220b4974a1b93df3f916cdac74b65fae6a9177b;hp=1b21acd1e2e5a51d004b6df605ed7a68cde520ae;hpb=16bfd14f69f131ae53b1f3d1b5af87a54d95bc38;p=apitrace diff --git a/image/image.hpp b/image/image.hpp index 1b21acd..8e6b51f 100644 --- a/image/image.hpp +++ b/image/image.hpp @@ -49,6 +49,7 @@ public: unsigned height; unsigned channels; ChannelType channelType; + unsigned bytesPerChannel; unsigned bytesPerPixel; // Flipped vertically or not @@ -62,7 +63,8 @@ public: height(h), channels(c), channelType(t), - bytesPerPixel(channels * (t == TYPE_FLOAT ? 4 : 1)), + bytesPerChannel(t == TYPE_FLOAT ? 4 : 1), + bytesPerPixel(channels * bytesPerChannel), flipped(f), pixels(new unsigned char[h*w*bytesPerPixel]) {} @@ -126,8 +128,20 @@ readPNG(std::istream &is); Image * readPNG(const char *filename); + +struct PNMInfo +{ + unsigned width; + unsigned height; + unsigned channels; + ChannelType channelType; +}; + const char * -readPNMHeader(const char *buffer, size_t size, unsigned *channels, unsigned *width, unsigned *height); +readPNMHeader(const char *buffer, size_t size, PNMInfo &info); + +Image * +readPNM(const char *buffer, size_t bufferSize); } /* namespace image */