Exiv2
tgaimage.hpp
Go to the documentation of this file.
1 // ***************************************************************** -*- C++ -*-
2 /*
3  * Copyright (C) 2004-2018 Exiv2 authors
4  * This program is part of the Exiv2 distribution.
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, 5th Floor, Boston, MA 02110-1301 USA.
19  */
29 #ifndef TGAIMAGE_HPP_
30 #define TGAIMAGE_HPP_
31 
32 // *****************************************************************************
33 #include "exiv2lib_export.h"
34 
35 // included header files
36 #include "image.hpp"
37 
38 // *****************************************************************************
39 // namespace extensions
40 namespace Exiv2 {
41 
42 // *****************************************************************************
43 // class definitions
44 
45  // Add TARGA to the supported image formats
46  namespace ImageType {
47  const int tga = 13;
48  }
49 
54  class EXIV2API TgaImage : public Image {
56 
57  TgaImage(const TgaImage& rhs);
60  TgaImage& operator=(const TgaImage& rhs);
62 
63  public:
65 
66 
78  explicit TgaImage(BasicIo::AutoPtr io);
80 
82 
83  void readMetadata();
88  void writeMetadata();
93  void setExifData(const ExifData& exifData);
98  void setIptcData(const IptcData& iptcData);
103  void setComment(const std::string& comment);
105 
107 
108  std::string mimeType() const;
110 
111  }; // class TgaImage
112 
113 // *****************************************************************************
114 // template, inline and free functions
115 
116  // These could be static private functions on Image subclasses but then
117  // ImageFactory needs to be made a friend.
123  EXIV2API Image::AutoPtr newTgaInstance(BasicIo::AutoPtr io, bool create);
124 
126  EXIV2API bool isTgaType(BasicIo& iIo, bool advance);
127 
128 } // namespace Exiv2
129 
130 #endif // #ifndef TGAIMAGE_HPP_
tgaimage.hpp
Truevision TARGA v2 image, implemented using the following references: Truevision TGA page on Wikiped...
Exiv2::BasicIo::error
virtual int error() const =0
Returns 0 if the IO source is in a valid state, otherwise nonzero.
Exiv2::IoCloser
Utility class that closes a BasicIo instance upon destruction. Meant to be used as a stack variable i...
Definition: basicio.hpp:264
Exiv2::TgaImage::readMetadata
void readMetadata()
Read all metadata supported by a specific image format from the image. Before this method is called,...
Definition: tgaimage.cpp:72
Exiv2::comment
@ comment
Exiv2 type for the Exif user comment.
Definition: types.hpp:150
Exiv2::strError
EXIV2API std::string strError()
Return a system error message and the error code (errno). See strerror(3).
Definition: futils.cpp:352
Exiv2::isTgaType
EXIV2API bool isTgaType(BasicIo &iIo, bool advance)
Check if the file iIo is a Targa v2 image.
Definition: tgaimage.cpp:138
Exiv2::Image::pixelHeight_
int pixelHeight_
image pixel height
Definition: image.hpp:495
Exiv2::Image::clearMetadata
virtual void clearMetadata()
Erase all buffered metadata. Metadata is not removed from the actual image until the writeMetadata() ...
Definition: image.cpp:561
Exiv2::TgaImage
Class to access raw TARGA images. This is just a stub - we only read width and height.
Definition: tgaimage.hpp:54
Exiv2::getShort
EXIV2API int16_t getShort(const byte *buf, ByteOrder byteOrder)
Read a 2 byte signed short value from the data buffer.
Definition: types.cpp:318
Exiv2::Image::pixelWidth_
int pixelWidth_
image pixel width
Definition: image.hpp:494
Exiv2::BasicIo::eof
virtual bool eof() const =0
Returns true if the IO position has reached the end, otherwise false.
Exiv2::BasicIo::read
virtual DataBuf read(long rcount)=0
Read data from the IO source. Reading starts at the current IO position and the position is advanced ...
Exiv2
Provides classes and functions to encode and decode Exif and Iptc data. The libexiv2 API consists of ...
Definition: asfvideo.hpp:36
Exiv2::TgaImage::setIptcData
void setIptcData(const IptcData &iptcData)
Todo: Not supported yet(?). Calling this function will throw an instance of Error(kerInvalidSettingFo...
Definition: tgaimage.cpp:60
image.hpp
Exiv2::BasicIo::path
virtual std::string path() const =0
Return the path to the IO resource. Often used to form comprehensive error messages where only a Basi...
Exiv2::TgaImage::mimeType
std::string mimeType() const
Return the MIME type of the image.
Definition: tgaimage.cpp:49
Exiv2::Image::io_
BasicIo::AutoPtr io_
Image data IO pointer.
Definition: image.hpp:487
Exiv2::Image::AutoPtr
std::auto_ptr< Image > AutoPtr
Image auto_ptr type.
Definition: image.hpp:84
Exiv2::BasicIo::AutoPtr
std::auto_ptr< BasicIo > AutoPtr
BasicIo auto_ptr type.
Definition: basicio.hpp:58
Exiv2::TgaImage::writeMetadata
void writeMetadata()
Todo: Write metadata back to the image. This method is not yet(?) implemented. Calling it will throw ...
Definition: tgaimage.cpp:120
Exiv2::Error
BasicError< char > Error
Error class used for exceptions (std::string based)
Definition: error.hpp:324
Exiv2::IptcData
A container for IPTC data. This is a top-level class of the Exiv2 library.
Definition: iptc.hpp:173
Exiv2::ImageType::tga
const int tga
Truevision TARGA (tga) image type (see class TgaImage)
Definition: tgaimage.hpp:47
Exiv2::string
@ string
IPTC string type.
Definition: types.hpp:147
Exiv2::TgaImage::setComment
void setComment(const std::string &comment)
Not supported. Calling this function will throw an instance of Error(kerInvalidSettingForImage).
Definition: tgaimage.cpp:66
Exiv2::BasicIo::tell
virtual long tell() const =0
Get the current IO position.
Exiv2::BasicIo::seek
virtual int seek(long offset, Position pos)=0
Move the current IO position.
Exiv2::BasicIo
An interface for simple binary IO.
Definition: basicio.hpp:55
Exiv2::Image
Abstract base class defining the interface for an image. This is the top-level interface to the Exiv2...
Definition: image.hpp:81
Exiv2::newTgaInstance
EXIV2API Image::AutoPtr newTgaInstance(BasicIo::AutoPtr io, bool create)
Create a new TgaImage instance and return an auto-pointer to it. Caller owns the returned object and ...
Definition: tgaimage.cpp:128
futils.hpp
Basic file utility functions required by Exiv2.
error.hpp
Error class for exceptions, log message class.
Exiv2::TgaImage::setExifData
void setExifData(const ExifData &exifData)
Todo: Not supported yet(?). Calling this function will throw an instance of Error(kerInvalidSettingFo...
Definition: tgaimage.cpp:54
Exiv2::ExifData
A container for Exif data. This is a top-level class of the Exiv2 library. The container holds Exifda...
Definition: exif.hpp:434