summaryrefslogtreecommitdiff
path: root/src/im_format_tiff.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/im_format_tiff.cpp')
-rw-r--r--src/im_format_tiff.cpp47
1 files changed, 28 insertions, 19 deletions
diff --git a/src/im_format_tiff.cpp b/src/im_format_tiff.cpp
index 98467f9..1c55a55 100644
--- a/src/im_format_tiff.cpp
+++ b/src/im_format_tiff.cpp
@@ -3,7 +3,7 @@
*
* See Copyright Notice in im_lib.h
* See libTIFF Copyright Notice in tiff.h
- * $Id: im_format_tiff.cpp,v 1.1 2008/10/17 06:10:16 scuri Exp $
+ * $Id: im_format_tiff.cpp,v 1.2 2008/12/03 15:45:34 scuri Exp $
*/
#include "im_format.h"
@@ -590,7 +590,7 @@ static void iTIFFWriteAttributes(TIFF* tiff, imAttribTable* attrib_table)
iTIFFWriteCustomTags(tiff, attrib_table);
}
-class imFormatTIFF: public imFormat
+class imFileFormatTIFF: public imFileFormatBase
{
TIFF* tiff;
int invert, // must invert black and white reference
@@ -606,6 +606,22 @@ class imFormatTIFF: public imFormat
int ReadTileline(void* line_buffer, int row, int plane);
public:
+ imFileFormatTIFF(const imFormat* _iformat): imFileFormatBase(_iformat) {}
+ ~imFileFormatTIFF() {}
+
+ int Open(const char* file_name);
+ int New(const char* file_name);
+ void Close();
+ void* Handle(int index);
+ int ReadImageInfo(int index);
+ int ReadImageData(void* data);
+ int WriteImageInfo();
+ int WriteImageData(void* data);
+};
+
+class imFormatTIFF: public imFormat
+{
+public:
imFormatTIFF()
:imFormat("TIFF",
"Tagged Image File Format",
@@ -616,14 +632,7 @@ public:
{}
~imFormatTIFF() {}
- int Open(const char* file_name);
- int New(const char* file_name);
- void Close();
- void* Handle(int index);
- int ReadImageInfo(int index);
- int ReadImageData(void* data);
- int WriteImageInfo();
- int WriteImageData(void* data);
+ imFileFormatBase* Create(void) const { return new imFileFormatTIFF(this); }
int CanWrite(const char* compression, int color_mode, int data_type) const;
};
@@ -639,7 +648,7 @@ void imFormatRegisterTIFF(void)
imFormatRegister(new imFormatTIFF());
}
-int imFormatTIFF::Open(const char* file_name)
+int imFileFormatTIFF::Open(const char* file_name)
{
this->tiff = TIFFOpen(file_name, "r");
if (this->tiff == NULL)
@@ -659,7 +668,7 @@ int imFormatTIFF::Open(const char* file_name)
return IM_ERR_NONE;
}
-int imFormatTIFF::New(const char* file_name)
+int imFileFormatTIFF::New(const char* file_name)
{
this->tiff = TIFFOpen(file_name, "w");
if (this->tiff == NULL)
@@ -670,7 +679,7 @@ int imFormatTIFF::New(const char* file_name)
return IM_ERR_NONE;
}
-void imFormatTIFF::Close()
+void imFileFormatTIFF::Close()
{
if (this->tile_buf)
{
@@ -682,7 +691,7 @@ void imFormatTIFF::Close()
TIFFClose(this->tiff);
}
-void* imFormatTIFF::Handle(int index)
+void* imFileFormatTIFF::Handle(int index)
{
if (index == 0)
return (void*)this->tiff->tif_fd;
@@ -692,7 +701,7 @@ void* imFormatTIFF::Handle(int index)
return NULL;
}
-int imFormatTIFF::ReadImageInfo(int index)
+int imFileFormatTIFF::ReadImageInfo(int index)
{
this->cpx_int = 0;
this->invert = 0;
@@ -1011,7 +1020,7 @@ int imFormatTIFF::ReadImageInfo(int index)
return IM_ERR_NONE;
}
-int imFormatTIFF::WriteImageInfo()
+int imFileFormatTIFF::WriteImageInfo()
{
this->file_color_mode = this->user_color_mode;
this->file_data_type = this->user_data_type;
@@ -1254,7 +1263,7 @@ static void iTIFFLabFix(void* line_buffer, int width, int data_type, int is_new)
// Do NOT know how it is encoded for other data types.
}
-int imFormatTIFF::ReadTileline(void* line_buffer, int row, int plane)
+int imFileFormatTIFF::ReadTileline(void* line_buffer, int row, int plane)
{
int t;
@@ -1295,7 +1304,7 @@ int imFormatTIFF::ReadTileline(void* line_buffer, int row, int plane)
return 1;
}
-int imFormatTIFF::ReadImageData(void* data)
+int imFileFormatTIFF::ReadImageData(void* data)
{
int count = imFileLineBufferCount(this);
@@ -1348,7 +1357,7 @@ int imFormatTIFF::ReadImageData(void* data)
return IM_ERR_NONE;
}
-int imFormatTIFF::WriteImageData(void* data)
+int imFileFormatTIFF::WriteImageData(void* data)
{
int count = imFileLineBufferCount(this);