From 90aa00718804c7087607cc563bfa4e75c242d545 Mon Sep 17 00:00:00 2001 From: Kevin Backhouse Date: Fri, 18 Feb 2022 22:17:32 +0000 Subject: [PATCH] Convert type of pixelHeight/pixelWidth to platform-independent uint32_t. --- include/exiv2/bmffimage.hpp | 4 ++-- include/exiv2/cr2image.hpp | 4 ++-- include/exiv2/crwimage.hpp | 4 ++-- include/exiv2/image.hpp | 8 ++++---- include/exiv2/metadatum.hpp | 8 +++++++- include/exiv2/mrwimage.hpp | 4 ++-- include/exiv2/orfimage.hpp | 4 ++-- include/exiv2/pgfimage.hpp | 2 +- include/exiv2/rafimage.hpp | 4 ++-- include/exiv2/rw2image.hpp | 4 ++-- include/exiv2/tiffimage.hpp | 8 ++++---- src/bmffimage.cpp | 12 ++++++------ src/cr2image.cpp | 8 ++++---- src/crwimage.cpp | 8 ++++---- src/image.cpp | 4 ++-- src/mrwimage.cpp | 8 ++++---- src/orfimage.cpp | 8 ++++---- src/pgfimage.cpp | 4 ++-- src/pngchunk_int.cpp | 2 +- src/pngchunk_int.hpp | 4 ++-- src/rafimage.cpp | 8 ++++---- src/rw2image.cpp | 8 ++++---- src/tiffimage.cpp | 8 ++++---- 23 files changed, 71 insertions(+), 65 deletions(-) diff --git a/include/exiv2/bmffimage.hpp b/include/exiv2/bmffimage.hpp index e5f8515b..9630c389 100644 --- a/include/exiv2/bmffimage.hpp +++ b/include/exiv2/bmffimage.hpp @@ -134,8 +134,8 @@ namespace Exiv2 //! @name Accessors //@{ std::string mimeType() const override /* override */; - int pixelWidth() const override; - int pixelHeight() const override; + uint32_t pixelWidth() const override; + uint32_t pixelHeight() const override; //@} Exiv2::ByteOrder endian_{Exiv2::bigEndian}; diff --git a/include/exiv2/cr2image.hpp b/include/exiv2/cr2image.hpp index 7fba1244..2abfc39d 100644 --- a/include/exiv2/cr2image.hpp +++ b/include/exiv2/cr2image.hpp @@ -87,8 +87,8 @@ namespace Exiv2 { //! @name Accessors //@{ std::string mimeType() const override; - int pixelWidth() const override; - int pixelHeight() const override; + uint32_t pixelWidth() const override; + uint32_t pixelHeight() const override; //@} //! @name NOT implemented diff --git a/include/exiv2/crwimage.hpp b/include/exiv2/crwimage.hpp index 83fdf944..991ce1e4 100644 --- a/include/exiv2/crwimage.hpp +++ b/include/exiv2/crwimage.hpp @@ -87,8 +87,8 @@ namespace Exiv2 { //! @name Accessors //@{ std::string mimeType() const override; - int pixelWidth() const override; - int pixelHeight() const override; + uint32_t pixelWidth() const override; + uint32_t pixelHeight() const override; //@} //! @name NOT Implemented diff --git a/include/exiv2/image.hpp b/include/exiv2/image.hpp index 3372fbb5..7229cbc7 100644 --- a/include/exiv2/image.hpp +++ b/include/exiv2/image.hpp @@ -381,11 +381,11 @@ namespace Exiv2 { /*! @brief Return the pixel width of the image. */ - virtual int pixelWidth() const; + virtual uint32_t pixelWidth() const; /*! @brief Return the pixel height of the image. */ - virtual int pixelHeight() const; + virtual uint32_t pixelHeight() const; /*! @brief Returns an ExifData instance containing currently buffered Exif data. @@ -490,8 +490,8 @@ namespace Exiv2 { DataBuf iccProfile_; //!< ICC buffer (binary data) std::string comment_; //!< User comment std::string xmpPacket_; //!< XMP packet - int pixelWidth_; //!< image pixel width - int pixelHeight_; //!< image pixel height + uint32_t pixelWidth_; //!< image pixel width + uint32_t pixelHeight_; //!< image pixel height NativePreviewList nativePreviews_; //!< list of native previews //! Return tag name for given tag id. diff --git a/include/exiv2/metadatum.hpp b/include/exiv2/metadatum.hpp index 925e39c5..37c3a8e0 100644 --- a/include/exiv2/metadatum.hpp +++ b/include/exiv2/metadatum.hpp @@ -218,11 +218,17 @@ namespace Exiv2 { */ virtual std::string toString(long n) const =0; /*! - @brief Return the n-th component of the value converted to long. + @brief Return the n-th component of the value converted to int64_t. The return value is -1 if the value is not set and the behaviour of the method is undefined if there is no n-th component. */ virtual int64_t toInt64(long n =0) const =0; + /*! + @brief Return the n-th component of the value converted to uint32_t. + */ + uint32_t toUint32(long n =0) const { + return static_cast(toInt64(n)); + } /*! @brief Return the n-th component of the value converted to float. The return value is -1 if the value is not set and the behaviour diff --git a/include/exiv2/mrwimage.hpp b/include/exiv2/mrwimage.hpp index c278b32f..6801ee06 100644 --- a/include/exiv2/mrwimage.hpp +++ b/include/exiv2/mrwimage.hpp @@ -95,8 +95,8 @@ namespace Exiv2 { //! @name Accessors //@{ std::string mimeType() const override; - int pixelWidth() const override; - int pixelHeight() const override; + uint32_t pixelWidth() const override; + uint32_t pixelHeight() const override; //@} }; // class MrwImage diff --git a/include/exiv2/orfimage.hpp b/include/exiv2/orfimage.hpp index 319e05f1..bec350da 100644 --- a/include/exiv2/orfimage.hpp +++ b/include/exiv2/orfimage.hpp @@ -82,8 +82,8 @@ namespace Exiv2 { //! @name Accessors //@{ std::string mimeType() const override; - int pixelWidth() const override; - int pixelHeight() const override; + uint32_t pixelWidth() const override; + uint32_t pixelHeight() const override; //@} }; // class OrfImage diff --git a/include/exiv2/pgfimage.hpp b/include/exiv2/pgfimage.hpp index 0099dd4f..ed05558a 100644 --- a/include/exiv2/pgfimage.hpp +++ b/include/exiv2/pgfimage.hpp @@ -96,7 +96,7 @@ namespace Exiv2 //! Read PGF Header size encoded in 32 bits integer. uint32_t readPgfHeaderSize(BasicIo& iIo) const; //! Read header structure. - DataBuf readPgfHeaderStructure(BasicIo& iIo, int& width, int& height) const; + DataBuf readPgfHeaderStructure(BasicIo& iIo, uint32_t& width, uint32_t& height) const; //@} }; // class PgfImage diff --git a/include/exiv2/rafimage.hpp b/include/exiv2/rafimage.hpp index cab4b898..09386a53 100644 --- a/include/exiv2/rafimage.hpp +++ b/include/exiv2/rafimage.hpp @@ -93,8 +93,8 @@ namespace Exiv2 { //! @name Accessors //@{ std::string mimeType() const override; - int pixelWidth() const override; - int pixelHeight() const override; + uint32_t pixelWidth() const override; + uint32_t pixelHeight() const override; //@} //! @name NOT implemented diff --git a/include/exiv2/rw2image.hpp b/include/exiv2/rw2image.hpp index 2e3c3948..73dccea3 100644 --- a/include/exiv2/rw2image.hpp +++ b/include/exiv2/rw2image.hpp @@ -86,8 +86,8 @@ namespace Exiv2 { //! @name Accessors //@{ std::string mimeType() const override; - int pixelWidth() const override; - int pixelHeight() const override; + uint32_t pixelWidth() const override; + uint32_t pixelHeight() const override; //@} //! @name NOT implemented diff --git a/include/exiv2/tiffimage.hpp b/include/exiv2/tiffimage.hpp index 75e41a94..9af0dc20 100644 --- a/include/exiv2/tiffimage.hpp +++ b/include/exiv2/tiffimage.hpp @@ -83,8 +83,8 @@ namespace Exiv2 { //! @name Accessors //@{ std::string mimeType() const override; - int pixelWidth() const override; - int pixelHeight() const override; + uint32_t pixelWidth() const override; + uint32_t pixelHeight() const override; //@} //! @name NOT Implemented @@ -105,8 +105,8 @@ namespace Exiv2 { // DATA mutable std::string primaryGroup_; //!< The primary group mutable std::string mimeType_; //!< The MIME type - mutable int64_t pixelWidthPrimary_; //!< Width of the primary image in pixels - mutable int64_t pixelHeightPrimary_; //!< Height of the primary image in pixels + mutable uint32_t pixelWidthPrimary_; //!< Width of the primary image in pixels + mutable uint32_t pixelHeightPrimary_; //!< Height of the primary image in pixels }; // class TiffImage diff --git a/src/bmffimage.cpp b/src/bmffimage.cpp index 82066ebc..1598ca23 100644 --- a/src/bmffimage.cpp +++ b/src/bmffimage.cpp @@ -157,20 +157,20 @@ namespace Exiv2 } } - int BmffImage::pixelWidth() const + uint32_t BmffImage::pixelWidth() const { auto imageWidth = exifData_.findKey(Exiv2::ExifKey("Exif.Photo.PixelXDimension")); if (imageWidth != exifData_.end() && imageWidth->count() > 0) { - return imageWidth->toInt64(); + return imageWidth->toUint32(); } return pixelWidth_; } - int BmffImage::pixelHeight() const + uint32_t BmffImage::pixelHeight() const { auto imageHeight = exifData_.findKey(Exiv2::ExifKey("Exif.Photo.PixelYDimension")); if (imageHeight != exifData_.end() && imageHeight->count() > 0) { - return imageHeight->toInt64(); + return imageHeight->toUint32(); } return pixelHeight_; } @@ -406,9 +406,9 @@ namespace Exiv2 case TAG_ispe: { enforce(data.size() - skip >= 12, Exiv2::kerCorruptedMetadata); skip += 4; - int width = data.read_uint32(skip, endian_); + uint32_t width = data.read_uint32(skip, endian_); skip += 4; - int height = data.read_uint32(skip, endian_); + uint32_t height = data.read_uint32(skip, endian_); skip += 4; if ( bTrace ) { out << "pixelWidth_, pixelHeight_ = " << Internal::stringFormat("%d, %d", width, height); diff --git a/src/cr2image.cpp b/src/cr2image.cpp index cc5a3fac..a79c569a 100644 --- a/src/cr2image.cpp +++ b/src/cr2image.cpp @@ -56,20 +56,20 @@ namespace Exiv2 { return "image/x-canon-cr2"; } - int Cr2Image::pixelWidth() const + uint32_t Cr2Image::pixelWidth() const { auto imageWidth = exifData_.findKey(Exiv2::ExifKey("Exif.Photo.PixelXDimension")); if (imageWidth != exifData_.end() && imageWidth->count() > 0) { - return imageWidth->toInt64(); + return imageWidth->toUint32(); } return 0; } - int Cr2Image::pixelHeight() const + uint32_t Cr2Image::pixelHeight() const { auto imageHeight = exifData_.findKey(Exiv2::ExifKey("Exif.Photo.PixelYDimension")); if (imageHeight != exifData_.end() && imageHeight->count() > 0) { - return imageHeight->toInt64(); + return imageHeight->toUint32(); } return 0; } diff --git a/src/crwimage.cpp b/src/crwimage.cpp index fde95cad..5309725c 100644 --- a/src/crwimage.cpp +++ b/src/crwimage.cpp @@ -62,20 +62,20 @@ namespace Exiv2 { return "image/x-canon-crw"; } - int CrwImage::pixelWidth() const + uint32_t CrwImage::pixelWidth() const { auto widthIter = exifData_.findKey(Exiv2::ExifKey("Exif.Photo.PixelXDimension")); if (widthIter != exifData_.end() && widthIter->count() > 0) { - return widthIter->toInt64(); + return widthIter->toUint32(); } return 0; } - int CrwImage::pixelHeight() const + uint32_t CrwImage::pixelHeight() const { auto heightIter = exifData_.findKey(Exiv2::ExifKey("Exif.Photo.PixelYDimension")); if (heightIter != exifData_.end() && heightIter->count() > 0) { - return heightIter->toInt64(); + return heightIter->toUint32(); } return 0; } diff --git a/src/image.cpp b/src/image.cpp index 5dd7e30d..fd6322f9 100644 --- a/src/image.cpp +++ b/src/image.cpp @@ -691,12 +691,12 @@ namespace Exiv2 { return byteOrder_; } - int Image::pixelWidth() const + uint32_t Image::pixelWidth() const { return pixelWidth_; } - int Image::pixelHeight() const + uint32_t Image::pixelHeight() const { return pixelHeight_; } diff --git a/src/mrwimage.cpp b/src/mrwimage.cpp index 63aa414b..81068cb0 100644 --- a/src/mrwimage.cpp +++ b/src/mrwimage.cpp @@ -49,20 +49,20 @@ namespace Exiv2 { return "image/x-minolta-mrw"; } - int MrwImage::pixelWidth() const + uint32_t MrwImage::pixelWidth() const { auto imageWidth = exifData_.findKey(Exiv2::ExifKey("Exif.Image.ImageWidth")); if (imageWidth != exifData_.end() && imageWidth->count() > 0) { - return imageWidth->toInt64(); + return imageWidth->toUint32(); } return 0; } - int MrwImage::pixelHeight() const + uint32_t MrwImage::pixelHeight() const { auto imageHeight = exifData_.findKey(Exiv2::ExifKey("Exif.Image.ImageLength")); if (imageHeight != exifData_.end() && imageHeight->count() > 0) { - return imageHeight->toInt64(); + return imageHeight->toUint32(); } return 0; } diff --git a/src/orfimage.cpp b/src/orfimage.cpp index d6ae7a30..76f48660 100644 --- a/src/orfimage.cpp +++ b/src/orfimage.cpp @@ -54,20 +54,20 @@ namespace Exiv2 { return "image/x-olympus-orf"; } - int OrfImage::pixelWidth() const + uint32_t OrfImage::pixelWidth() const { auto imageWidth = exifData_.findKey(Exiv2::ExifKey("Exif.Image.ImageWidth")); if (imageWidth != exifData_.end() && imageWidth->count() > 0) { - return imageWidth->toInt64(); + return imageWidth->toUint32(); } return 0; } - int OrfImage::pixelHeight() const + uint32_t OrfImage::pixelHeight() const { auto imageHeight = exifData_.findKey(Exiv2::ExifKey("Exif.Image.ImageLength")); if (imageHeight != exifData_.end() && imageHeight->count() > 0) { - return imageHeight->toInt64(); + return imageHeight->toUint32(); } return 0; } diff --git a/src/pgfimage.cpp b/src/pgfimage.cpp index 234a896d..e21f0817 100644 --- a/src/pgfimage.cpp +++ b/src/pgfimage.cpp @@ -187,7 +187,7 @@ namespace Exiv2 { readPgfHeaderSize(*io_); - int w = 0, h = 0; + uint32_t w = 0, h = 0; DataBuf header = readPgfHeaderStructure(*io_, w, h); auto img = ImageFactory::create(ImageType::png); @@ -278,7 +278,7 @@ namespace Exiv2 { return headerSize; } // PgfImage::readPgfHeaderSize - DataBuf PgfImage::readPgfHeaderStructure(BasicIo& iIo, int& width, int& height) const + DataBuf PgfImage::readPgfHeaderStructure(BasicIo& iIo, uint32_t& width, uint32_t& height) const { DataBuf header(16); long bufRead = iIo.read(header.data(), header.size()); diff --git a/src/pngchunk_int.cpp b/src/pngchunk_int.cpp index 3f498f64..33a013e6 100644 --- a/src/pngchunk_int.cpp +++ b/src/pngchunk_int.cpp @@ -65,7 +65,7 @@ namespace Exiv2 { namespace Internal { - void PngChunk::decodeIHDRChunk(const DataBuf& data, int* outWidth, int* outHeight) + void PngChunk::decodeIHDRChunk(const DataBuf& data, uint32_t* outWidth, uint32_t* outHeight) { assert(data.size() >= 8); diff --git a/src/pngchunk_int.hpp b/src/pngchunk_int.hpp index 018eae67..66824888 100644 --- a/src/pngchunk_int.hpp +++ b/src/pngchunk_int.hpp @@ -68,8 +68,8 @@ namespace Exiv2 { @param outHeight Integer pointer to be set to the height of the image. */ static void decodeIHDRChunk(const DataBuf& data, - int* outWidth, - int* outHeight); + uint32_t* outWidth, + uint32_t* outHeight); /*! @brief Decode PNG tEXt, zTXt, or iTXt chunk data from \em pImage passed by data buffer diff --git a/src/rafimage.cpp b/src/rafimage.cpp index 79678ad9..c4258510 100644 --- a/src/rafimage.cpp +++ b/src/rafimage.cpp @@ -51,20 +51,20 @@ namespace Exiv2 { return "image/x-fuji-raf"; } - int RafImage::pixelWidth() const + uint32_t RafImage::pixelWidth() const { auto widthIter = exifData_.findKey(Exiv2::ExifKey("Exif.Photo.PixelXDimension")); if (widthIter != exifData_.end() && widthIter->count() > 0) { - return widthIter->toInt64(); + return widthIter->toUint32(); } return 0; } - int RafImage::pixelHeight() const + uint32_t RafImage::pixelHeight() const { auto heightIter = exifData_.findKey(Exiv2::ExifKey("Exif.Photo.PixelYDimension")); if (heightIter != exifData_.end() && heightIter->count() > 0) { - return heightIter->toInt64(); + return heightIter->toUint32(); } return 0; } diff --git a/src/rw2image.cpp b/src/rw2image.cpp index c1ce456f..0d56216d 100644 --- a/src/rw2image.cpp +++ b/src/rw2image.cpp @@ -51,22 +51,22 @@ namespace Exiv2 { return "image/x-panasonic-rw2"; } - int Rw2Image::pixelWidth() const + uint32_t Rw2Image::pixelWidth() const { auto imageWidth = exifData_.findKey(Exiv2::ExifKey("Exif.PanasonicRaw.SensorWidth")); if (imageWidth != exifData_.end() && imageWidth->count() > 0) { - return imageWidth->toInt64(); + return imageWidth->toUint32(); } return 0; } - int Rw2Image::pixelHeight() const + uint32_t Rw2Image::pixelHeight() const { auto imageHeight = exifData_.findKey(Exiv2::ExifKey("Exif.PanasonicRaw.SensorHeight")); if (imageHeight != exifData_.end() && imageHeight->count() > 0) { - return imageHeight->toInt64(); + return imageHeight->toUint32(); } return 0; } diff --git a/src/tiffimage.cpp b/src/tiffimage.cpp index 84a6ef69..1732f665 100644 --- a/src/tiffimage.cpp +++ b/src/tiffimage.cpp @@ -134,7 +134,7 @@ namespace Exiv2 { return primaryGroup_; } - int TiffImage::pixelWidth() const + uint32_t TiffImage::pixelWidth() const { if (pixelWidthPrimary_ != 0) { return pixelWidthPrimary_; @@ -143,12 +143,12 @@ namespace Exiv2 { ExifKey key(std::string("Exif.") + primaryGroup() + std::string(".ImageWidth")); auto imageWidth = exifData_.findKey(key); if (imageWidth != exifData_.end() && imageWidth->count() > 0) { - pixelWidthPrimary_ = imageWidth->toInt64(); + pixelWidthPrimary_ = imageWidth->toUint32(); } return pixelWidthPrimary_; } - int TiffImage::pixelHeight() const + uint32_t TiffImage::pixelHeight() const { if (pixelHeightPrimary_ != 0) { return pixelHeightPrimary_; @@ -157,7 +157,7 @@ namespace Exiv2 { ExifKey key(std::string("Exif.") + primaryGroup() + std::string(".ImageLength")); auto imageHeight = exifData_.findKey(key); if (imageHeight != exifData_.end() && imageHeight->count() > 0) { - pixelHeightPrimary_ = imageHeight->toInt64(); + pixelHeightPrimary_ = imageHeight->toUint32(); } return pixelHeightPrimary_; }